Skip to main content

Google Cloud Logging exporter for OpenTelemetry

Project description

https://badge.fury.io/py/opentelemetry-exporter-gcp-logging.svg Documentation Status

This library provides support for exporting logs to Google Cloud Logging.

To get started with instrumentation in Google Cloud, see Generate traces and metrics with Python.

To learn more about instrumentation and observability, including opinionated recommendations for Google Cloud Observability, visit Instrumentation and observability.

For resource detection and GCP trace context propagation, see opentelemetry-tools-google-cloud. For the Google Cloud Trace exporter, see opentelemetry-exporter-gcp-trace.

Installation

pip install opentelemetry-exporter-gcp-logging

Usage

import logging
from opentelemetry.exporter.cloud_logging import (
    CloudLoggingExporter,
)
from opentelemetry.sdk.resources import Resource
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor

logger_provider = LoggerProvider(
    resource=Resource.create(
        {
            "service.name": "shoppingcart",
            "service.instance.id": "instance-12",
        }
    ),
)
set_logger_provider(logger_provider)
exporter = CloudLoggingExporter(default_log_name='my_log')
logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
handler = LoggingHandler(level=logging.ERROR, logger_provider=logger_provider)

# Attach OTLP handler to root logger
logging.getLogger().addHandler(handler)

# Create namespaced logger
# It is recommended to not use the root logger with OTLP handler
# so telemetry is collected only for the application
logger1 = logging.getLogger("myapp.area1")

logger1.warning("string log %s", "here")

If your code is running in a GCP environment with a supported Cloud Logging agent (like GKE, Cloud Run, GCE, etc.), you can write logs to stdout in Cloud Logging structured JSON format. Pass the structured_json_file argument and use SimpleLogRecordProcessor:

import sys
from opentelemetry.exporter.cloud_logging import (
    CloudLoggingExporter,
)
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk._logs import LoggerProvider
from opentelemetry.sdk._logs.export import SimpleLogRecordProcessor

logger_provider = LoggerProvider()
set_logger_provider(logger_provider)
exporter = CloudLoggingExporter(structured_json_file=sys.stdout)
logger_provider.add_log_record_processor(SimpleLogRecordProcessor(exporter))


otel_logger = logger_provider.get_logger(__name__)
otel_logger.emit(attributes={"hello": "world"}, body={"foo": {"bar": "baz"}})

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opentelemetry_exporter_gcp_logging-1.12.0a0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file opentelemetry_exporter_gcp_logging-1.12.0a0.tar.gz.

File metadata

File hashes

Hashes for opentelemetry_exporter_gcp_logging-1.12.0a0.tar.gz
Algorithm Hash digest
SHA256 586529dbbcae5e22b880f7c121fde3f0fe8ae997aba1bad53f13c20eeb27cb3a
MD5 d78b69cf1dde32e32a003a9bf9825e69
BLAKE2b-256 77e495ecebaa1c5134adaa0d0374028b25e3b3c5c08535d29a66d39d372a3d11

See more details on using hashes here.

File details

Details for the file opentelemetry_exporter_gcp_logging-1.12.0a0-py3-none-any.whl.

File metadata

File hashes

Hashes for opentelemetry_exporter_gcp_logging-1.12.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 2aca9b01b3248c2fa95d38d01aa71aca8e22f640c44dba36ca6b883930762971
MD5 b4df993c6889168c41a16bb07e27d9b4
BLAKE2b-256 55933a0a9a62db0b90029a8160774e791044c0566aa94d5160ce7bbce8abf242

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page