User Tools

Site Tools


tracer_with_tracers-spans-python

Table of Contents

Tracers

Setup

Library:

 pip install tracers-spans-python 

A global variable must be created with the settings for sending tracers, for example:

/monitoring/tracers/tracers.py

    from tracers_spans_python import Tracer

    PROJECT_NAME = 'OPS'


    TRACER = Tracer(
        service_name=PROJECT_NAME,
        host='localhost', 
        port='9411/api/v2/spans',
        )

Tracers must be sent to some host and port with some reciver. By default it is configured to send tracers to zipkin, on port 9411, with the path '/api/v2/spans'.

To create tracers, it must be used as a decorator, first being declared with its settings (if any) as a variable. For example:

    import xxx
    from fastapi import FastAPI

    app = FastAPI()
    tracer = Tracer(
        service_name='example', host='0.0.0.0', 
        path='api/v2/spans',
        port='9411', ip_application='0.0.0.0'
        )
        
 

New tracer

To create a new tracer, call the new_tracer function:

    @app.get("/create_tracer")
    @tracer.new_tracer()
    def example_endpoint():
        return 'hello world'
        

This function collects the function name from the endpoint and uses it as the tracer name. For tracer annotations call the annotate_tracer function, and pass the annotation as a string.

New async tracer

To create a new tracer for an endpoint or asyncrona function, the new_async_tracer function must be called:

    @app.get("/create_tracer")
    @tracer.new_async_tracer()
    async def example_endpoint():
        result = await function()
        return result

New child

Para a cração de um novo tracer deve ser chamado a função new_child:

    @app.get("/create_tracer")
    @tracer.new_child()
    def example_endpoint():
        return 'hello world'

This function collects the function name and uses it as the tracer name. For tracer annotations call the annotate_span function, and pass the annotation as a string.

New async child

To create a new child for an asyncronous function, call the new_async_child function:

    @app.get("/create_tracer")
    @tracer.new_async_child()
    async def example_endpoint():
    result = await function()
        return result

Annotates e tags

The annotations and tags are passed by calling the functions: annotate_tracer, annotate_spans, tags_tracer and tags_child. For annotations the only requirement is that the parameter passed is a string. For tags it is necessary to specify the key and its value, as follows:

  key=value    or     'database'='controler'

Dependecies

aiozipkin

PORTUGUÊS

Tracers

Setup

Biblioteca:

 pip install tracers-spans-python 

Deve-se ser criado uma variavel global com as configurações para o envio dos tracers, por exemplo:

/monitoring/tracers/tracers.py

    from tracers_spans_python import Tracer

    PROJECT_NAME = 'OPS'


    TRACER = Tracer(
        service_name=PROJECT_NAME,
        host='localhost', 
        port='9411/api/v2/spans',
        )

Os tracers devem ser enviados para algum host e porta com algum reciver. Por padrão esta configurado para enviar os tracers para o zipkin, na porta 9411, com o path '/api/v2/spans'.

Para a criação de tracers, deve ser usado como decorator, sendo antes declarado com suas configuraçoes (caso haja) como uma variavel. Por exemplo:

    import xxx
    from fastapi import FastAPI

    app = FastAPI()
    tracer = Tracer(
        service_name='example', host='0.0.0.0', 
        path='api/v2/spans',
        port='9411', ip_application='0.0.0.0'
        )
        
 

New tracer

Para a cração de um novo tracer deve ser chamado a função new_tracer:

    @app.get("/create_tracer")
    @tracer.new_tracer()
    def example_endpoint():
        return 'hello world'
        

Essa função coleta o nome da funcção do endpoint e usa como nome do tracer. Para anotações do tracer chame a função annotate_tracer, e passe a anotação como string.

New async tracer

Para a cração de um novo tracer para um endpoint ou função asyncrona deve ser chamado a função new_async_tracer:

    @app.get("/create_tracer")
    @tracer.new_async_tracer()
    async def example_endpoint():
        result = await function()
        return result

New child

Para a cração de um novo tracer deve ser chamado a função new_child:

    @app.get("/create_tracer")
    @tracer.new_child()
    def example_endpoint():
        return 'hello world'

Essa função coleta o nome da função e usa como nome do tracer. Para anotações do tracer chame a função annotate_span, e passe a anotação como string.

New async child

Para a cração de uma nova child para uma função asyncrona deve ser chamado a função new_async_child:

    @app.get("/create_tracer")
    @tracer.new_async_child()
    async def example_endpoint():
    result = await function()
        return result

Annotates e tags

As anotações e tags são passadas chamando as funções: annotate_tracer, annotate_spans ,tags_tracer e tags_child. Para anotaçoes a unica exigência é que o parametro passado seja uma string. Para tags é necessário especificar a key e seu valor, da seguinte forma:

  key=value    or     'database'='controler'

Dependecies

aiozipkin

tracer_with_tracers-spans-python.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1