Public source validation / validate (push) Failing after 3m8s
398 lines
10 KiB
JSON
398 lines
10 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"metrics": [
|
|
{
|
|
"semanticName": "host.cpu.utilization",
|
|
"version": 1,
|
|
"description": "Average host CPU utilization excluding idle time.",
|
|
"unit": "percent",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\",instance={{instance}}}[{{window}}])) * 100)",
|
|
"requiredCapabilities": [
|
|
"node-exporter.cpu"
|
|
],
|
|
"allowedLabels": [
|
|
"instance"
|
|
],
|
|
"defaultAggregation": "avg",
|
|
"cardinalityBudget": 10,
|
|
"limits": {
|
|
"maxRangeSeconds": 2592000,
|
|
"maxSeries": 10,
|
|
"maxPoints": 20000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"gauge"
|
|
],
|
|
"freshnessSeconds": 30,
|
|
"defaultThresholds": [
|
|
{
|
|
"state": "attention",
|
|
"operator": ">=",
|
|
"value": 75,
|
|
"durationSeconds": 300
|
|
},
|
|
{
|
|
"state": "degraded",
|
|
"operator": ">=",
|
|
"value": 90,
|
|
"durationSeconds": 300
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"semanticName": "host.memory.utilization",
|
|
"version": 1,
|
|
"description": "Host memory utilization based on available memory.",
|
|
"unit": "percent",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "(1 - node_memory_MemAvailable_bytes{instance={{instance}}} / node_memory_MemTotal_bytes{instance={{instance}}}) * 100",
|
|
"requiredCapabilities": [
|
|
"node-exporter.memory"
|
|
],
|
|
"allowedLabels": [
|
|
"instance"
|
|
],
|
|
"defaultAggregation": "avg",
|
|
"cardinalityBudget": 10,
|
|
"limits": {
|
|
"maxRangeSeconds": 2592000,
|
|
"maxSeries": 10,
|
|
"maxPoints": 20000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"gauge"
|
|
],
|
|
"freshnessSeconds": 30,
|
|
"defaultThresholds": [
|
|
{
|
|
"state": "attention",
|
|
"operator": ">=",
|
|
"value": 80,
|
|
"durationSeconds": 300
|
|
},
|
|
{
|
|
"state": "degraded",
|
|
"operator": ">=",
|
|
"value": 92,
|
|
"durationSeconds": 300
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"semanticName": "container.cpu.utilization",
|
|
"version": 1,
|
|
"description": "Container CPU utilization normalized to a percentage of one core unless configured otherwise.",
|
|
"unit": "percent",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "rate(container_cpu_usage_seconds_total{name={{container}}}[{{window}}]) * 100",
|
|
"requiredCapabilities": [
|
|
"container.cpu"
|
|
],
|
|
"allowedLabels": [
|
|
"instance",
|
|
"container",
|
|
"image"
|
|
],
|
|
"defaultAggregation": "avg",
|
|
"cardinalityBudget": 500,
|
|
"limits": {
|
|
"maxRangeSeconds": 2592000,
|
|
"maxSeries": 200,
|
|
"maxPoints": 100000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"ranked-list",
|
|
"table"
|
|
],
|
|
"freshnessSeconds": 30,
|
|
"defaultThresholds": []
|
|
},
|
|
{
|
|
"semanticName": "container.memory.used",
|
|
"version": 1,
|
|
"description": "Current working-set memory used by a container.",
|
|
"unit": "bytes",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "container_memory_working_set_bytes{name={{container}}}",
|
|
"requiredCapabilities": [
|
|
"container.memory"
|
|
],
|
|
"allowedLabels": [
|
|
"instance",
|
|
"container",
|
|
"image"
|
|
],
|
|
"defaultAggregation": "avg",
|
|
"cardinalityBudget": 500,
|
|
"limits": {
|
|
"maxRangeSeconds": 2592000,
|
|
"maxSeries": 200,
|
|
"maxPoints": 100000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"ranked-list",
|
|
"table"
|
|
],
|
|
"freshnessSeconds": 30,
|
|
"defaultThresholds": []
|
|
},
|
|
{
|
|
"semanticName": "storage.disk.temperature",
|
|
"version": 1,
|
|
"description": "Observed disk temperature.",
|
|
"unit": "celsius",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "smartctl_device_temperature{device={{device}}}",
|
|
"requiredCapabilities": [
|
|
"smart.temperature"
|
|
],
|
|
"allowedLabels": [
|
|
"instance",
|
|
"device",
|
|
"model",
|
|
"serial_hash"
|
|
],
|
|
"defaultAggregation": "max",
|
|
"cardinalityBudget": 100,
|
|
"limits": {
|
|
"maxRangeSeconds": 7776000,
|
|
"maxSeries": 100,
|
|
"maxPoints": 100000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"gauge",
|
|
"heatmap",
|
|
"table",
|
|
"storage-map"
|
|
],
|
|
"freshnessSeconds": 300,
|
|
"defaultThresholds": [
|
|
{
|
|
"state": "attention",
|
|
"operator": ">=",
|
|
"value": 45,
|
|
"durationSeconds": 300
|
|
},
|
|
{
|
|
"state": "degraded",
|
|
"operator": ">=",
|
|
"value": 50,
|
|
"durationSeconds": 300
|
|
},
|
|
{
|
|
"state": "critical",
|
|
"operator": ">=",
|
|
"value": 60,
|
|
"durationSeconds": 60
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"semanticName": "storage.disk.temperature.maximum",
|
|
"version": 1,
|
|
"description": "Maximum observed disk temperature across the approved source set.",
|
|
"unit": "celsius",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "max(max_over_time(smartctl_device_temperature[{{window}}]))",
|
|
"requiredCapabilities": [
|
|
"smart.temperature"
|
|
],
|
|
"allowedLabels": [
|
|
"instance",
|
|
"device",
|
|
"model",
|
|
"serial_hash"
|
|
],
|
|
"defaultAggregation": "max",
|
|
"cardinalityBudget": 1,
|
|
"limits": {
|
|
"maxRangeSeconds": 7776000,
|
|
"maxSeries": 1,
|
|
"maxPoints": 100000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"gauge"
|
|
],
|
|
"freshnessSeconds": 300,
|
|
"defaultThresholds": []
|
|
},
|
|
{
|
|
"semanticName": "storage.pool.utilization",
|
|
"version": 1,
|
|
"description": "Used capacity as a percentage of usable pool capacity.",
|
|
"unit": "percent",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "derived",
|
|
"queryTemplate": "pulse_storage_pool_used_bytes{pool={{pool}}} / pulse_storage_pool_capacity_bytes{pool={{pool}}} * 100",
|
|
"requiredCapabilities": [
|
|
"storage.pool.capacity"
|
|
],
|
|
"allowedLabels": [
|
|
"instance",
|
|
"pool",
|
|
"filesystem"
|
|
],
|
|
"defaultAggregation": "max",
|
|
"cardinalityBudget": 100,
|
|
"limits": {
|
|
"maxRangeSeconds": 7776000,
|
|
"maxSeries": 100,
|
|
"maxPoints": 100000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"gauge",
|
|
"table",
|
|
"storage-map"
|
|
],
|
|
"freshnessSeconds": 120,
|
|
"defaultThresholds": [
|
|
{
|
|
"state": "attention",
|
|
"operator": ">=",
|
|
"value": 80,
|
|
"durationSeconds": 600
|
|
},
|
|
{
|
|
"state": "degraded",
|
|
"operator": ">=",
|
|
"value": 90,
|
|
"durationSeconds": 600
|
|
},
|
|
{
|
|
"state": "critical",
|
|
"operator": ">=",
|
|
"value": 97,
|
|
"durationSeconds": 300
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"semanticName": "service.response_time",
|
|
"version": 1,
|
|
"description": "End-to-end probe response time.",
|
|
"unit": "seconds",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "probe_duration_seconds{probe_id={{probe_id}}}",
|
|
"requiredCapabilities": [
|
|
"probe.duration"
|
|
],
|
|
"allowedLabels": [
|
|
"probe_id",
|
|
"service_id",
|
|
"probe_type"
|
|
],
|
|
"defaultAggregation": "p95",
|
|
"cardinalityBudget": 1000,
|
|
"limits": {
|
|
"maxRangeSeconds": 7776000,
|
|
"maxSeries": 500,
|
|
"maxPoints": 200000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"ranked-list",
|
|
"table",
|
|
"heatmap",
|
|
"service-matrix"
|
|
],
|
|
"freshnessSeconds": 120,
|
|
"defaultThresholds": []
|
|
},
|
|
{
|
|
"semanticName": "service.availability",
|
|
"version": 1,
|
|
"description": "Probe success represented as 0 or 1 and aggregated to availability.",
|
|
"unit": "ratio",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "probe_success{probe_id={{probe_id}}}",
|
|
"requiredCapabilities": [
|
|
"probe.success"
|
|
],
|
|
"allowedLabels": [
|
|
"probe_id",
|
|
"service_id",
|
|
"probe_type"
|
|
],
|
|
"defaultAggregation": "avg",
|
|
"cardinalityBudget": 1000,
|
|
"limits": {
|
|
"maxRangeSeconds": 7776000,
|
|
"maxSeries": 500,
|
|
"maxPoints": 200000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries",
|
|
"table",
|
|
"service-matrix"
|
|
],
|
|
"freshnessSeconds": 120,
|
|
"defaultThresholds": []
|
|
},
|
|
{
|
|
"semanticName": "service.availability.minimum",
|
|
"version": 1,
|
|
"description": "Minimum probe availability across the approved service source set.",
|
|
"unit": "ratio",
|
|
"valueKind": "gauge",
|
|
"sourceKind": "prometheus",
|
|
"queryTemplate": "min(min_over_time(probe_success[{{window}}]))",
|
|
"requiredCapabilities": [
|
|
"probe.success"
|
|
],
|
|
"allowedLabels": [
|
|
"probe_id",
|
|
"service_id",
|
|
"probe_type"
|
|
],
|
|
"defaultAggregation": "min",
|
|
"cardinalityBudget": 1,
|
|
"limits": {
|
|
"maxRangeSeconds": 7776000,
|
|
"maxSeries": 1,
|
|
"maxPoints": 100000,
|
|
"timeoutSeconds": 10
|
|
},
|
|
"allowedVisualizations": [
|
|
"stat",
|
|
"timeseries"
|
|
],
|
|
"freshnessSeconds": 120,
|
|
"defaultThresholds": []
|
|
}
|
|
]
|
|
}
|