Skip to content

Commit 6a610e7

Browse files
committed
metrics from gateway endpoints
1 parent 6d2ca85 commit 6a610e7

File tree

7 files changed

+938
-94
lines changed

7 files changed

+938
-94
lines changed

Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM hitachi.jfrog.io/docker/golang:1.21 as builder
2+
ARG OTEL_VERSION=0.106.1
3+
WORKDIR /
4+
COPY . .
5+
RUN go install go.opentelemetry.io/collector/cmd/builder@v${OTEL_VERSION}
6+
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 builder --config builder-config.yaml
7+
RUN mkdir -p /oteldata
8+
9+
FROM scratch
10+
COPY --from=builder /otelcol-dev/otelcol-dev /otel
11+
COPY --from=builder --chown=10001:10001 /oteldata /oteldata
12+
USER 10001
13+
ENTRYPOINT ["/otel"]

builder-config.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
dist:
2+
name: otelcol-dev
3+
description: Basic OTel Collector distribution for Developers
4+
output_path: ./otelcol-dev
5+
otelcol_version: 0.106.1
6+
7+
exporters:
8+
- gomod:
9+
go.opentelemetry.io/collector/exporter/debugexporter v0.106.1
10+
- gomod:
11+
go.opentelemetry.io/collector/exporter/otlpexporter v0.106.1
12+
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.106.1
13+
14+
processors:
15+
- gomod:
16+
go.opentelemetry.io/collector/processor/batchprocessor v0.106.1
17+
18+
receivers:
19+
- gomod:
20+
go.opentelemetry.io/collector/receiver/otlpreceiver v0.106.1
21+
- gomod:
22+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.106.1
23+
- gomod:
24+
github.com/adarshsingh2/custom-collector/ucpmetricreceiver v0.0.1
25+

