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

Flask and Zipkin exporter #186

@nlamirault

Description

@nlamirault

Hi, i try to use OpenCensus with OpenZipkin. I start Zipkin like that :

$ docker run -d -p 9411:9411 openzipkin/zipkin

Then configuration in a tracing.py file :

INTEGRATIONS = ['mysql', 'sqlalchemy', 'requests']

def setup(app, service):
    """Configure OpenCensus.

    Args:
        app ([flask.Flask]): the main application
    """

    exporter = zipkin_exporter.ZipkinExporter(
        service_name=service,
        host_name="127.0.0.1",
        port=9411,
    )
    middleware = flask_middleware.FlaskMiddleware(app, exporter=exporter)
    config_integration.trace_integrations(INTEGRATIONS)
    return middleware

and in main.py :

def creates_app():
    app = flask.Flask(
        __name__, static_folder='static', template_folder='templates')
    [...]
    setup_tracing(app)

def setup_tracing(app):
    """Setup OpenTracing

    Args:
        app ([flask.Flask]): the main application
    """

    LOGGER.debug("Setup traces")
    middleware = tracing.setup(app, settings.APPNAME)
    LOGGER.info("Tracing middleware done: %s", middleware)

I try a HTTP request to my application :

[2018-05-28 12:02:30 +0200] [1310] [DEBUG] GET /api/v1/customers                                                                                                                                                   
2018-05-28 12:02:30,011 [1310] INFO     atmosdb.api.v1.customers: List all customers                                                                                                                               
2018-05-28 12:02:30,012 [1310] INFO     atmosdb.dao.customers: Search all customers                                                                                                                                
2018-05-28 12:02:30,012 [1310] DEBUG    atmosdb.dao.commons: List entities <class 'atmosdb.dao.customers.Customer'>                                                                                                
2018-05-28 12:02:30,027 [1310] DEBUG    urllib3.connectionpool: Starting new HTTP connection (1): 127.0.0.1                                                                                                        
2018-05-28 12:02:30,029 [1310] DEBUG    urllib3.connectionpool: http://127.0.0.1:9411 "POST /api/v2/spans HTTP/1.1" 202 0                                                                                          
2018-05-28 12:02:30,032 [1310] DEBUG    urllib3.connectionpool: Starting new HTTP connection (1): 127.0.0.1                                                                                                        
2018-05-28 12:02:30,033 [1310] DEBUG    urllib3.connectionpool: http://127.0.0.1:9411 "POST /api/v2/spans HTTP/1.1" 202 0                                                                                          
2018-05-28 12:02:30,036 [1310] DEBUG    urllib3.connectionpool: Starting new HTTP connection (1): 127.0.0.1                                                                                                        
2018-05-28 12:02:30,040 [1310] DEBUG    urllib3.connectionpool: http://127.0.0.1:9411 "POST /api/v2/spans HTTP/1.1" 202 0                                                                                          
2018-05-28 12:02:30,046 [1310] DEBUG    urllib3.connectionpool: Starting new HTTP connection (1): 127.0.0.1                                                                                                        
2018-05-28 12:02:30,049 [1310] DEBUG    urllib3.connectionpool: http://127.0.0.1:9411 "POST /api/v2/spans HTTP/1.1" 202 0                                                                                          
2018-05-28 12:02:30,053 [1310] DEBUG    urllib3.connectionpool: Starting new HTTP connection (1): 127.0.0.1                    

[...]
2018-05-28 12:02:30,395 [1310] ERROR    root: maximum recursion depth exceeded
[...]

2018-05-28 12:02:30,419 [1310] DEBUG    urllib3.connectionpool: http://127.0.0.1:9411 "POST /api/v2/spans HTTP/1.1" 202 0                                                                                          
Fatal Python error: Cannot recover from stack overflow.                                                                                                                                                            
                                                                                                                                                                                                                   
Current thread 0x00007f253965a540 (most recent call first):                                                                                                                                                        
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/abc.py", line 184 in __instancecheck__                                                                                                          
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/_collections_abc.py", line 839 in update                                                                                                        
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/structures.py", line 46 in __init__                                                                                      
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/sessions.py", line 69 in merge_setting                                                                                   
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/sessions.py", line 427 in prepare_request                                                                                
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/sessions.py", line 488 in request                                                                                        
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/ext/requests/trace.py", line 80 in wrap_session_request                                                          
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/api.py", line 58 in request                                                                                              
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/api.py", line 112 in post                                                                                                
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/ext/requests/trace.py", line 57 in call                                                                          
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/zipkin_exporter.py", line 115 in emit                                                                  
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/transports/sync.py", line 23 in export                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/zipkin_exporter.py", line 125 in export                                                                
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/tracers/context_tracer.py", line 123 in end_span                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/tracer.py", line 117 in end_span                                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/ext/requests/trace.py", line 86 in wrap_session_request                                                          
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/api.py", line 58 in request                                                                                              
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/api.py", line 112 in post                                                                                                
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/ext/requests/trace.py", line 57 in call                                                                          
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/zipkin_exporter.py", line 115 in emit                                                                  
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/transports/sync.py", line 23 in export                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/zipkin_exporter.py", line 125 in export                                                                
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/tracers/context_tracer.py", line 123 in end_span                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/tracer.py", line 117 in end_span                                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/ext/requests/trace.py", line 86 in wrap_session_request                                                          
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/api.py", line 58 in request                                                                                              
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/requests/api.py", line 112 in post                                                                                                
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/ext/requests/trace.py", line 57 in call                                                                          
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/zipkin_exporter.py", line 115 in emit                                                                  
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/transports/sync.py", line 23 in export                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/zipkin_exporter.py", line 125 in export                                                                
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/tracers/context_tracer.py", line 123 in end_span                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/tracer.py", line 117 in end_span                                                                                 
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/ext/requests/trace.py", line 86 in wrap_session_request     
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/transports/sync.py", line 23 in export
  File "/home/nlamirault/Projects/Atmos/atmosdb/venv/lib/python3.6/site-packages/opencensus/trace/exporters/zipkin_exporter.py", line 125 in export                                                                 
  ...                                                                        

I'm using : opencensus==0.1.5 on Python 3.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions