mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-10-31 22:19:00 +00:00
Document OTLP in env, only load if env vars exist
Also move telemetry into its own file, all those imports seemed like unnecessary clutter
This commit is contained in:
parent
7cb7063da5
commit
3d7f73d73c
3 changed files with 30 additions and 8 deletions
|
@ -73,3 +73,19 @@ PREVIEW_TEXT_COLOR=#363636
|
|||
PREVIEW_IMG_WIDTH=1200
|
||||
PREVIEW_IMG_HEIGHT=630
|
||||
PREVIEW_DEFAULT_COVER_COLOR=#002549
|
||||
|
||||
# Below are example keys if you want to enable automatically
|
||||
# sending telemetry to an OTLP-compatible service. Many of
|
||||
# the main monitoring apps have OLTP collectors, including
|
||||
# NewRelic, DataDog, and Honeycomb.io - consult their
|
||||
# documentation for setup instructions, and what exactly to
|
||||
# put below!
|
||||
#
|
||||
# Service name is an arbitrary tag that is attached to any
|
||||
# data sent, used to distinguish different sources. Useful
|
||||
# for sending prod and dev metrics to the same place and
|
||||
# keeping them separate, for instance!
|
||||
#
|
||||
# OTEL_EXPORTER_OTLP_ENDPOINT=https://your.api.endpoint # API endpoint for your provider
|
||||
# OTEL_EXPORTER_OTLP_HEADERS= # Any headers required, usually authentication info
|
||||
# OTEL_SERVICE_NAME=your_service_name
|
||||
|
|
10
bookwyrm/telemetry.py
Normal file
10
bookwyrm/telemetry.py
Normal file
|
@ -0,0 +1,10 @@
|
|||
def InstallOpenTelemetry():
|
||||
from opentelemetry.instrumentation.django import DjangoInstrumentor
|
||||
from opentelemetry import trace
|
||||
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
||||
from opentelemetry.sdk.trace import TracerProvider
|
||||
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
||||
|
||||
DjangoInstrumentor().instrument()
|
||||
trace.set_tracer_provider(TracerProvider())
|
||||
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
|
|
@ -10,17 +10,13 @@ https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
|
|||
import os
|
||||
from environs import Env
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
from opentelemetry.instrumentation.django import DjangoInstrumentor
|
||||
from opentelemetry import trace
|
||||
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
||||
from opentelemetry.sdk.trace import TracerProvider
|
||||
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
||||
from bookwyrm.telemetry import InstallOpenTelemetry
|
||||
|
||||
Env.read_env()
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookwyrm.settings")
|
||||
DjangoInstrumentor().instrument()
|
||||
trace.set_tracer_provider(TracerProvider())
|
||||
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
|
||||
|
||||
if 'OTEL_EXPORTER_OTLP_ENDPOINT' in os.environ:
|
||||
InstallOpenTelemetry()
|
||||
|
||||
application = get_wsgi_application()
|
||||
|
|
Loading…
Reference in a new issue