config.yaml

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
receivers:
2+
metricsreceiver: # this line represents the ID of your receiver
3+
scrape_config:
4+
- interval: 40s
5+
device_type: "storage"
6+
timeout: 88s
7+
metric_keys:
8+
- "portIopsAvg"
9+
- "portIopsMax"
10+
- "portIopsMin"
11+
- "portKbpsAvg"
12+
- "portKbpsMax"
13+
- "portKbpsMin"
14+
- "logical_unit_ldevIO_randomIO_read"
15+
- "logical_unit_ldevIO_totalIO_write"
16+
- "logical_unit_random_iops"
17+
- "logical_unit_write_latency"
18+
- "logical_unit_total_write_hit"
19+
- "logical_unit_ldevBlockIO_totalIO_read"
20+
- "logical_unit_ldevIO_sequentialIO_writeHit"
21+
- "logical_unit_logicalUnitIO_sequentialIO_read"
22+
- "logical_unit_write_cache_hit_ratio"
23+
- "logical_unit_logicalUnitBlockIO_randomIO_write"
24+
- "logical_unit_logicalUnitBlockIO_sequentialIO_read"
25+
- "logical_unit_ldevLatency_write"
26+
- "logical_unit_total_cache_hits"
27+
- "logical_unit_ldevBlockIO_sequentialIO_write"
28+
- "logical_unit_logicalUnitBlockIO_randomIO_read"
29+
- "logical_unit_ldevLatency_writeMax"
30+
- "logical_unit_logicalUnitIO_randomIO_readHit"
31+
- "logical_unit_logicalUnitIO_randomIO_writeHit"
32+
- "logical_unit_logicalUnitIO_sequentialIO_readHit"
33+
- "logical_unit_logicalUnitIO_totalIO_read"
34+
- "logical_unit_iops"
35+
- "logical_unit_ldevBlockIO_randomIO_read"
36+
- "logical_unit_max_write_latency"
37+
- "logical_unit_read_latency"
38+
- "logical_unit_logicalUnitIO_randomIO_read"
39+
- "logical_unit_read_cache_hit_ratio"
40+
- "logical_unit_ldevIO_totalIO_readHit"
41+
- "logical_unit_ldevBlockIO_sequentialIO_writeHit"
42+
- "logical_unit_ldevBlockIO_sequentialIO_read"
43+
- "logical_unit_ldevIO_totalIO_read"
44+
- "logical_unit_ldevBlockIO_sequentialIO_readHit"
45+
- "logical_unit_ldevIO_totalIO_writeHit"
46+
- "logical_unit_logicalUnitBlockIO_randomIO_readHit"
47+
- "logical_unit_logicalUnitBlockIO_totalIO_write"
48+
- "logical_unit_logicalUnitIO_sequentialIO_write"
49+
- "logical_unit_logicalUnitBlockIO_sequentialIO_writeHit"
50+
- "logical_unit_logicalUnitBlockIO_totalIO_writeHit"
51+
- "logical_unit_ldevBlockIO_randomIO_write"
52+
- "logical_unit_ldevBlockIO_randomIO_writeHit"
53+
- "logical_unit_ldevIO_randomIO_write"
54+
- "logical_unit_ldevIO_randomIO_writeHit"
55+
- "logical_unit_ldevIO_sequentialIO_read"
56+
- "logical_unit_ldevIO_sequentialIO_write"
57+
- "logical_unit_ldevLatency_read"
58+
- "logical_unit_ldevLatency_readMax"
59+
- "logical_unit_sequential_iops"
60+
- "logical_unit_total_read_io"
61+
- "logical_unit_total_write_io"
62+
- "logical_unit_ldevBlockIO_randomIO_readHit"
63+
- "logical_unit_ldevBlockIO_totalIO_readHit"
64+
- "logical_unit_ldevBlockIO_totalIO_write"
65+
- "logical_unit_ldevBlockIO_totalIO_writeHit"
66+
- "logical_unit_ldevIO_randomIO_readHit"
67+
- "logical_unit_ldevIO_sequentialIO_readHit"
68+
- "logical_unit_logicalUnitBlockIO_randomIO_writeHit"
69+
- "logical_unit_logicalUnitBlockIO_sequentialIO_readHit"
70+
- "logical_unit_logicalUnitBlockIO_sequentialIO_write"
71+
- "logical_unit_logicalUnitBlockIO_totalIO_read"
72+
- "logical_unit_logicalUnitBlockIO_totalIO_readHit"
73+
- "logical_unit_logicalUnitIO_randomIO_write"
74+
- "logical_unit_logicalUnitIO_sequentialIO_writeHit"
75+
- "logical_unit_logicalUnitIO_totalIO_readHit"
76+
- "logical_unit_logicalUnitIO_totalIO_write"
77+
- "logical_unit_logicalUnitIO_totalIO_writeHit"
78+
- "logical_unit_max_read_latency"
79+
- "logical_unit_total_read_hit"
80+
timestamp_keys:
81+
- "time"
82+
83+
84+
85+
- interval: 40s
86+
device_type: "compute"
87+
timeout: 30s
88+
metric_keys:
89+
- "avgPower1week"
90+
- "avgPower20min"
91+
- "avgPower24hour"
92+
- "avgPower5min"
93+
- "maxPower20min"
94+
- "maxPower24hour"
95+
- "maxPower5min"
96+
- "maxPower1week"
97+
- "minPower20min"
98+
- "minPower24hour"
99+
- "minPower5min"
100+
- "minPower1week"
101+
- "powerInputVoltage"
102+
- "presentPowerReading"
103+
- "sensor_temperature"
104+
- "sensor_fan_value"
105+
timestamp_keys:
106+
- "time"
107+
# # - "timeStamp"
108+
endpoint: "https://genai-qdrant.genai.sc.eng.hitachivantara.com/metrics"
109+
auth_endpoint: "https://172.25.92.81/porcelain/v2/auth/login"
110+
compute_endpoint: "https://172.25.92.81/porcelain/v2/systems"
111+
metrics_base_url: "https://172.25.92.81"
112+
processors:
113+
batch:
114+
send_batch_size: 2000
115+
timeout: 10s
116+
exporters:
117+
prometheusremotewrite:
118+
endpoint: "http://127.0.0.1:4000/v1/prometheus/write?db=public"
119+
timeout: 120s
120+
headers:
121+
Authorization: "Bearer your-auth-token"
122+
retry_on_failure:
123+
enabled: true
124+
initial_interval: 5s
125+
max_interval: 90s
126+
max_elapsed_time: 300s
127+
# remote_write_queue:
128+
# enabled: true
129+
# queue_size: 20000 # Keep this large enough to handle short bursts of traffic
130+
# num_consumers: 5
131+
# wal: # Enable Write-Ahead Log (WAL) to persist metrics to disk
132+
# directory: ./prom_rw # Directory to store WAL files
133+
# buffer_size: 1000 # Optional: Number of elements to buffer before truncating
134+
# truncate_frequency: 1m # Optional: How often to truncate the WAL (default: 1m)
135+
136+
137+
service:
138+
pipelines:
139+
metrics:
140+
receivers: [metricsreceiver]
141+
processors: [batch]
142+
exporters: [prometheusremotewrite]
143+
144+
telemetry:
145+
logs:
146+
level: "debug"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package metricsreceiver

ucpmetricreceiver/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
// ScrapeConfig represents a single scrape configuration within the receiver's config.yaml
99
type ScrapeConfig struct {
1010
Interval string `mapstructure:"interval"`
11-
Device string `mapstructure:"device"`
11+
DeviceType string `mapstructure:"device_type"`
1212
Timeout string `mapstructure:"timeout"`
1313
MetricKeys []string `mapstructure:"metric_keys"`
1414
TimestampKeys []string `mapstructure:"timestamp_keys"`
@@ -46,7 +46,7 @@ func (sc *ScrapeConfig) Validate() error {
4646
return fmt.Errorf("the interval in scrape_config has to be set to at least 10 secs (10s)")
4747
}
4848

49-
if sc.Device == "" {
49+
if sc.DeviceType == "" {
5050
return fmt.Errorf("device in scrape_config cannot be empty")
5151
}
5252

0 commit comments

Comments
 (0)