Skip to content

Commit 2d4b74d

Browse files
committed
impedance: Account for "failed to generate" errors as well.
1 parent 8de4e47 commit 2d4b74d

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

Diff for: impedance.cc

+7
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ static map<const char*, long> occurances_in_failed_query;
88
static map<const char*, long> occurances_in_ok_query;
99
static map<const char*, long> retries;
1010
static map<const char*, long> limited;
11+
static map<const char*, long> failed;
1112

1213
impedance_visitor::impedance_visitor(map<const char*, long> &occured)
1314
: _occured(occured)
@@ -74,6 +75,7 @@ void report(std::ostream &out)
7475
<< "\"bad\": " << pair->second << ", "
7576
<< "\"ok\": " << occurances_in_ok_query[pair->first] << ", "
7677
<< "\"limited\": " << limited[pair->first] << ", "
78+
<< "\"failed\": " << failed[pair->first] << ", "
7779
<< "\"retries\": " << retries[pair->first] << "} ";
7880

7981
if (next(pair) != occurances_in_failed_query.end())
@@ -92,4 +94,9 @@ void limit(const char *p)
9294
limited[p]++;
9395
}
9496

97+
void fail(const char *p)
98+
{
99+
failed[p]++;
100+
}
101+
95102
}

Diff for: impedance.hh

+3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ namespace impedance {
3636
void limit(const char *p);
3737
inline void limit(const std::type_info &id) { return limit(id.name()); }
3838
inline void limit(prod *p) { return limit(typeid(*p)); }
39+
void fail(const char *p);
40+
inline void fail(const std::type_info &id) { return fail(id.name()); }
41+
inline void fail(prod *p) { return fail(typeid(*p)); }
3942
void report();
4043
void report(std::ostream &out);
4144
}

Diff for: log.sql

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@ create index on error(t);
115115

116116
create view impedance as
117117
select id, generated, level, nodes, updated,
118-
prod, ok, bad, js.retries, limited
118+
prod, ok, bad, js.retries, limited, failed
119119
from stat, jsonb_to_recordset(impedance->'impedance')
120-
js(prod text, ok int, bad int, retries int, limited int)
120+
js(prod text, ok int, bad int, retries int, limited int, failed int)
121121
where impedance is not null;
122122

123123
comment on view impedance is 'stat table with normalized jsonb';

Diff for: prod.cc

+1
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,6 @@ void prod::match()
4343

4444
void prod::fail(const char *reason)
4545
{
46+
impedance::fail(this);
4647
throw std::runtime_error(reason);
4748
}

0 commit comments

Comments
 (0)