Skip to content

Commit c7361bf

Browse files
feat(helm): ✨ add metrics path option
Signed-off-by: Mario Vejlupek <[email protected]>
1 parent 38681e2 commit c7361bf

File tree

6 files changed

+23
-5
lines changed

6 files changed

+23
-5
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
test:
22
helm upgrade --install --debug -n customer-monitoring-system --set-file script_py=./examples/s3-metrics.py -f ./tmp/values.test.yaml s3-metrics ./helm
33

4+
test_cleanup:
5+
helm uninstall -n customer-monitoring-system s3-metrics
6+
47
template:
58
helm template --debug --output-dir=./tmp/ -n customer-monitoring-system --set-file script_py=./examples/s3-metrics.py -f ./tmp/values.test.yaml s3-metrics ./helm
69

examples/rds-metrics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,4 @@ def collect_metrics():
101101
freeable_memory_gauge.labels(DBInstanceIdentifier=db_instance_id).set(freeable_memory)
102102
while True:
103103
collect_metrics()
104-
time.sleep(60) # Collect metrics every minute
104+
time.sleep(parse_time_string(os.environ.get('METRICS_SCRAPE_INTERVAL')).seconds)

examples/s3-metrics.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import boto3
33
from prometheus_client import start_http_server, Gauge
44
import time
5+
from datetime import datetime,timedelta
56
import logging
67
from pythonjsonlogger import jsonlogger
78

@@ -19,6 +20,19 @@
1920
# Create a Gauge metric for Prometheus
2021
s3_bucket_folder_size = Gauge('s3_bucket_folder_size', 'Size of the S3 bucket folders', ['bucket', 'folder'])
2122

23+
def parse_time_string(time_string):
24+
value = int(time_string[:-1])
25+
unit = time_string[-1]
26+
27+
if unit == 's':
28+
return timedelta(seconds=value)
29+
elif unit == 'm':
30+
return timedelta(minutes=value)
31+
elif unit == 'h':
32+
return timedelta(hours=value)
33+
else:
34+
raise ValueError(f"Unknown time unit: {unit}")
35+
2236
def get_s3_bucket_folder_sizes(bucket_name):
2337
logger.info({"state": "processing", "bucket": bucket_name, "message": "Getting folder sizes"})
2438
s3 = boto3.client('s3')
@@ -52,4 +66,4 @@ def update_metrics(bucket_names):
5266
# Update metrics every minute
5367
while True:
5468
update_metrics(buckets)
55-
time.sleep(60)
69+
time.sleep(parse_time_string(os.environ.get('METRICS_SCRAPE_INTERVAL')).seconds)

helm/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apiVersion: v2
22
name: python-aws-exporter-base
33
description: Base image for Python scripts exporting AWS resources using boto library to Prometheus
4-
version: 5.0.0
5-
appVersion: v5.0
4+
version: 6.0.0
5+
appVersion: v6.0

helm/templates/servicemonitor.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ spec:
1111
- port: http
1212
interval: {{ .Values.serviceMonitor.interval }}
1313
scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }}
14-
path: /
14+
path: {{ .Values.serviceMonitor.path }}
1515
{{- end }}

helm/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ serviceMonitor:
2828
enabled: true
2929
interval: 3600s
3030
scrapeTimeout: 30s
31+
path: /metrics
3132

3233
service:
3334
type: ClusterIP

0 commit comments

Comments
 (0)