Zum Inhalt

Der Netzrahmen

Hier sind einige Tipps für die Ausstattung Ihrer Webanwendung mit Erkennungstools.

Integrationen.

Wenn Sie eine der folgenden Bibliotheken verwenden, lesen Sie die Integrationsdokumentation:

Überprüfen Sie andernfalls, ob Ihr Server WSGI oder ASGI verwendet, und überprüfen Sie die entsprechende Integration.

Erfassen von HTTP-Server-Request-und Antwortheadern

Einige Methoden, wie z. B.logfire.instrument_fastapi(), ermöglichen es Ihnen,capture_headers=True zu übergeben, um alle Anforderungs-und Antwortheader in der Spanne zu protokollieren, was normalerweise alles ist, was Sie benötigen.

Wenn Sie mehr Kontrolle wünschen, gibt es drei Umgebungsvariablen, die der OpenTelemetry-Erkennungsbibliothek mitteilen, dass sie die Anfrage-und Antwortheader erfassen soll:

  • OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST
  • OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE
  • OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS

Jeder akzeptiert eine durch Kommas getrennte Liste regulärer Ausdrücke, die unabhängig von der Groß-und Kleinschreibung für Headernamen überprüft werden, indem die ersten beiden bestimmen, welche Anfrage-/Antwort-Header erfasst und der dritten Span-Eigenschaft hinzugefügt werden, um zu bestimmen, welche Headerwerte bearbeitet werden.

Um beispielsweise alle Header zu erfassen, stellen Sie die folgenden Einstellungen ein:

OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST =". *"(auf Englisch)
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE =". *"(auf Englisch)

Das ist es, was capture_headers=True getan hat.

Speziell für die Erfassung von content-type-Anforderungsheadern und-Headern, die mit X- beginnen:

OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST ="content-type, X-. *"(auf Englisch)

wird Authorization Wert durch Wert ersetzen [REDACTED] Um die Offenlegung von Benutzerdaten zu vermeiden:

OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS ="Authorization"(Autorisierung)

(Obwohl die Reinigungsfunktion von Logfire normalerweise besser ist.)

Abfrage der HTTP-Anforderungsdauer pro Perzentil

Im Allgemeinen ist es interessant, die Dauer einer HTTP-Anforderung pro Perzentil zu visualisieren, im Gegensatz zu Durchschnittswerten, die möglicherweise von Extremen betroffen sind, da Perzentile eine Vorstellung von der maximalen Dauer einer Anforderung von 50%, 90%, 95% oder 99% ermöglichen.

Im Folgenden finden Sie eine Beispielabfrage, mit der die Perzentile für die Dauer der HTTP-Anforderung berechnet werden:

Mit der Datenmenge (
  select wählen
    time_bucket ('% time_bucket_duration %', start_timestamp)
    (extract (epoch von end_timestamp-start_timestamp)* 1000) as duration_ms (extract (epoch von end_timestamp-start_timestamp)* 1000) as duration_ms
  aus Records
  WHERE Attribute?'http.method''
)
select wählen
  x, ist
  percentile_cont (0.99) WITHIN GROUP (ORDER BY duration_ms) as percentile_99,
  percentile_cont (0.95) WITHIN GROUP (ORDER BY duration_ms) as percentile_95,
  percentile_cont (0.90) WITHIN GROUP (ORDER BY duration_ms) as percentile_90,
  percentile_cont (0.50) WITHIN GROUP (ORDER BY duration_ms) as percentile_50 (ORDER BY duration_ms) wie percentile_50
aus dem Dataset
Gruppe nach x
ORDER BY x DESC und

Beachten Sie, wie wir Datensätze filtern, die das http.method-Attribut festlegen Dies ist ein guter Ausgangspunkt zum Abrufen von Spuren, die mit HTTP-Anforderungen verbunden sind, aber abhängig von Ihren Einstellungen müssen Sie möglicherweise weitere Filter hinzufügen.

Diese Abfrage ist ein guter Kandidat für das Zeitreihendiagramm in einem Dashboard:

Anforderungen duration per percentile as time series chart


本文总阅读量次