Commit df20274
committed
fix(collector): handle Aurora's unsupported pg_last_xact_replay_timestamp
Aurora PostgreSQL does not support pg_last_xact_replay_timestamp() and
returns a feature_not_supported error (code 0A000) when the replication
collector queries it. This causes the collector to crash on every scrape
for Aurora instances.
When this error is detected, the collector now falls back to a simpler
query that only reads pg_is_in_recovery(), so is_replica is still
reported correctly. The time-based metrics (lag_seconds and
last_replay_seconds) are emitted as NaN to signal that the values are
unavailable, rather than crashing the collection cycle entirely.
The error is identified by checking for a *pq.Error with class "0A"
(feature_not_supported) and a message that contains "Aurora", which
avoids incorrectly suppressing the same error code on standard Postgres.
A new test TestPgReplicationCollectorAurora covers this fallback path.1 parent f0117d7 commit df20274
2 files changed
+100
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
18 | 22 | | |
| 23 | + | |
19 | 24 | | |
20 | 25 | | |
21 | 26 | | |
| |||
72 | 77 | | |
73 | 78 | | |
74 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
75 | 84 | | |
76 | 85 | | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
77 | 98 | | |
78 | 99 | | |
79 | 100 | | |
80 | 101 | | |
81 | 102 | | |
82 | 103 | | |
83 | | - | |
| 104 | + | |
84 | 105 | | |
85 | | - | |
| 106 | + | |
86 | 107 | | |
87 | 108 | | |
88 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
89 | 123 | | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
90 | 134 | | |
91 | 135 | | |
92 | | - | |
| 136 | + | |
93 | 137 | | |
94 | 138 | | |
95 | 139 | | |
96 | 140 | | |
97 | 141 | | |
98 | 142 | | |
99 | 143 | | |
100 | | - | |
| 144 | + | |
101 | 145 | | |
102 | 146 | | |
103 | 147 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| 21 | + | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
| |||
62 | 64 | | |
63 | 65 | | |
64 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
0 commit comments