diff --git a/presidio/server/__main__.py b/presidio/server/__main__.py index 9c618012..7135864d 100644 --- a/presidio/server/__main__.py +++ b/presidio/server/__main__.py @@ -9,8 +9,8 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor -instrumentor = FlaskInstrumentor() -instrumentor.instrument() +# instrumentor = FlaskInstrumentor() +# instrumentor.instrument() from .server import Server @@ -33,7 +33,7 @@ trace.set_tracer_provider(provider) server = Server() - instrumentor.instrument_app( + FlaskInstrumentor().instrument_app( server.app, excluded_urls="/health", ) diff --git a/presidio/server/server.py b/presidio/server/server.py index 847ae7c9..2b8f7c5e 100644 --- a/presidio/server/server.py +++ b/presidio/server/server.py @@ -7,6 +7,7 @@ from typing import Tuple from flask import Flask, Response, jsonify, request +from opentelemetry import trace from presidio_analyzer.analyzer_engine import AnalyzerEngine from presidio_analyzer.analyzer_request import AnalyzerRequest from presidio_analyzer.batch_analyzer_engine import BatchAnalyzerEngine @@ -65,6 +66,7 @@ def __init__(self): @self.app.route("/health") def health() -> str: """Return basic health probe result.""" + print("current_span:", trace.get_current_span()) return "Presidio Analyzer service is up" @self.app.route("/analyze", methods=["POST"]) @@ -142,6 +144,13 @@ def http_exception(e): @self.app.route("/batchanalyze", methods=["POST"]) def batch_analyze() -> Tuple[Response, int]: """Execute the batch analyzer function.""" + + print("Headers received as part of batchanalyze:") + for k, v in request.headers.items(): + print(f"{k}: {v}") + + print("current_span:", trace.get_current_span()) + # Parse the request params try: request_obj = request.get_json() diff --git a/privacy-profile-composer/pkg/envoyfilter/internal/common/otel_propagator.go b/privacy-profile-composer/pkg/envoyfilter/internal/common/otel_propagator.go index 7e79ef47..6882ea76 100644 --- a/privacy-profile-composer/pkg/envoyfilter/internal/common/otel_propagator.go +++ b/privacy-profile-composer/pkg/envoyfilter/internal/common/otel_propagator.go @@ -44,11 +44,13 @@ func otelSpanContextFromZipkin(span model.SpanContext) (trace.SpanContext, error ), fmt.Errorf("invalid span ID: %w", err) } - return trace.NewSpanContext(trace.SpanContextConfig{ - TraceID: traceID, - SpanID: spanID, - TraceFlags: traceFlags, - TraceState: trace.TraceState{}, - Remote: false, - }), nil + return trace.NewSpanContext( + trace.SpanContextConfig{ + TraceID: traceID, + SpanID: spanID, + TraceFlags: traceFlags, + TraceState: trace.TraceState{}, + Remote: false, + }, + ), nil } diff --git a/privacy-profile-composer/pkg/envoyfilter/internal/common/pii_analysis.go b/privacy-profile-composer/pkg/envoyfilter/internal/common/pii_analysis.go index db0d3623..64eb949e 100644 --- a/privacy-profile-composer/pkg/envoyfilter/internal/common/pii_analysis.go +++ b/privacy-profile-composer/pkg/envoyfilter/internal/common/pii_analysis.go @@ -25,6 +25,8 @@ func PiiAnalysis(ctx context.Context, presidioSvcURL string, svcName string, buf if err != nil { fmt.Printf("Error converting span context: %v\n", err) } + marshalledSpanContext, _ := otelSpanCtx.MarshalJSON() + fmt.Printf("Converted span context: %v\n", string(marshalledSpanContext)) ctx = trace.ContextWithSpanContext(ctx, otelSpanCtx) @@ -48,6 +50,14 @@ func PiiAnalysis(ctx context.Context, presidioSvcURL string, svcName string, buf req.Header.Set("Content-Type", "application/json") GlobalOtelPropagator.Inject(ctx, propagation.HeaderCarrier(req.Header)) + fmt.Println("injected headers before sending to presidio:") + for k, v := range req.Header { + fmt.Printf(" %s:\n", k) + for _, vv := range v { + fmt.Printf(" %s\n", vv) + } + } + resp, err := http.DefaultClient.Do(req) if err != nil { return empty, fmt.Errorf("presidio post error: %w", err)