Text size
Ausprobiert & getestet6 Min. Lesezeit

Wenn die Überwachungsrechnung die Serverrechnung schlägt

Wie man die Kosten für Beobachtbarkeit senkt, ohne blind zu fliegen.

When the monitoring bill beats the server bill
KI-generierte Illustration

Es gibt einen Moment, an dem viele Unternehmen ankommen: jemand in der Finanzwelt fragt, warum die Beobachtungsrechnung größer ist als die Rechenrechnung für die beobachteten Systeme. Es klingt absurd, aber es passiert oft. Die Kosten für die Beobachtungsfähigkeit sind in vielen Infrastrukturbudgets leise zu einem der größten Posten geworden.

Die meisten dieser Daten werden nicht wirklich verwendet. Es zu verhindern bedeutet nicht, dass man aus den Augen verliert, was passiert. Es bedeutet, wählerisch zu sein, was man behält.

Warum ist es so teuer ?

  • Überall sind Stämme. Debug-Logging, das in der Produktion verbleibt, verborgene Frameworks, Gesundheitscheck-Logs, dieselben Informationen, die in fünf Schichten protokolliert sind.
  • Metrische Kardinalität. Eine Metrik mit Etiketten wie user_id, request_id oder vollständige URLs erstellt für jeden eindeutigen Wert eine separate Zeitreihe. Millionen Serien, jede mit Rechnung.
  • Ich verfolge alles. 100% der in einem stark frequentierten System verfolgten Anfragen erzeugen enorme Volumina, die meisten von ihnen identische erfolgreiche Anfragen.
  • Langes Aufbewahren standardmäßig. Alles für Monate aufbewahren, "für den Fall".
  • Preisgestaltung pro Gastgeber oder pro Container Die Daten werden mit Autoscaling und vielen kleinen Behältern kombiniert.
  • Doppeldaten. Die gleichen Protokolle an zwei Tools gesendet, Metriken von zwei Agenten gesammelt.

Wissen , wo das Geld hingeht .

Bevor Sie etwas schneiden, messen Sie:

  • Welche Dienste produzieren die meisten Logs, Metriken und Spuren?
  • Welche Metriken haben die höchste Kardinalität? (Prometheus hat eine TSDB-Statusseite, die dies zeigt, und die meisten Anbieter zeigen die Nutzung pro Metrik an.)
  • Welche Daten werden tatsächlich abgefragt? Viele Tools können zeigen, welche Dashboards, Warnungen und Abfragen welche Daten verwenden.

Sie werden fast immer feststellen, dass eine Handvoll Dienstleistungen und Kennzahlen den größten Teil der Rechnung ausmachen.

Die billigste Telemetrie ist die, die Sie nicht sammeln wollten, weil Sie wussten, dass niemand sie vermissen würde.

Probenahme-Spuren

Du brauchst nicht jede Spur. Sie brauchen die interessanten.

Probenahme des Kopfes entscheidet zu Beginn eines Antrags, ob er aufbewahrt werden soll, z. B. 10% der Anträge. Einfach und billig, aber es könnte die eine fehlgeschlagene Anfrage wegwerfen, die du brauchst.

Stichprobenentnahme entscheidet, nachdem die Verfolgung abgeschlossen ist, so dass es alle Fehler, alle langsamen Anfragen und nur einen kleinen Prozentsatz der normalen erhalten kann. Der OpenTelemetry Collector unterstützt dies:

processors:
  tail_sampling:
    decision_wait: 10s
    policies:
      - name: keep-errors
        type: status_code
        status_code: { status_codes: [ERROR] }
      - name: keep-slow
        type: latency
        latency: { threshold_ms: 1000 }
      - name: sample-the-rest
        type: probabilistic
        probabilistic: { sampling_percentage: 5 }

Du behalten alles nützliche zum Debuggen, und lassen 90% + des Volumens fallen.

Filterprotokolle

  • Abfallgeräusche an der Quelle: Gesundheitsprüfungen, Bereitschaftsproben, erfolgreiche Anfragen nach statischen Dateien.
  • Festlegen von angemessenen Log-Levels: info oder warn in der Produktion, debug Nur bei der Untersuchung, im Idealfall schaltbar während der Ausführung.
  • Strukturelle Protokolle Die Daten werden besser komprimiert und billiger abfragen.
  • Filter in der Pipeline: der OTel Collector, Vector oder Fluent Bit kann Logs fallen lassen, sammeln oder abschneiden, bevor sie das teure Backend erreichen.
  • Wiederholte Logs in Metriken umwandeln. Wenn du nur eine Logarithmuslinie zählst, dann mach sie zu einem Zähler.
  • Schichtweise Lagerung: jüngste Protokolle in schneller, teurer Speicherung, ältere Protokolle im billigen Objektspeicher (oder gelöscht).

Zähme metrische Kardinalität

  • Verwenden Sie niemals unbegrenzte Werte als Etiketten: Benutzer-IDs, Anforderungs-IDs und E-Mail-Adressen, vollständige URLs und Zeitstempel.
  • Normalisierung der Pfade: /orders/{id} statt /orders/12345.
  • Nicht genutzte Metriken fallen lassen mit Umschlagregeln in Prometheus oder dem Sammler. Viele Exporteure geben Hunderte von Kennzahlen an, und Sie benutzen zehn.
  • Aggregate vor der Lagerung mit Registrierungsregeln, wobei detaillierte Daten für kurze Zeit und aggregierte Daten für längere Zeit aufbewahrt werden.
  • Überprüfung neuer Kennzahlen in Code Review: welche Etiketten hat es und wie viele Werte könnte jeder nehmen?

Open Source gegen SaaS

Kommerzielle Plattformen sind praktisch und leistungsstark, aber die Preisgestaltung basierend auf Hosts, eingesetzten Gigabytes oder benutzerdefinierten Metriken kann schnell wachsen.

Open-Source-Stacks (Prometheus oder Mimir, Loki, Tempo, Grafana oder ClickHouse-basierte Tools wie SigNoz) können im Maßstab viel billiger sein, insbesondere bei Objektspeicher. Aber sie brauchen Leute, die sie führen, und das ist auch ein echter Preis.

Viele Unternehmen haben am Ende eine Mischung aus: OpenTelemetry überall, der Collector-Datenvermittlung, hochwertigen Daten zu einem kommerziellen Tool, Massendaten zu billigerem Self-Hosting-Speicher. Da OTel anbieterneutral ist, können Sie diese Aufteilung ändern, wenn sich die Preise ändern.

Kosten sichtbar machen

  • Anzeigen von Beobachtbarkeitskosten pro Team oder Dienst.
  • Ausgestattet Budgets und Ausschreibungen bei Einnahme.
  • "Was kostet das Monitoring?" ist eine normale Frage bei der Einführung eines neuen Dienstes.

Also, wo fange ich an?

Finden Sie Ihre fünf besten Datenproduzenten. Schalten Sie die Schwanzprobenahme für Spuren ein, lassen Sie die Gesundheitsprotokolle fallen und entfernen Sie Ihre Etiketten mit der höchsten Kardinalität. Allein diese drei Änderungen senken oft die Kosten drastisch, und niemand bemerkt, dass er sich nicht mehr so gut sieht.

Meine Meinung: Beobachtbarkeit sollte Ihnen helfen, Ihr System zu verstehen, nicht um das Budget zu konkurrieren. Sammeln Sie mit Absicht, behalten Sie, was Sie verwenden, und lassen Sie den Rest gehen.

Desly