Das Einrichten von Opentelemetry in der Anwendung und das lokale Starten von Otel Collector, Loki, Tempo und Grafana zur Anzeige der Ablaufverfolgung wurde im vorherigen Beitrag abgeschlossen.
Jetzt müssen wir uns nur noch mit dem Tracing nicht nur lokal, sondern auch in der tatsächlichen Produktionsumgebung befassen.Dafür ist das „Speichern von Protokollen und Spuren in der Cloud“ erforderlich.
Methoden
Alternativ gibt es für eine bessere Skalierbarkeit eine Methode, ein Gateway für den Lastausgleich zu installieren, OLTP vom Gateway zu empfangen und es an interne Collectors weiterzuleiten.2. Installieren Sie Grafana Alloy und stellen Sie es bereit
Wenn Sie die Bereitstellung mit Docker oder zuvor verwendeten Kubernates durchführen, können Sie es als neuen Knoten hinzufügen.
3. Schießen Sie direkt ohne Collector
Loki und Tempo von Grafana Cloud können als Backend verwendet werden und bieten daher den Vorteil einer schnellen Einführung ohne Bereitstellung.
Stattdessen verschwinden die Vorteile wie Skalierbarkeit und Verarbeitung, die durch die Verwendung von Collector erzielt werden können.
Angenommen: Schießen ohne Sammler
Eigentlich führen wir es zum Experimentieren ein, und da es sich um ein Startup handelt, ist die Skalierbarkeit nicht sehr wichtig (da es sich um Protokollierung handelt) und wir können es schnell machen, also ist es keine ausgefallene Entscheidung, aber es ist eine gute Entscheidung.
Kabel
Tracer
import { OTLPTraceExporter as PROTOOTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto"; const oltpTraceExporter = new PROTOOTLPTraceExporter({ url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT "/v1/traces", headers: { Authorization: process.env.OTEL_EXPORTER_OTLP_HEADERS_AUTHORIZATION, }, });Der Endpunkt (Grafana-Cloud), der den von uns aufgenommenen Trace empfängt, empfängt das http/protobuf-Protokoll, daher muss es aus exporter-trace-otlp-proto importiert und verwendet werden.
Logger
import { OTLPTraceExporter as PROTOOTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto"; const oltpTraceExporter = new PROTOOTLPTraceExporter({ url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT "/v1/traces", headers: { Authorization: process.env.OTEL_EXPORTER_OTLP_HEADERS_AUTHORIZATION, }, });Logger verwendete bereits das HTTP-Protokoll, daher kann OTLPLogExporter unverändert verwendet werden.
Umgebungsvariablen
Wenn Sie dotenv verwenden, müssen Sie es zuerst aufrufen.
// eslint-disable-next-line import/order
import { config } aus „dotenv“;
// eslint-disable-next-line import/order
import { getEnvFilePath } from „@/lib/utils/env-loader“;
config(); // Umgebung laden, bevor Tracer und Logger geladen werden
// eslint-disable-next-line import/order
otelSDK aus „./tracer“ importieren; // otelSDK sollte vor allen anderen Importen importiert werden
// eslint-disable-next-line import/order
importiere createLogger aus „./logger“;
// eslint-disable-next-line import/order import { config } from "dotenv"; // eslint-disable-next-line import/order import { getEnvFilePath } from "@/lib/utils/env-loader"; config(); // load env before loading tracer and logger // eslint-disable-next-line import/order import otelSDK from "./tracer"; // otelSDK should be imported before any other imports // eslint-disable-next-line import/order import createLogger from "./logger";
Zugriff auf Grafana
Klicken Sie in Grafana auf „Grafana starten“ und sehen Sie sich die Daten in „Erkunden“ an
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3