-
Notifications
You must be signed in to change notification settings - Fork 782
Description
Describe your environment
I've been having problem where excluded URLs are showing up as a kind of phantom error in azure application insights. I've opened a bug under the azure sdk for python project but they suggested I open one here. That ticket is:
Azure/azure-sdk-for-python#34616
Basically, my telemetry is reporting correctly, but I've excluded certain URLs, mostly because kubernetes constantly pings them as a health check and when I do that they report as a failed request with no response code.
Steps to reproduce
I'm going to include some sample code in a docker file that you can try:
app.py:
from azure.monitor.opentelemetry import configure_azure_monitor
configure_azure_monitor()
import flask
app = flask.Flask(__name__)
@app.route("/")
def test():
print('got one')
return "Test flask request"
@app.route("/health")
def health():
print('health endpoint')
return "Health request"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
Dockerfile:
FROM python:3.10-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
COPY . /app
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
CMD ["python", "app.py"]
requirements.txt:
Flask==3.0.0
azure-monitor-opentelemetry==1.3.0
And to run it:
docker build -t azuretelemetry . && docker run --rm -p 8080:8080 -e APPLICATIONINSIGHTS_CONNECTION_STRING=$APPLICATIONINSIGHTS_CONNECTION_STRING -e OTEL_EXPERIMENTAL_RESOURCE_DETECTORS=$OTEL_EXPERIMENTAL_RESOURCE_DETECTORS -e OTEL_PYTHON_EXCLUDED_URLS=$OTEL_PYTHON_EXCLUDED_URLS azuretelemetry
Where OTEL_PYTHON_EXCLUDED_URLS="health,swagger.*"
What is the expected behavior?
The transactions don't show up in telemetry at all
What is the actual behavior?
Transactions show up as errors
Additional context
Azure/azure-sdk-for-python#34616