@platformatic/metrics 2.56.0 → 2.58.0

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/test/helper.js +181 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platformatic/metrics",
3
- "version": "2.56.0",
3
+ "version": "2.58.0",
4
4
  "description": "Platformatic Stackable Metrics",
5
5
  "main": "index.js",
6
6
  "type": "commonjs",
package/test/helper.js ADDED
@@ -0,0 +1,181 @@
1
+ const assert = require('node:assert')
2
+
3
+ const expectedMetrics = [
4
+ {
5
+ name: 'nodejs_active_handles',
6
+ type: 'gauge'
7
+ },
8
+ {
9
+ name: 'nodejs_active_handles_total',
10
+ type: 'gauge'
11
+ },
12
+ {
13
+ name: 'nodejs_active_requests',
14
+ type: 'gauge'
15
+ },
16
+ {
17
+ name: 'nodejs_active_requests_total',
18
+ type: 'gauge'
19
+ },
20
+ {
21
+ name: 'nodejs_active_resources',
22
+ type: 'gauge'
23
+ },
24
+ {
25
+ name: 'nodejs_active_resources_total',
26
+ type: 'gauge'
27
+ },
28
+ {
29
+ name: 'nodejs_eventloop_lag_max_seconds',
30
+ type: 'gauge'
31
+ },
32
+ {
33
+ name: 'nodejs_eventloop_lag_mean_seconds',
34
+ type: 'gauge'
35
+ },
36
+ {
37
+ name: 'nodejs_eventloop_lag_min_seconds',
38
+ type: 'gauge'
39
+ },
40
+ {
41
+ name: 'nodejs_eventloop_lag_p50_seconds',
42
+ type: 'gauge'
43
+ },
44
+ {
45
+ name: 'nodejs_eventloop_lag_p90_seconds',
46
+ type: 'gauge'
47
+ },
48
+ {
49
+ name: 'nodejs_eventloop_lag_p99_seconds',
50
+ type: 'gauge'
51
+ },
52
+ {
53
+ name: 'nodejs_eventloop_lag_seconds',
54
+ type: 'gauge'
55
+ },
56
+ {
57
+ name: 'nodejs_eventloop_lag_stddev_seconds',
58
+ type: 'gauge'
59
+ },
60
+ {
61
+ name: 'nodejs_eventloop_utilization',
62
+ type: 'gauge'
63
+ },
64
+ {
65
+ name: 'nodejs_external_memory_bytes',
66
+ type: 'gauge'
67
+ },
68
+ {
69
+ name: 'nodejs_gc_duration_seconds',
70
+ type: 'histogram'
71
+ },
72
+ {
73
+ name: 'nodejs_heap_size_total_bytes',
74
+ type: 'gauge'
75
+ },
76
+ {
77
+ name: 'nodejs_heap_size_used_bytes',
78
+ type: 'gauge'
79
+ },
80
+ {
81
+ name: 'nodejs_heap_space_size_available_bytes',
82
+ type: 'gauge'
83
+ },
84
+ {
85
+ name: 'nodejs_heap_space_size_total_bytes',
86
+ type: 'gauge'
87
+ },
88
+ {
89
+ name: 'nodejs_heap_space_size_used_bytes',
90
+ type: 'gauge'
91
+ },
92
+ {
93
+ name: 'nodejs_version_info',
94
+ type: 'gauge'
95
+ },
96
+ {
97
+ name: 'process_cpu_percent_usage',
98
+ type: 'gauge'
99
+ },
100
+ {
101
+ name: 'process_cpu_seconds_total',
102
+ type: 'counter'
103
+ },
104
+ {
105
+ name: 'process_cpu_system_seconds_total',
106
+ type: 'counter'
107
+ },
108
+ {
109
+ name: 'process_cpu_user_seconds_total',
110
+ type: 'counter'
111
+ },
112
+ {
113
+ name: 'process_resident_memory_bytes',
114
+ type: 'gauge'
115
+ },
116
+ {
117
+ name: 'process_start_time_seconds',
118
+ type: 'gauge'
119
+ },
120
+ {
121
+ name: 'http_request_all_summary_seconds',
122
+ type: 'summary'
123
+ },
124
+ {
125
+ name: 'http_request_all_duration_seconds',
126
+ type: 'histogram'
127
+ },
128
+ {
129
+ name: 'http_request_duration_seconds',
130
+ type: 'histogram'
131
+ },
132
+ {
133
+ name: 'http_request_summary_seconds',
134
+ type: 'summary'
135
+ },
136
+ ]
137
+
138
+ function assertMetric (metrics, metric) {
139
+ assert.ok(metrics.includes(`# HELP ${metric.name} `), `Metric ${metric.name} not found`)
140
+ assert.ok(metrics.includes(`# TYPE ${metric.name} ${metric.type}`), `Metric ${metric.name} type ${metric.type} not found`)
141
+
142
+ if (metric.type === 'summary') {
143
+ assertSummary(metrics, metric)
144
+ } else if (metric.type === 'histogram') {
145
+ assertHistogram(metrics, metric)
146
+ }
147
+ }
148
+
149
+ function assertSummary (metrics, metric) {
150
+ assert.ok(metrics.includes(`${metric.name}{quantile="0.01"`))
151
+ assert.ok(metrics.includes('http_request_summary_seconds{quantile="0.01"'))
152
+ assert.ok(metrics.includes('http_request_summary_seconds{quantile="0.05"'))
153
+ assert.ok(metrics.includes('http_request_summary_seconds{quantile="0.5"'))
154
+ assert.ok(metrics.includes('http_request_summary_seconds{quantile="0.9"'))
155
+ assert.ok(metrics.includes('http_request_summary_seconds{quantile="0.95"'))
156
+ assert.ok(metrics.includes('http_request_summary_seconds{quantile="0.99"'))
157
+ assert.ok(metrics.includes('http_request_summary_seconds{quantile="0.999"'))
158
+ assert.ok(metrics.includes('http_request_summary_seconds_sum{'))
159
+ assert.ok(metrics.includes('http_request_summary_seconds_count{'))
160
+ }
161
+
162
+ function assertHistogram (metrics, metric) {
163
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="0.005"'))
164
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="0.01"'))
165
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="0.025"'))
166
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="0.05"'))
167
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="0.1"'))
168
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="0.25"'))
169
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="0.5"'))
170
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="1"'))
171
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="2.5"'))
172
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="5"'))
173
+ assert.ok(metrics.includes('http_request_duration_seconds_bucket{le="10"'))
174
+ assert.ok(metrics.includes('http_request_duration_seconds_sum{'))
175
+ assert.ok(metrics.includes('http_request_duration_seconds_count{'))
176
+ }
177
+
178
+ module.exports = {
179
+ expectedMetrics,
180
+ assertMetric
181
+ }