1import { ApifyClient } from 'apify-client';
2
3
4
5const client = new ApifyClient({
6 token: '<YOUR_API_TOKEN>',
7});
8
9
10const input = {
11 "metrics": [
12 {
13 "name": "http.server.request.duration",
14 "type": "histogram",
15 "unit": "s",
16 "bucket_boundaries": [
17 0.005,
18 0.01,
19 0.025,
20 0.05,
21 0.075,
22 0.1,
23 0.25,
24 0.5,
25 0.75,
26 1,
27 2.5,
28 5,
29 7.5,
30 10
31 ],
32 "temporality": "cumulative",
33 "frequency_seconds": 60,
34 "attributes": {
35 "http.request.method": 6,
36 "http.route": 35,
37 "http.response.status_code": 14,
38 "user.id": 5000
39 }
40 },
41 {
42 "name": "http.server.duration",
43 "type": "histogram",
44 "unit": "ms",
45 "temporality": "cumulative",
46 "attributes": {
47 "http.method": 6,
48 "http.route": 35,
49 "http.status_code": 14
50 }
51 },
52 {
53 "name": "orders.created",
54 "type": "counter",
55 "frequency_seconds": 10,
56 "attributes": {
57 "payment.method": 5,
58 "order.id": 50000
59 }
60 },
61 {
62 "name": "http.client.request.duration",
63 "type": "histogram",
64 "unit": "s",
65 "attributes": {
66 "http.request.method": 3,
67 "server.address": 4,
68 "url.path": {
69 "cardinality": 2000,
70 "samples": [
71 "/v1/charges/8812",
72 "/v1/charges/9921/refunds",
73 "/v1/customers/1200/cards",
74 "/v1/charges/1203"
75 ]
76 }
77 }
78 }
79 ],
80 "analysisName": "checkout-service (production)",
81 "resourceAttributes": {
82 "service.name": 1,
83 "deployment.environment.name": 1,
84 "k8s.pod.name": 12
85 },
86 "collectorConfig": `receivers:
87 otlp:
88 protocols:
89 grpc:
90 endpoint: localhost:4317
91processors:
92 memory_limiter:
93 check_interval: 1s
94 limit_percentage: 80
95 spike_limit_percentage: 25
96 batch: {}
97exporters:
98 otlphttp:
99 endpoint: ${env:OTLP_ENDPOINT}
100service:
101 pipelines:
102 metrics:
103 receivers: [otlp]
104 processors: [memory_limiter, batch]
105 exporters: [otlphttp]`
106};
107
108
109const run = await client.actor("michiganpublictech/otel-cardinality-analyzer").call(input);
110
111
112console.log('Results from dataset');
113console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
114const { items } = await client.dataset(run.defaultDatasetId).listItems();
115items.forEach((item) => {
116 console.dir(item);
117});
118
119