Interviewfrage für Site Reliability Engineer

Was ist hohe Kardinalität in einem Metriksystem, und wie hältst du sie unter Kontrolle?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Kardinalität ist die Anzahl eindeutiger Label-Kombinationen einer Metrik, und jede Kombination ist eine eigene Zeitreihe im Speicher. User-IDs, Request-IDs, E-Mail-Adressen oder rohe URL-Pfade als Labels können Millionen Reihen erzeugen und eine Prometheus-Instanz umlegen. Halt Labels begrenzt und niedrig kardinal, templatisiere dynamische Pfadsegmente, schieb Details pro Request in Logs oder Traces und erzwing Grenzen über Relabeling und Sample-Limits.

Warum Interviewer das fragen

Kardinalitätsexplosionen sind eine der häufigsten Arten, wie das Monitoring selbst zum Ausfall wird, und das ist eine besonders üble Sorte. Der Interviewer prüft, ob du weißt, wo die Grenze zwischen Metriken, Logs und Traces verläuft, und ob du eine Zeitreihendatenbank betrieben und nicht nur abgefragt hast.

So baust du deine Antwort auf

  • Definier Kardinalität als eindeutige Label-Sets, jedes kostet eine lebende Zeitreihe.
  • Zähl die klassischen Übeltäter auf, die als Labels landen.
  • Gib die Regel dafür, was in ein Label gehört und was in ein Log-Feld.
  • Beschreib die Leitplanken: Relabel-Drops, Limits und Review neuer Metriken.

Beispielantwort

Gesprochenes Beispiel, erste Person

Jede eindeutige Kombination von Label-Werten ist eine eigene Zeitreihe mit eigenem Speicherbedarf und eigenem Chunk auf der Platte. In dem Moment, in dem jemand user_id oder einen rohen Pfad als Label ergänzt, gehst du also von ein paar hundert Reihen auf Millionen. Uns ist eine Prometheus-Instanz wiederholt ins OOM gelaufen, und es stellte sich heraus, dass ein Team die volle URL inklusive Query String als Label auf ihrem Request-Counter hatte. Meine Regel ist, dass ein Label-Wert aus einer kleinen, geschlossenen Menge stammen muss, die du auf ein Whiteboard schreiben könntest: Methode, Statusklasse, Endpoint-Template, Region. Alles Unbegrenzte geht in eine Logzeile oder ein Attribut eines Trace-Spans, denn dort ist das Speichermodell dafür gebaut. Praktisch setze ich es mit metric_relabel_configs durch, um bekannte schlechte Labels beim Scrape zu droppen, mit einem Sample-Limit pro Target, damit ein Service nicht die ganze Instanz reißt, und mit einem kurzen Review, sobald eine neue Metrik in einem Pull Request auftaucht.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wie fändest du heraus, welche Metrik deine Zeitreihenzahl treibt?
  • Wann ist es richtig, eine Metrik in eine log-basierte Aggregation zu verschieben?
  • Was macht ein Sample-Limit, wenn ein Target es überschreitet?

Weitere Fragen für Site Reliability Engineer

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen