@checkstack/healthcheck-http-backend 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/package.json +5 -5
- package/src/request-collector.ts +9 -0
- package/src/strategy.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# @checkstack/healthcheck-http-backend
|
|
2
2
|
|
|
3
|
+
## 0.7.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [390d9cf]
|
|
8
|
+
- Updated dependencies [fc64fad]
|
|
9
|
+
- Updated dependencies [9d30324]
|
|
10
|
+
- @checkstack/backend-api@0.30.0
|
|
11
|
+
- @checkstack/healthcheck-common@1.14.0
|
|
12
|
+
|
|
13
|
+
## 0.7.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- c55d7c6: Unify the healthcheck chart system on the `@checkstack/ui` SVG kit and
|
|
18
|
+
redesign the HealthCheck drawer.
|
|
19
|
+
|
|
20
|
+
- `@checkstack/ui` gains six chart primitives (each with a Storybook story):
|
|
21
|
+
`StackedTimeline` (stacked status counts per bucket on the colorblind-safe
|
|
22
|
+
status triad), `ChartTooltip` + `useBandHover` (the one shared chart
|
|
23
|
+
tooltip and its cursor hit-testing), `ChartCard` / `chartCardChromeClass`
|
|
24
|
+
(the premium gradient card chrome, flat on low-power devices), `StatTile`
|
|
25
|
+
(number-led metric tile with delta chip, sparkline/ribbon footer, and
|
|
26
|
+
click-to-expand disclosure), `DistributionBar` (stacked horizontal
|
|
27
|
+
distribution + legend, replaces pies), and `CategoryRibbon` (categorical
|
|
28
|
+
history ribbon). `TimeSeriesChart` gains a hover tooltip with a crosshair
|
|
29
|
+
marker.
|
|
30
|
+
- `@checkstack/common` adds four optional chart metadata keys to
|
|
31
|
+
`BaseHealthResultMeta`: `x-chart-priority` (tile sort weight, lower first,
|
|
32
|
+
default 100), `x-chart-good-direction` (`"up" | "down"`, which direction
|
|
33
|
+
of change is an improvement; consumers fall back to
|
|
34
|
+
`x-anomaly-direction`), and `x-chart-true-label` / `x-chart-false-label`
|
|
35
|
+
(prose for a boolean field's values wherever they surface in text, e.g. a
|
|
36
|
+
dominance chip reading "Usually successful (98%)" instead of "Usually
|
|
37
|
+
true"). Built-in collector backends annotate their headline metrics and
|
|
38
|
+
boolean fields accordingly (purely additive metadata).
|
|
39
|
+
- `@checkstack/healthcheck-frontend` rebuilds the drawer: a hero status
|
|
40
|
+
banner (status pill, healthy %, avg latency, interval, last run with the
|
|
41
|
+
exact datetime on hover, full-width status ribbon) replaces the metric
|
|
42
|
+
tiles; the status timeline and latency heroes share the `ChartCard`
|
|
43
|
+
chrome; the auto-generated charts become a prioritized, click-to-expand
|
|
44
|
+
2-up tile grid (collector ids demoted to hover titles); the anomaly
|
|
45
|
+
Expected/Trend derivation is consolidated into one tested module shared by
|
|
46
|
+
the latency hero and the tiles.
|
|
47
|
+
|
|
48
|
+
BREAKING CHANGES: `recharts` is removed from `@checkstack/healthcheck-frontend`
|
|
49
|
+
(and the unused dependency from `@checkstack/ui`); the
|
|
50
|
+
`HealthCheckStatusTimeline` and `SparklineTooltip` components are deleted.
|
|
51
|
+
Extensions rendering into `HealthCheckDiagramSlot` should build on the
|
|
52
|
+
`@checkstack/ui` chart primitives instead.
|
|
53
|
+
|
|
54
|
+
- Updated dependencies [c55d7c6]
|
|
55
|
+
- Updated dependencies [c55d7c6]
|
|
56
|
+
- @checkstack/healthcheck-common@1.13.0
|
|
57
|
+
- @checkstack/common@0.21.0
|
|
58
|
+
- @checkstack/backend-api@0.29.1
|
|
59
|
+
|
|
3
60
|
## 0.7.0
|
|
4
61
|
|
|
5
62
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@checkstack/healthcheck-http-backend",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"checkstack": {
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"pack": "bunx @checkstack/scripts plugin-pack"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@checkstack/backend-api": "0.
|
|
18
|
-
"@checkstack/healthcheck-common": "1.
|
|
17
|
+
"@checkstack/backend-api": "0.30.0",
|
|
18
|
+
"@checkstack/healthcheck-common": "1.14.0",
|
|
19
19
|
"jsonpath-plus": "^10.3.0",
|
|
20
|
-
"@checkstack/common": "0.
|
|
20
|
+
"@checkstack/common": "0.21.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/bun": "^1.0.0",
|
|
24
24
|
"typescript": "^5.0.0",
|
|
25
25
|
"@checkstack/tsconfig": "0.0.7",
|
|
26
|
-
"@checkstack/scripts": "0.7.
|
|
26
|
+
"@checkstack/scripts": "0.7.2"
|
|
27
27
|
},
|
|
28
28
|
"description": "Checkstack healthcheck-http-backend plugin",
|
|
29
29
|
"author": {
|
package/src/request-collector.ts
CHANGED
|
@@ -81,6 +81,7 @@ const requestResultSchema = healthResultSchema({
|
|
|
81
81
|
statusCode: healthResultNumber({
|
|
82
82
|
"x-chart-type": "counter",
|
|
83
83
|
"x-chart-label": "Status Code",
|
|
84
|
+
"x-chart-priority": 30,
|
|
84
85
|
// Off by default: the raw status code is an identifier, not a quantity
|
|
85
86
|
// with a meaningful baseline. Legitimate shifts (200 -> 301/302 redirects,
|
|
86
87
|
// content negotiation) are not problems, while real availability loss is
|
|
@@ -97,6 +98,7 @@ const requestResultSchema = healthResultSchema({
|
|
|
97
98
|
"x-chart-type": "line",
|
|
98
99
|
"x-chart-label": "Response Time",
|
|
99
100
|
"x-chart-unit": "ms",
|
|
101
|
+
"x-chart-priority": 10,
|
|
100
102
|
"x-anomaly-enabled": true,
|
|
101
103
|
"x-anomaly-direction": "lower-is-better",
|
|
102
104
|
"x-anomaly-sensitivity": 2,
|
|
@@ -109,11 +111,16 @@ const requestResultSchema = healthResultSchema({
|
|
|
109
111
|
"x-chart-type": "counter",
|
|
110
112
|
"x-chart-label": "Body Length",
|
|
111
113
|
"x-chart-unit": "bytes",
|
|
114
|
+
"x-chart-priority": 90,
|
|
112
115
|
"x-anomaly-enabled": false,
|
|
113
116
|
}),
|
|
114
117
|
success: healthResultBoolean({
|
|
115
118
|
"x-chart-type": "boolean",
|
|
116
119
|
"x-chart-label": "HTTP Success",
|
|
120
|
+
"x-chart-true-label": "successful",
|
|
121
|
+
"x-chart-false-label": "failing",
|
|
122
|
+
"x-chart-priority": 20,
|
|
123
|
+
"x-chart-good-direction": "up",
|
|
117
124
|
"x-anomaly-enabled": true,
|
|
118
125
|
"x-anomaly-direction": "dominance",
|
|
119
126
|
}),
|
|
@@ -127,6 +134,7 @@ const requestAggregatedFields = {
|
|
|
127
134
|
"x-chart-type": "line",
|
|
128
135
|
"x-chart-label": "Avg Response Time",
|
|
129
136
|
"x-chart-unit": "ms",
|
|
137
|
+
"x-chart-priority": 10,
|
|
130
138
|
"x-anomaly-enabled": true,
|
|
131
139
|
"x-anomaly-direction": "lower-is-better",
|
|
132
140
|
// Latency: bias toward fewer false positives. Require several consecutive
|
|
@@ -141,6 +149,7 @@ const requestAggregatedFields = {
|
|
|
141
149
|
"x-chart-type": "gauge",
|
|
142
150
|
"x-chart-label": "Success Rate",
|
|
143
151
|
"x-chart-unit": "%",
|
|
152
|
+
"x-chart-priority": 20,
|
|
144
153
|
"x-anomaly-enabled": true,
|
|
145
154
|
"x-anomaly-direction": "higher-is-better",
|
|
146
155
|
// Availability percent: the canonical saturation/failure signal. Debounce
|
package/src/strategy.ts
CHANGED
|
@@ -200,6 +200,8 @@ const httpAggregatedFields = {
|
|
|
200
200
|
errorCount: aggregatedCounter({
|
|
201
201
|
"x-chart-type": "counter",
|
|
202
202
|
"x-chart-label": "Errors",
|
|
203
|
+
"x-chart-priority": 90,
|
|
204
|
+
"x-chart-good-direction": "down",
|
|
203
205
|
// Off by default: a raw per-bucket error COUNT scales with how many runs
|
|
204
206
|
// land in the bucket, so it has no stable baseline and drifts with traffic
|
|
205
207
|
// volume. The percent form of the same signal (`successRate`) is the one
|