scrape_configs:
- job_name: 'megarepo'
scrape_interval: 15s
metrics_path: /actuator/prometheus
basic_auth:
username: admin
password: <your-admin-password>
static_configs:
- targets: ['megarepo-host:8080']
| Metric | Type | |
megarepo_repositories_count | Gauge | |
megarepo_components_count | Gauge | |
megarepo_storage_bytes_total | Gauge | |
megarepo_artifacts_downloads_total | Counter | |
megarepo_artifacts_uploads_total | Counter | |
megarepo_proxy_cache_hits_total | Counter | |
megarepo_proxy_cache_misses_total | Counter | |
| Metric | |
jvm_memory_used_bytes | |
hikaricp_connections_active | |
http_server_requests_seconds_* | |
process_cpu_usage | |
{
"panels": [
{ "title": "Repositories", "type": "stat", "targets": [{ "expr": "megarepo_repositories_count" }] },
{ "title": "Components", "type": "stat", "targets": [{ "expr": "megarepo_components_count" }] },
{ "title": "Storage Used", "type": "stat", "targets": [{ "expr": "megarepo_storage_bytes_total" }],
"fieldConfig": { "defaults": { "unit": "bytes" } } },
{ "title": "Downloads / min", "type": "timeseries",
"targets": [{ "expr": "rate(megarepo_artifacts_downloads_total[5m]) * 60" }] },
{ "title": "Cache Hit Ratio", "type": "timeseries",
"targets": [{ "expr": "rate(megarepo_proxy_cache_hits_total[5m]) / (rate(megarepo_proxy_cache_hits_total[5m]) + rate(megarepo_proxy_cache_misses_total[5m]))" }],
"fieldConfig": { "defaults": { "unit": "percentunit", "min": 0, "max": 1 } } },
{ "title": "HTTP p95 Latency", "type": "timeseries",
"targets": [{ "expr": "histogram_quantile(0.95, sum(rate(http_server_requests_seconds_bucket[5m])) by (le))" }],
"fieldConfig": { "defaults": { "unit": "s" } } },
{ "title": "JVM Memory", "type": "timeseries",
"targets": [
{ "expr": "jvm_memory_used_bytes{area=\"heap\"}", "legendFormat": "Used" },
{ "expr": "jvm_memory_max_bytes{area=\"heap\"}", "legendFormat": "Max" }
], "fieldConfig": { "defaults": { "unit": "bytes" } } },
{ "title": "DB Connections", "type": "timeseries",
"targets": [
{ "expr": "hikaricp_connections_active{pool=\"MegaRepoPool\"}", "legendFormat": "Active" },
{ "expr": "hikaricp_connections_idle{pool=\"MegaRepoPool\"}", "legendFormat": "Idle" }
] }
],
"schemaVersion": 39,
"tags": ["megarepo"],
"title": "MegaRepo Overview",
"uid": "megarepo-overview"
}
groups:
- name: megarepo
rules:
- alert: MegaRepoStorageHigh
expr: megarepo_storage_bytes_total / disk_total_bytes > 0.8
for: 10m
labels: { severity: warning }
- alert: MegaRepoHighErrorRate
expr: sum(rate(http_server_requests_seconds_count{status=~"5.."}[5m])) / sum(rate(http_server_requests_seconds_count[5m])) > 0.01
for: 5m
labels: { severity: critical }
- alert: MegaRepoDown
expr: up{job="megarepo"} == 0
for: 1m
labels: { severity: critical }