Prometheus Metrics
Prometheus Metrics
Section titled “Prometheus Metrics”vcpkg-harbor exposes Prometheus metrics for monitoring.
Enabling Metrics
Section titled “Enabling Metrics”VCPKG_METRICS_ENABLED=trueVCPKG_METRICS_PATH=/metricsAccessing Metrics
Section titled “Accessing Metrics”curl http://localhost:15151/metricsAvailable Metrics
Section titled “Available Metrics”Cache Metrics
Section titled “Cache Metrics”| Metric | Type | Description |
|---|---|---|
vcpkg_harbor_cache_hits_total | Counter | Total cache hits |
vcpkg_harbor_cache_misses_total | Counter | Total cache misses |
vcpkg_harbor_uploads_total | Counter | Total uploads |
vcpkg_harbor_downloads_total | Counter | Total downloads |
vcpkg_harbor_errors_total | Counter | Total errors |
Storage Metrics
Section titled “Storage Metrics”| Metric | Type | Description |
|---|---|---|
vcpkg_harbor_packages_total | Gauge | Total packages in cache |
vcpkg_harbor_storage_bytes | Gauge | Total storage used |
Request Metrics
Section titled “Request Metrics”| Metric | Type | Description |
|---|---|---|
vcpkg_harbor_request_latency_seconds | Histogram | Request latency |
Prometheus Configuration
Section titled “Prometheus Configuration”Add vcpkg-harbor to your Prometheus scrape config:
scrape_configs: - job_name: 'vcpkg-harbor' static_configs: - targets: ['localhost:15151'] metrics_path: /metricsGrafana Dashboard
Section titled “Grafana Dashboard”Example Grafana dashboard queries:
Cache Hit Rate
Section titled “Cache Hit Rate”rate(vcpkg_harbor_cache_hits_total[5m]) /(rate(vcpkg_harbor_cache_hits_total[5m]) + rate(vcpkg_harbor_cache_misses_total[5m])) * 100Request Rate
Section titled “Request Rate”rate(vcpkg_harbor_request_latency_seconds_count[5m])Average Latency
Section titled “Average Latency”rate(vcpkg_harbor_request_latency_seconds_sum[5m]) /rate(vcpkg_harbor_request_latency_seconds_count[5m])Storage Growth
Section titled “Storage Growth”vcpkg_harbor_storage_bytesAlerting Rules
Section titled “Alerting Rules”Example Prometheus alerting rules:
groups: - name: vcpkg-harbor rules: - alert: VcpkgHarborDown expr: up{job="vcpkg-harbor"} == 0 for: 1m labels: severity: critical annotations: summary: "vcpkg-harbor is down"
- alert: VcpkgHarborHighErrorRate expr: rate(vcpkg_harbor_errors_total[5m]) > 0.1 for: 5m labels: severity: warning annotations: summary: "High error rate in vcpkg-harbor"
- alert: VcpkgHarborLowCacheHitRate expr: | rate(vcpkg_harbor_cache_hits_total[1h]) / (rate(vcpkg_harbor_cache_hits_total[1h]) + rate(vcpkg_harbor_cache_misses_total[1h])) < 0.5 for: 1h labels: severity: warning annotations: summary: "Low cache hit rate"