Merge pull request #2744 from WesleyAC/opentelemetry-console-exporter

Add OpenTelemetry console exporter option
This commit is contained in:
Mouse Reeve 2023-03-20 14:26:24 -07:00 committed by GitHub
commit e9d08e7424
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 9 deletions

View file

@ -35,7 +35,7 @@ class BookwyrmConfig(AppConfig):
# pylint: disable=no-self-use # pylint: disable=no-self-use
def ready(self): def ready(self):
"""set up OTLP and preview image files, if desired""" """set up OTLP and preview image files, if desired"""
if settings.OTEL_EXPORTER_OTLP_ENDPOINT: if settings.OTEL_EXPORTER_OTLP_ENDPOINT or settings.OTEL_EXPORTER_CONSOLE:
# pylint: disable=import-outside-toplevel # pylint: disable=import-outside-toplevel
from bookwyrm.telemetry import open_telemetry from bookwyrm.telemetry import open_telemetry

View file

@ -402,6 +402,7 @@ CSP_INCLUDE_NONCE_IN = ["script-src"]
OTEL_EXPORTER_OTLP_ENDPOINT = env("OTEL_EXPORTER_OTLP_ENDPOINT", None) OTEL_EXPORTER_OTLP_ENDPOINT = env("OTEL_EXPORTER_OTLP_ENDPOINT", None)
OTEL_EXPORTER_OTLP_HEADERS = env("OTEL_EXPORTER_OTLP_HEADERS", None) OTEL_EXPORTER_OTLP_HEADERS = env("OTEL_EXPORTER_OTLP_HEADERS", None)
OTEL_SERVICE_NAME = env("OTEL_SERVICE_NAME", None) OTEL_SERVICE_NAME = env("OTEL_SERVICE_NAME", None)
OTEL_EXPORTER_CONSOLE = env.bool("OTEL_EXPORTER_CONSOLE", False)
TWO_FACTOR_LOGIN_MAX_SECONDS = env.int("TWO_FACTOR_LOGIN_MAX_SECONDS", 60) TWO_FACTOR_LOGIN_MAX_SECONDS = env.int("TWO_FACTOR_LOGIN_MAX_SECONDS", 60)
TWO_FACTOR_LOGIN_VALIDITY_WINDOW = env.int("TWO_FACTOR_LOGIN_VALIDITY_WINDOW", 2) TWO_FACTOR_LOGIN_VALIDITY_WINDOW = env.int("TWO_FACTOR_LOGIN_VALIDITY_WINDOW", 2)

View file

@ -1,10 +1,19 @@
from opentelemetry import trace from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
from bookwyrm import settings
trace.set_tracer_provider(TracerProvider()) trace.set_tracer_provider(TracerProvider())
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(OTLPSpanExporter())) if settings.OTEL_EXPORTER_CONSOLE:
trace.get_tracer_provider().add_span_processor(
BatchSpanProcessor(ConsoleSpanExporter())
)
else:
trace.get_tracer_provider().add_span_processor(
BatchSpanProcessor(OTLPSpanExporter())
)
def instrumentDjango(): def instrumentDjango():

View file

@ -7,7 +7,7 @@ class CelerywyrmConfig(AppConfig):
verbose_name = "BookWyrm Celery" verbose_name = "BookWyrm Celery"
def ready(self): def ready(self):
if settings.OTEL_EXPORTER_OTLP_ENDPOINT: if settings.OTEL_EXPORTER_OTLP_ENDPOINT or settings.OTEL_EXPORTER_CONSOLE:
from bookwyrm.telemetry import open_telemetry from bookwyrm.telemetry import open_telemetry
open_telemetry.instrumentCelery() open_telemetry.instrumentCelery()

View file

@ -25,11 +25,11 @@ boto3==1.26.57
django-storages==1.13.2 django-storages==1.13.2
django-storages[azure] django-storages[azure]
django-redis==5.2.0 django-redis==5.2.0
opentelemetry-api==1.11.1 opentelemetry-api==1.16.0
opentelemetry-exporter-otlp-proto-grpc==1.11.1 opentelemetry-exporter-otlp-proto-grpc==1.16.0
opentelemetry-instrumentation-celery==0.30b1 opentelemetry-instrumentation-celery==0.37b0
opentelemetry-instrumentation-django==0.30b1 opentelemetry-instrumentation-django==0.37b0
opentelemetry-sdk==1.11.1 opentelemetry-sdk==1.16.0
protobuf==3.20.* protobuf==3.20.*
pyotp==2.8.0 pyotp==2.8.0
qrcode==7.3.1 qrcode==7.3.1