This page contains recommendations for instrumenting your app on different Google Cloud platforms, such as Google Kubernetes Engine (GKE) and Cloud Run. If your app isn't already instrumented, then use these recommendations for guidance as to how to instrument your app to send telemetry data to Google Cloud. The recommendations on this page aren't the only solutions, and other approaches can work. For additional guidance, contact Google Cloud Support.
There are recommendations for the following:
For information about instrumentation examples, see the documents listed in the Code samples section.
GKE
For general information about GKE, see GKE overview.
Type | Recommendation |
---|---|
Metrics | We recommend that you use Google Cloud Managed Service for Prometheus. For instrumentation, do one of the following:
|
Traces | Do the following: |
Logs | Configure your app to output
JSON-structured logs to GKE collects logs written to
|
Compute Engine
For general information about Compute Engine, see Virtual machine instances.
Type | Recommendation |
---|---|
Metrics and Traces | Do the following:
Alternatively, if you only want to configure collection for Prometheus-format metrics, you can use the Ops Agent Prometheus Receiver to collect metrics instrumented using Prometheus client libraries or the OpenTelemetry SDK. |
Logs | Do the following:
|
Cloud Run
For general information about Cloud Run, see What is Cloud Run.
Type | Recommendation |
---|---|
Metrics and Traces | Do the following:
Alternatively, if you only want to configure collection for Prometheus-format metrics, you can use the Prometheus sidecar for Cloud Run to collect metrics instrumented using Prometheus client libraries or the OpenTelemetry SDK. |
Logs | Configure your app to output
JSON-structured logs to Cloud Run collects logs written to
|
Cloud Run functions
For general information about Cloud Run functions, see Cloud Run functions overview.
Type | Recommendation |
---|---|
Metrics | Direct writing of metrics is not supported in Cloud Run functions. To generate metrics, we recommend you use log-based metrics. |
Traces | Use the SDK and the Cloud Trace exporter for your language. |
Logs | Configure your app to output
JSON-structured logs to Cloud Run functions collects logs written to
|
App Engine
For general information about App Engine, see An overview of App Engine.
Type | Recommendation |
---|---|
Metrics | Use the SDK and the Cloud Monitoring exporter for your language. |
Traces | Use the SDK and the Cloud Trace exporter for your language. |
Logs | Configure your app to output
JSON-structured logs to App Engine collects logs written to
|
Recommended logging frameworks
To collect logs, we recommend that you use a framework which can be
configured to output serialized JSON objects to stdout
, stderr
, or to a
file. The logging agent, whether integrated or installed, scrapes the file
and writes structured logs for Cloud Logging.
For writing log data, we recommend the following:
Code samples
For code samples that illustrate how to instrument your application to send telemetry to Google Cloud, see the following:
- Generate traces and metrics with Go.
- Generate traces and metrics with Java.
- Generate traces and metrics with Node.js.
- Generate traces and metrics with Python.
References to OpenTelemetry
This section provides links to the OpenTelemetry SDK, and the exporters for OTLP, Cloud Trace, and Cloud Monitoring.
General references:
Go
Java
JavaScript
- JavaScript SDK
- JavaScript OTLP exporter
- JavaScript Cloud Trace exporter
- JavaScript Cloud Monitoring exporter