mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-12-27 02:20:31 +00:00
Merge pull request #2750 from WesleyAC/get-audience-telemetry
Add more detailed telemetry for get_audience
This commit is contained in:
commit
8cf7c5c392
2 changed files with 15 additions and 2 deletions
|
@ -4,10 +4,15 @@ from django.dispatch import receiver
|
|||
from django.db import transaction
|
||||
from django.db.models import signals, Q
|
||||
from django.utils import timezone
|
||||
from opentelemetry import trace
|
||||
|
||||
from bookwyrm import models
|
||||
from bookwyrm.redis_store import RedisStore, r
|
||||
from bookwyrm.tasks import app, LOW, MEDIUM, HIGH
|
||||
from bookwyrm.telemetry import open_telemetry
|
||||
|
||||
|
||||
tracer = open_telemetry.tracer()
|
||||
|
||||
|
||||
class ActivityStream(RedisStore):
|
||||
|
@ -136,8 +141,10 @@ class ActivityStream(RedisStore):
|
|||
)
|
||||
return audience.distinct()
|
||||
|
||||
def get_audience(self, status): # pylint: disable=no-self-use
|
||||
@tracer.start_as_current_span("ActivityStream.get_audience")
|
||||
def get_audience(self, status):
|
||||
"""given a status, what users should see it"""
|
||||
trace.get_current_span().set_attribute("stream_id", self.key)
|
||||
return [user.id for user in self._get_audience(status)]
|
||||
|
||||
def get_stores_for_object(self, obj):
|
||||
|
@ -160,7 +167,9 @@ class HomeStream(ActivityStream):
|
|||
|
||||
key = "home"
|
||||
|
||||
@tracer.start_as_current_span("HomeStream.get_audience")
|
||||
def get_audience(self, status):
|
||||
trace.get_current_span().set_attribute("stream_id", self.key)
|
||||
audience = super()._get_audience(status)
|
||||
if not audience:
|
||||
return []
|
||||
|
|
|
@ -10,7 +10,7 @@ if settings.OTEL_EXPORTER_CONSOLE:
|
|||
trace.get_tracer_provider().add_span_processor(
|
||||
BatchSpanProcessor(ConsoleSpanExporter())
|
||||
)
|
||||
else:
|
||||
elif settings.OTEL_EXPORTER_OTLP_ENDPOINT:
|
||||
trace.get_tracer_provider().add_span_processor(
|
||||
BatchSpanProcessor(OTLPSpanExporter())
|
||||
)
|
||||
|
@ -29,3 +29,7 @@ def instrumentCelery():
|
|||
@worker_process_init.connect(weak=False)
|
||||
def init_celery_tracing(*args, **kwargs):
|
||||
CeleryInstrumentor().instrument()
|
||||
|
||||
|
||||
def tracer():
|
||||
return trace.get_tracer(__name__)
|
||||
|
|
Loading…
Reference in a new issue