🔧 AI Nachrichten ChatGPT showing blank screen [Fix](05.09.2026 um 19:55 Uhr)
⚠️ Malware / Trojaner / VirenSofort deinstallieren: Diese 19 Browser-Erweiterungen sind mit Malware verseucht(06.09.2026 um 08:00 Uhr)
🕵️ Sicherheitslücken0patch liefert drei Jahre Support für Microsoft Office 2021 - BornCity(07.09.2026 um 00:15 Uhr)
🔧 AI Nachrichten ChatGPT showing blank screen [Fix](05.09.2026 um 19:55 Uhr)
⚠️ Malware / Trojaner / VirenSofort deinstallieren: Diese 19 Browser-Erweiterungen sind mit Malware verseucht(06.09.2026 um 08:00 Uhr)
🕵️ Sicherheitslücken0patch liefert drei Jahre Support für Microsoft Office 2021 - BornCity(07.09.2026 um 00:15 Uhr)

🔧 Programmierung 🕛 kürzlich 3 Min Lesezeit
0

The Golden Signals: A Practical Implementation Guide

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




Four Metrics to Rule Them All



Google's SRE book introduced the four golden signals: Latency, Traffic, Errors, and Saturation. Simple concept, but I've seen teams struggle with implementation.



Here's a practical guide from someone who's implemented them across 50+ services.






Signal 1: Latency



Not all latency is equal. You need to track successful requests and error requests separately.




CODE
# Bad: Average latency
latency = total_request_time / total_requests # Useless

# Good: Percentile latency, separated by status
from prometheus_client import Histogram

REQUEST_LATENCY = Histogram(
'http_request_duration_seconds',
'Request latency',
['method', 'endpoint', 'status_class'],
buckets=[.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5, 10]
)

@app.middleware
async def track_latency(request, call_next):
start = time.time()
response = await call_next(request)
duration = time.time() - start
status_class = f"{response.status_code // 100}xx"
REQUEST_LATENCY.labels(
method=request.method,
endpoint=request.url.path,
status_class=status_class
).observe(duration)
return response






Alert on p99, not p50. Your happiest users don't need help.




CODE
- alert: HighLatencyP99
expr: histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) > 0.5
for: 5m
labels:
severity: warning









Signal 2: Traffic



Traffic tells you "is this normal?" It's the context for every other signal.




CODE
# Current request rate
rate(http_requests_total[5m])

# Compare to same time last week
rate(http_requests_total[5m])
/
rate(http_requests_total[5m] offset 7d)

# Alert on sudden drops (possible outage nobody noticed)
- alert: TrafficDrop
expr: >
rate(http_requests_total[5m])
<
(rate(http_requests_total[5m] offset 1h) * 0.5)
for: 10m
annotations:
summary: "Traffic dropped >50% compared to 1 hour ago"






Traffic drops are often more concerning than traffic spikes.






Signal 3: Errors



Track error rate as a percentage, not absolute count:




CODE
# Error rate percentage
(
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
) * 100






But also track error types separately:




CODE
error_categories:
- 5xx: "Server errors (our fault)"
- 4xx_excluding_404: "Client errors (possible API issue)"
- timeout: "Request timeouts"
- circuit_breaker: "Dependency failures"









Signal 4: Saturation



The most underrated signal. Saturation answers: "how close are we to full?"




CODE
# CPU saturation
process_cpu_seconds_total / container_spec_cpu_quota

# Memory saturation
container_memory_working_set_bytes / container_spec_memory_limit_bytes

# Connection pool saturation
active_connections / max_connections

# Queue saturation (the one everyone forgets)
message_queue_depth / message_queue_capacity






Alert before you hit 100%. I use 80% as the threshold for warning and 95% for critical.






Putting It All Together



Every service gets a standard dashboard with four rows:




CODE
Row 1: Latency   [p50] [p90] [p99] [error latency]
Row 2: Traffic [rate] [vs last week] [by endpoint]
Row 3: Errors [rate %] [by type] [by endpoint]
Row 4: Saturation [CPU] [Memory] [Connections] [Queue]






This fits on one screen. No scrolling. Any engineer can assess service health in 10 seconds.






The Anti-Pattern



Don't build a golden signals dashboard per service manually. Template it:




CODE
{
"dashboard": {
"title": "Golden Signals: {{ service_name }}",
"templating": {
"list": [
{ "name": "service", "type": "query" },
{ "name": "environment", "type": "custom", "options": ["prod", "staging"] }
]
}
}
}






One template, 50 dashboards. Update once, apply everywhere.



If you want golden signal monitoring that sets itself up automatically, check out what we're building at

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 55%
🟡 In Evaluierung 22%
🟢 Keine Auswirkung 10%
Spannende Innovation 13%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
ChatGPT showing blank screen [Fix]
1 Quelle
Excel keeps people on Windows, and a Linux distro creator wants Microsoft to end that
1 Quelle
Sofort deinstallieren: Diese 19 Browser-Erweiterungen sind mit Malware verseucht
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten The Golden Signals: A Practical Implementation Guide

Thematisch verwandte Begriffe: Golden, Signals, Practical, Implementation · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...