OpenTelemetry (OTLP) Integration

Lasttest-Metriken per OpenTelemetry streamen

Die OpenTelemetry-Integration exportiert Ihre Live-Lasttest-Metriken über das OpenTelemetry Protocol (OTLP) an jedes OTLP-kompatible Backend, sodass Sie einen Test in dem Tool verfolgen können, das Sie ohnehin für Observability nutzen. Sie funktioniert mit Honeycomb, Grafana Cloud, New Relic, Datadog, Elastic und jedem selbst gehosteten OpenTelemetry Collector.

OpenTelemetry-Konfigurationsdialog in LoadFocus mit den Feldern Name, OTLP-Endpoint, Protokoll und Headers

Integration erstellen

  1. Öffnen Sie Einstellungen > Integrationen.
  2. Klicken Sie auf Neue Integration und wählen Sie OpenTelemetry.
  3. Füllen Sie die folgenden Felder aus und klicken Sie auf Integration speichern.

Integrationsfelder

  • Name: Eine Bezeichnung für diese Integration, zum Beispiel Honeycomb HTTP.
  • OTLP-Endpunkt: Wohin die Metriken gesendet werden.
    • Für HTTP (protobuf) verwenden Sie die Basis-URL inklusive Schema, zum Beispiel https://api.honeycomb.io. LoadFocus hängt /v1/metrics automatisch an.
    • Für gRPC verwenden Sie host:port, zum Beispiel api.honeycomb.io:443. Ohne Schema wird https:// angenommen.
  • Protokoll: HTTP (protobuf) (Standard, funktioniert überall) oder gRPC.
  • Header (key=value, durch Komma getrennt): Paare für die Authentifizierung, zum Beispiel api-key=YOUR_KEY,x-tenant=team. Dies ist das einzige geheime Feld und wird verschlüsselt gespeichert.

Endpoints und Headers je Backend

BackendEndpoint (HTTP)Endpoint (gRPC)Headers
Honeycombhttps://api.honeycomb.ioapi.honeycomb.io:443x-honeycomb-team=INGEST_KEY,x-honeycomb-dataset=DATASET_NAME
Grafana Clouddie OTLP-Gateway-URL Ihres Stacksbeim gehosteten Gateway nicht angebotenAuthorization=Basic BASE64(instanceID:token)
New Relichttps://otlp.nr-data.net (US) oder https://otlp.eu01.nr-data.net (EU)otlp.nr-data.net:4317api-key=LICENSE_KEY
Elasticdie OTLP-URL Ihres APM-Servershost:8200 Ihres APM-ServersAuthorization=ApiKey API_KEY
Selbst gehosteter Collectorhttps://your-collector:4318your-collector:4317optional

Für New Relic und Dynatrace nutzen Sie stattdessen die eigenen Integrationen New Relic und Dynatrace. Sie tragen den Endpoint für Sie ein, prüfen Ihren Schlüssel beim Speichern und senden Delta-Metriken. Dynatrace braucht Delta-Metriken und verwirft die kumulativen Metriken, die diese generische Integration sendet.

Hinweise zu Honeycomb

  • Verwenden Sie einen Ingest Key, den Sie unter Environment Settings > API Keys > Ingest anlegen. Kopieren Sie das Key Secret, das beim Anlegen des Schlüssels einmalig angezeigt wird, nicht die kürzere Key ID aus der Liste. Wird die Key ID gesendet, kommt unknown API key (HTTP 401) zurück.
  • Für Metriken muss der Header x-honeycomb-dataset das Dataset benennen, in dem sie landen.
  • Geben Sie dem Schlüssel die Berechtigung Can create services/datasets, damit das Dataset mit den ersten eintreffenden Metriken angelegt wird.

Die Integration an einen Test anhängen

  1. Öffnen Sie einen JMeter- oder k6-Test und gehen Sie zum Abschnitt Integrationen.
  2. Wählen Sie Ihre OpenTelemetry-Integration im Dropdown aus.
  3. Speichern Sie den Test und führen Sie ihn aus.

Jeder Lauf, der mit einer Integration verknüpft ist, streamt seine Metriken an das konfigurierte Backend.

Was Sie sehen werden

Die Metriken tragen Namen und ID des Testlaufs, sodass Sie nach Testlauf aufschlüsseln können.

  • JMeter-Tests senden jmeter.samples (mit den Tags sampler und status, der ok oder ko ist), jmeter.response_time_ms (Tag sampler) und jmeter.errors (Tags sampler und response_code). Der Testlauf steht in den Resource-Attributen loadfocus.testrunname und loadfocus.testrunid, neben service.name. JMeter bündelt die Daten und sendet sie am Ende des Laufs, daher erscheinen die Metriken erst, wenn der Lauf beendet ist.
  • k6-Tests senden die Standardmetriken von k6, etwa http_req_duration, http_reqs, vus und iterations, die gestreamt werden, während der Test läuft. LoadFocus versieht sie mit den Tags testrunname, testrunid, region und machine.

Fehlerbehebung

  • unknown API key oder HTTP 401: Die Zugangsdaten sind falsch oder fehlen. Prüfen Sie bei Honeycomb, ob Sie das Key Secret und nicht die Key ID verwendet haben.
  • Keine Daten im Backend: Prüfen Sie den Zielnamen (Honeycomb-Dataset, New-Relic-Konto usw.) und den Auth-Header, und denken Sie daran, dass JMeter-Metriken erst erscheinen, wenn der Lauf beendet ist.
  • Endpoint abgelehnt: HTTP-Endpoints müssen das Schema https:// enthalten; gRPC-Endpoints verwenden host:port.
  • Der Lauf selbst bleibt unberührt: Ist eine Integration falsch konfiguriert, läuft der Test trotzdem, er exportiert dann nur keine Metriken.

Die Integration bearbeiten oder entfernen

  • Bearbeiten: Klicken Sie unter Integrationen auf das Bearbeiten-Symbol der Integration, um Name, Endpunkt, Protokoll oder Header zu ändern. Lassen Sie das Feld Header leer, um die bestehenden Zugangsdaten zu behalten; geben Sie nur dann einen Wert ein, wenn Sie sie ersetzen möchten.
  • Entfernen: Klicken Sie auf das Löschen-Symbol der Integration, um sie aus Ihren externen Reporting-Diensten zu entfernen.