Skip to content
This repository was archived by the owner on Dec 7, 2025. It is now read-only.

Commit 2d44614

Browse files
Fix v89
1 parent 098b719 commit 2d44614

File tree

4 files changed

+37
-26
lines changed

4 files changed

+37
-26
lines changed

apps/chat/app/logger.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
import structlog
55
from opentelemetry.trace import get_current_span
66

7-
8-
logging.basicConfig(stream=sys.stdout, format="%(message)s", level=logging.INFO)
7+
logging.basicConfig(
8+
format="%(message)s", stream=sys.stdout, level=logging.INFO
9+
)
910

1011
def add_trace_context(_, __, event_dict):
1112
span = get_current_span()
@@ -25,12 +26,5 @@ def add_trace_context(_, __, event_dict):
2526
logger_factory=structlog.stdlib.LoggerFactory(),
2627
)
2728

28-
29-
def with_context(**kwargs):
30-
"""Return a logger pre-bound with contextual information."""
31-
return structlog.get_logger("chat").bind(**kwargs)
32-
33-
3429
def enrich_context(event: str, **kwargs):
35-
"""Return logger enriched with an event name and extra fields."""
3630
return structlog.get_logger("chat").bind(event=event, **kwargs)

apps/chat/app/observability/tracing.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,20 @@
22
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
33
from opentelemetry.sdk.resources import Resource
44
from opentelemetry.sdk.trace import TracerProvider
5-
from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
6-
5+
from opentelemetry.sdk.trace.export import BatchSpanProcessor
6+
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
77

88
def setup_tracing(app) -> None:
99
resource = Resource(attributes={"service.name": "chat-api"})
1010
provider = TracerProvider(resource=resource)
11-
processor = BatchSpanProcessor(ConsoleSpanExporter())
11+
12+
otlp_exporter = OTLPSpanExporter(
13+
endpoint="http://localhost:4318/v1/traces",
14+
insecure=True,
15+
)
16+
processor = BatchSpanProcessor(otlp_exporter)
17+
1218
provider.add_span_processor(processor)
1319
trace.set_tracer_provider(provider)
20+
1421
FastAPIInstrumentor().instrument_app(app, tracer_provider=provider)

manifests/chat-api-deployment.yaml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@ spec:
3333
image: ghcr.io/justgithubaccount/chat-api:latest
3434
ports:
3535
- containerPort: 8000
36+
env:
37+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
38+
value: http://localhost:4318
39+
- name: OTEL_EXPORTER_OTLP_PROTOCOL
40+
value: http/protobuf
41+
- name: OTEL_TRACES_EXPORTER
42+
value: otlp
43+
- name: OTEL_LOGS_EXPORTER
44+
value: otlp
45+
- name: OTEL_SERVICE_NAME
46+
value: chat-api
3647
envFrom:
3748
- secretRef:
3849
name: chat-api-secrets
@@ -53,9 +64,7 @@ spec:
5364
mountPath: /var/log/chat
5465
command: ["/bin/sh", "-c"]
5566
args:
56-
- |
57-
uvicorn app.main:app --host 0.0.0.0 --port 8000 \
58-
| tee /var/log/chat/app.log
67+
- uvicorn app.main:app --host 0.0.0.0 --port 8000
5968

6069
# resources:
6170
# requests:

manifests/chat-api-vector-configmap.yaml

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,22 @@ metadata:
55
namespace: chat-api
66
data:
77
vector.toml: |
8-
[sources.file_logs]
9-
type = "file"
10-
include = ["/var/log/chat/*.log"]
11-
12-
[transforms.parse]
13-
type = "remap"
14-
inputs = ["file_logs"]
15-
source = '''
16-
. = parse_json!(.message)
17-
'''
8+
apiVersion: v1
9+
kind: ConfigMap
10+
metadata:
11+
name: chat-api-vector-config
12+
namespace: chat-api
13+
data:
14+
vector.toml: |
15+
[sources.otel]
16+
type = "opentelemetry"
17+
address = "0.0.0.0:4318"
1818
1919
[sinks.loki]
2020
type = "loki"
21-
inputs = ["parse"]
21+
inputs = ["otel"]
2222
endpoint = "http://loki.observability.svc.cluster.local:3100"
2323
encoding.codec = "json"
2424
labels.app = "chat-api"
2525
labels.env = "public"
26+

0 commit comments

Comments
 (0)