Amostra de instrumentação Python,amostra de instrumentação Python

Este documento descreve como modificar um aplicativo Python para coletar dados de rastreamento e métricas usando a estrutura OpenTelemetry de código aberto e como gravar logs JSON estruturados para padronização. Este documento também fornece informações sobre um exemplo de aplicativo Python que você pode instalar e executar. O aplicativo usa a estrutura da web Flask e está configurado para gerar métricas, rastreamentos e logs.

Para saber mais sobre instrumentação, consulte os seguintes documentos:

Sobre instrumentação manual e de código zero

Para esta linguagem, OpenTelemetry define instrumentação de código zero como a prática de coletar telemetria de bibliotecas e estruturas sem fazer alterações no código. No entanto, você precisa instalar módulos e definir variáveis ​​de ambiente.

Este documento não descreve a instrumentação de código zero. Para obter informações sobre esse tópico, consulte Instrumentação de código zero do Python .

Para obter informações gerais, consulte Instrumentação OpenTelemetry para Python .

Antes de começar

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

Enable the APIs

Instrumente seu aplicativo para coletar rastreamentos, métricas e logs

Para instrumentar seu aplicativo para coletar dados de rastreamento e métricas e escrever JSON estruturado para padronização, execute as etapas a seguir, conforme descrito nas seções subsequentes deste documento:

  1. Configurar OpenTelemetria
  2. Configurar o registro estruturado

Configurar OpenTelemetria

Este aplicativo de exemplo está configurado para usar o OpenTelemetry Python SDK para exportar rastreamentos e métricas usando o protocolo OTLP . Por padrão, o OpenTelemetry Python SDK usa o formato W3C Trace Context para propagar trace context , o que garante que os spans tenham o relacionamento pai-filho correto dentro de um trace.

O exemplo de código a seguir ilustra um módulo Python para configurar o OpenTelemetry. Para visualizar o exemplo completo, clique em Mais e selecione Exibir no GitHub .

def setup_opentelemetry() -> None:
    resource = Resource.create(
        attributes={
            # Use the PID as the service.instance.id to avoid duplicate timeseries
            # from different Gunicorn worker processes.
            SERVICE_INSTANCE_ID: f"worker-{os.getpid()}",
        }
    )

    # Set up OpenTelemetry Python SDK
    tracer_provider = TracerProvider(resource=resource)
    tracer_provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
    trace.set_tracer_provider(tracer_provider)

    logger_provider = LoggerProvider(resource=resource)
    logger_provider.add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter()))
    logs.set_logger_provider(logger_provider)

    event_logger_provider = EventLoggerProvider(logger_provider)
    events.set_event_logger_provider(event_logger_provider)

    reader = PeriodicExportingMetricReader(OTLPMetricExporter())
    meter_provider = MeterProvider(metric_readers=[reader], resource=resource)
    metrics.set_meter_provider(meter_provider)

O aplicativo Flask depende do Gunicorn para atender solicitações HTTP seguindo as recomendações do guia Deploying to Production do Flask. Gunicorn inicia várias cópias do seu aplicativo em execução em processos de trabalho independentes para aumentar o rendimento. Para garantir que as métricas dos processos de trabalho não entrem em conflito entre si, recomendamos que cada processo de trabalho defina um valor exclusivo para o atributo de recurso service.instance.id . Uma maneira de fazer isso é incluir o ID do processo em service.instance.id . Para obter mais informações, consulte Colisões de séries temporais .

Para obter mais informações e opções de configuração, consulte Instrumentação OpenTelemetry Python .

Configurar o registro estruturado

Para gravar logs estruturados vinculados a rastreamentos, configure seu aplicativo para gerar logs no formato JSON para padronizar com chaves que contêm informações de rastreamento. O exemplo de código a seguir ilustra como configurar a biblioteca logging padrão para gerar logs estruturados JSON usando a biblioteca python-json-logger e como usar o pacote opentelemetry-instrumentation-logging para incluir informações de rastreamento.

class JsonFormatter(jsonlogger.JsonFormatter):
    def formatTime(self, record: logging.LogRecord, datefmt: Optional[str] = None):
        # Format the timestamp as RFC 3339 with microsecond precision
        isoformat = datetime.fromtimestamp(record.created).isoformat()
        return f"{isoformat}Z"


def setup_structured_logging() -> None:
    LoggingInstrumentor().instrument()

    log_handler = logging.StreamHandler()
    formatter = JsonFormatter(
        "%(asctime)s %(levelname)s %(message)s %(otelTraceID)s %(otelSpanID)s %(otelTraceSampled)s",
        rename_fields={
            "levelname": "severity",
            "asctime": "timestamp",
            "otelTraceID": "logging.googleapis.com/trace",
            "otelSpanID": "logging.googleapis.com/spanId",
            "otelTraceSampled": "logging.googleapis.com/trace_sampled",
        },
    )
    log_handler.setFormatter(formatter)
    logging.basicConfig(
        level=logging.INFO,
        handlers=[log_handler],
    )

A configuração anterior extrai informações sobre o intervalo ativo da mensagem de log e, em seguida, adiciona essas informações como atributos ao log estruturado JSON. Esses atributos podem então ser usados ​​para correlacionar um log com um rastreamento:

  • logging.googleapis.com/trace : nome do recurso do rastreamento associado à entrada de registro.
  • logging.googleapis.com/spanId : o ID do intervalo com o rastreamento associado à entrada de registro.
  • logging.googleapis.com/trace_sampled : o valor deste campo deve ser true ou false .

Para obter mais informações sobre esses campos, consulte a estrutura LogEntry .

Execute um aplicativo de exemplo configurado para coletar telemetria

O aplicativo de exemplo usa formatos neutros de fornecedor, incluindo JSON para logs e OTLP para métricas e rastreamentos. A telemetria do aplicativo é roteada para Google Cloud usando o OpenTelemetry Collector configurado com exportadores do Google. Ele usa Flask para atender solicitações HTTP e a biblioteca de solicitações para fazer solicitações HTTP. Para gerar métricas e rastreamentos para o cliente e servidor HTTP, o aplicativo de exemplo instala as bibliotecas de instrumentação opentelemetry-instrumentation-flask e opentelemetry-instrumentation-requests :

logger = logging.getLogger(__name__)

# Initialize OpenTelemetry Python SDK and structured logging
setup_opentelemetry()
setup_structured_logging()

app = Flask(__name__)

# Add instrumentation
FlaskInstrumentor().instrument_app(app)
RequestsInstrumentor().instrument()

O aplicativo tem dois endpoints:

  • O endpoint /multi é tratado pela multi função. O gerador de carga no aplicativo emite solicitações para o terminal /multi . Quando esse endpoint recebe uma solicitação, ele envia entre três e sete solicitações para o endpoint /single no servidor local.

    @app.route("/multi")
    def multi():
        """Handle an http request by making 3-7 http requests to the /single endpoint."""
        sub_requests = randint(3, 7)
        logger.info("handle /multi request", extra={"subRequests": sub_requests})
        for _ in range(sub_requests):
            requests.get(url_for("single", _external=True))
        return "ok"
    
    
  • O endpoint /single é tratado pela função single . Quando esse endpoint recebe uma solicitação, ele fica suspenso por um pequeno atraso e depois responde com uma string.

    @app.route("/single")
    def single():
        """Handle an http request by sleeping for 100-200 ms, and write the number of seconds slept as the response."""
        duration = uniform(0.1, 0.2)
        logger.info("handle /single request", extra={"duration": duration})
        time.sleep(duration)
        return f"slept {duration} seconds"
    
    

Baixe e implante o aplicativo

Para executar a amostra, faça o seguinte:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Clone o repositório:

    git clone https://github.com/GoogleCloudPlatform/opentelemetry-operations-python
    
  3. Vá para o diretório de amostra:

    cd opentelemetry-operations-python/samples/instrumentation-quickstart
    
  4. Crie e execute o exemplo:

    docker compose up --abort-on-container-exit
    

    Se você não estiver executando no Cloud Shell, execute o aplicativo com a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS apontando para um arquivo de credenciais. Application Default Credentials fornece um arquivo de credenciais em $HOME/.config/gcloud/application_default_credentials.json .

    # Set environment variables
    export GOOGLE_CLOUD_PROJECT="PROJECT_ID"
    export GOOGLE_APPLICATION_CREDENTIALS="$HOME/.config/gcloud/application_default_credentials.json"
    export USERID="$(id -u)"
    
    # Run
    docker compose -f docker-compose.yaml -f docker-compose.creds.yaml up --abort-on-container-exit
    

Veja suas métricas

A instrumentação OpenTelemetry no aplicativo de amostra gera métricas do Prometheus que você pode visualizar usando o Metrics Explorer :

  • Prometheus/http_server_duration_milliseconds/histogram registra a duração das solicitações do servidor e armazena os resultados em um histograma.

  • Prometheus/http_client_duration_milliseconds/histogram registra a duração das solicitações do cliente e armazena os resultados em um histograma.

Para visualizar as métricas geradas pelo aplicativo de exemplo, faça o seguinte:
  1. No Google Cloud console, acesse a página do explorador de métricas :

    Vá para o explorador de métricas

    Se você usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitoramento .

  2. Na barra de ferramentas do Google Cloud console, selecione seu Google Cloud projeto. Para configurações do App Hub , selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta habilitada para aplicativo.
  3. No elemento Métrica , expanda o menu Selecionar uma métrica , insira http_server na barra de filtros e use os submenus para selecionar um tipo de recurso e uma métrica específicos:
    1. No menu Recursos ativos , selecione Prometheus Target .
    2. No menu Categorias de métricas ativas , selecione Http .
    3. No menu Métricas ativas , selecione uma métrica.
    4. Clique em Aplicar .
  4. Configure como os dados são visualizados.

    Quando as medidas de uma métrica são cumulativas, o Metrics Explorer normaliza automaticamente os dados medidos pelo período de alinhamento, o que resulta na exibição de uma taxa no gráfico. Para obter mais informações, consulte Tipos, tipos e conversões .

    Quando valores inteiros ou duplos são medidos, como com as duas métricas counter , o Metrics Explorer soma automaticamente todas as séries temporais. Para visualizar os dados das rotas HTTP /multi e /single , defina o primeiro menu da entrada Aggregation como None .

    Para obter mais informações sobre como configurar um gráfico, consulte Selecionar métricas ao usar o Metrics Explorer.

Ver seus rastros

Pode levar alguns minutos até que seus dados de rastreamento estejam disponíveis. Por exemplo, quando dados de rastreamento são recebidos pelo seu projeto, o Google Cloud Observability pode precisar criar um banco de dados para armazenar esses dados. A criação do banco de dados pode levar alguns minutos e, durante esse período, nenhum dado de rastreamento estará disponível para visualização.

Para visualizar seus dados de rastreamento, faça o seguinte:

  1. No Google Cloud console, acesse a página do Trace Explorer :

    Vá para o Explorador de rastreamento

    Você também pode encontrar esta página usando a barra de pesquisa.

  2. Na seção de tabela da página, selecione uma linha com o nome do intervalo /multi .
  3. No gráfico de Gantt no painel Detalhes do rastreamento , selecione o intervalo rotulado como /multi .

    Um painel é aberto exibindo informações sobre a solicitação HTTP. Esses detalhes incluem o método, o código de status, o número de bytes e o agente do usuário do chamador.

  4. Para visualizar os logs associados a esse rastreamento, selecione a guia Logs e Eventos .

    A guia mostra logs individuais. Para visualizar os detalhes da entrada de log, expanda a entrada de log. Você também pode clicar em Visualizar logs e visualizar o log usando o Logs Explorer.

Para obter mais informações sobre como usar o Cloud Trace Explorer, consulte Encontrar e explorar traces .

Ver seus registros

No Logs Explorer, você pode inspecionar seus logs e também visualizar rastreamentos associados, quando eles existirem.

  1. No Google Cloud console, acesse a página Explorador de registros :

    Acesse o Explorador de registros

    Se você usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Logging .

  2. Localize um log com a descrição de handle /multi request .

    Para visualizar os detalhes do log, expanda a entrada do log.

  3. Clique Rastreia uma entrada de log com a mensagem "lidar com /multi solicitação" e selecione Exibir detalhes do rastreamento .

    Um painel de detalhes do rastreamento é aberto e exibe o rastreamento selecionado.

    Seus dados de log podem estar disponíveis vários minutos antes de seus dados de rastreio estarem disponíveis. Se você encontrar um erro ao visualizar dados de rastreio ao procurar um rastreio por ID ou ao seguir as etapas desta tarefa, aguarde um ou dois minutos e tente a ação novamente.

Para obter mais informações sobre como usar o Logs Explorer, consulte Visualizar logs usando o Logs Explorer .

O que vem a seguir

,

Este documento descreve como modificar um aplicativo Python para coletar dados de rastreamento e métricas usando a estrutura OpenTelemetry de código aberto e como gravar logs JSON estruturados para padronização. Este documento também fornece informações sobre um exemplo de aplicativo Python que você pode instalar e executar. O aplicativo usa a estrutura da web Flask e está configurado para gerar métricas, rastreamentos e logs.

Para saber mais sobre instrumentação, consulte os seguintes documentos:

Sobre instrumentação manual e de código zero

Para esta linguagem, OpenTelemetry define instrumentação de código zero como a prática de coletar telemetria de bibliotecas e estruturas sem fazer alterações no código. No entanto, você precisa instalar módulos e definir variáveis ​​de ambiente.

Este documento não descreve a instrumentação de código zero. Para obter informações sobre esse tópico, consulte Instrumentação de código zero do Python .

Para obter informações gerais, consulte Instrumentação OpenTelemetry para Python .

Antes de começar

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

Enable the APIs

Instrumente seu aplicativo para coletar rastreamentos, métricas e logs

Para instrumentar seu aplicativo para coletar dados de rastreamento e métricas e escrever JSON estruturado para padronização, execute as etapas a seguir, conforme descrito nas seções subsequentes deste documento:

  1. Configurar OpenTelemetria
  2. Configurar o registro estruturado

Configurar OpenTelemetria

Este aplicativo de exemplo está configurado para usar o OpenTelemetry Python SDK para exportar rastreamentos e métricas usando o protocolo OTLP . Por padrão, o OpenTelemetry Python SDK usa o formato W3C Trace Context para propagar trace context , o que garante que os spans tenham o relacionamento pai-filho correto dentro de um trace.

O exemplo de código a seguir ilustra um módulo Python para configurar o OpenTelemetry. Para visualizar o exemplo completo, clique em Mais e selecione Exibir no GitHub .

def setup_opentelemetry() -> None:
    resource = Resource.create(
        attributes={
            # Use the PID as the service.instance.id to avoid duplicate timeseries
            # from different Gunicorn worker processes.
            SERVICE_INSTANCE_ID: f"worker-{os.getpid()}",
        }
    )

    # Set up OpenTelemetry Python SDK
    tracer_provider = TracerProvider(resource=resource)
    tracer_provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
    trace.set_tracer_provider(tracer_provider)

    logger_provider = LoggerProvider(resource=resource)
    logger_provider.add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter()))
    logs.set_logger_provider(logger_provider)

    event_logger_provider = EventLoggerProvider(logger_provider)
    events.set_event_logger_provider(event_logger_provider)

    reader = PeriodicExportingMetricReader(OTLPMetricExporter())
    meter_provider = MeterProvider(metric_readers=[reader], resource=resource)
    metrics.set_meter_provider(meter_provider)

O aplicativo Flask depende do Gunicorn para atender solicitações HTTP seguindo as recomendações do guia Deploying to Production do Flask. Gunicorn inicia várias cópias do seu aplicativo em execução em processos de trabalho independentes para aumentar o rendimento. Para garantir que as métricas dos processos de trabalho não entrem em conflito entre si, recomendamos que cada processo de trabalho defina um valor exclusivo para o atributo de recurso service.instance.id . Uma maneira de fazer isso é incluir o ID do processo em service.instance.id . Para obter mais informações, consulte Colisões de séries temporais .

Para obter mais informações e opções de configuração, consulte Instrumentação OpenTelemetry Python .

Configurar o registro estruturado

Para gravar logs estruturados vinculados a rastreamentos, configure seu aplicativo para gerar logs no formato JSON para padronizar com chaves que contêm informações de rastreamento. O exemplo de código a seguir ilustra como configurar a biblioteca logging padrão para gerar logs estruturados JSON usando a biblioteca python-json-logger e como usar o pacote opentelemetry-instrumentation-logging para incluir informações de rastreamento.

class JsonFormatter(jsonlogger.JsonFormatter):
    def formatTime(self, record: logging.LogRecord, datefmt: Optional[str] = None):
        # Format the timestamp as RFC 3339 with microsecond precision
        isoformat = datetime.fromtimestamp(record.created).isoformat()
        return f"{isoformat}Z"


def setup_structured_logging() -> None:
    LoggingInstrumentor().instrument()

    log_handler = logging.StreamHandler()
    formatter = JsonFormatter(
        "%(asctime)s %(levelname)s %(message)s %(otelTraceID)s %(otelSpanID)s %(otelTraceSampled)s",
        rename_fields={
            "levelname": "severity",
            "asctime": "timestamp",
            "otelTraceID": "logging.googleapis.com/trace",
            "otelSpanID": "logging.googleapis.com/spanId",
            "otelTraceSampled": "logging.googleapis.com/trace_sampled",
        },
    )
    log_handler.setFormatter(formatter)
    logging.basicConfig(
        level=logging.INFO,
        handlers=[log_handler],
    )

A configuração anterior extrai informações sobre o intervalo ativo da mensagem de log e, em seguida, adiciona essas informações como atributos ao log estruturado JSON. Esses atributos podem então ser usados ​​para correlacionar um log com um rastreamento:

  • logging.googleapis.com/trace : nome do recurso do rastreamento associado à entrada de registro.
  • logging.googleapis.com/spanId : o ID do intervalo com o rastreamento associado à entrada de registro.
  • logging.googleapis.com/trace_sampled : o valor deste campo deve ser true ou false .

Para obter mais informações sobre esses campos, consulte a estrutura LogEntry .

Execute um aplicativo de exemplo configurado para coletar telemetria

O aplicativo de exemplo usa formatos neutros de fornecedor, incluindo JSON para logs e OTLP para métricas e rastreamentos. A telemetria do aplicativo é roteada para Google Cloud usando o OpenTelemetry Collector configurado com exportadores do Google. Ele usa Flask para atender solicitações HTTP e a biblioteca de solicitações para fazer solicitações HTTP. Para gerar métricas e rastreamentos para o cliente e servidor HTTP, o aplicativo de exemplo instala as bibliotecas de instrumentação opentelemetry-instrumentation-flask e opentelemetry-instrumentation-requests :

logger = logging.getLogger(__name__)

# Initialize OpenTelemetry Python SDK and structured logging
setup_opentelemetry()
setup_structured_logging()

app = Flask(__name__)

# Add instrumentation
FlaskInstrumentor().instrument_app(app)
RequestsInstrumentor().instrument()

O aplicativo tem dois endpoints:

  • O endpoint /multi é tratado pela multi função. O gerador de carga no aplicativo emite solicitações para o terminal /multi . Quando esse endpoint recebe uma solicitação, ele envia entre três e sete solicitações para o endpoint /single no servidor local.

    @app.route("/multi")
    def multi():
        """Handle an http request by making 3-7 http requests to the /single endpoint."""
        sub_requests = randint(3, 7)
        logger.info("handle /multi request", extra={"subRequests": sub_requests})
        for _ in range(sub_requests):
            requests.get(url_for("single", _external=True))
        return "ok"
    
    
  • O endpoint /single é tratado pela função single . Quando esse endpoint recebe uma solicitação, ele fica suspenso por um pequeno atraso e depois responde com uma string.

    @app.route("/single")
    def single():
        """Handle an http request by sleeping for 100-200 ms, and write the number of seconds slept as the response."""
        duration = uniform(0.1, 0.2)
        logger.info("handle /single request", extra={"duration": duration})
        time.sleep(duration)
        return f"slept {duration} seconds"
    
    

Baixe e implante o aplicativo

Para executar a amostra, faça o seguinte:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Clone o repositório:

    git clone https://github.com/GoogleCloudPlatform/opentelemetry-operations-python
    
  3. Vá para o diretório de amostra:

    cd opentelemetry-operations-python/samples/instrumentation-quickstart
    
  4. Crie e execute o exemplo:

    docker compose up --abort-on-container-exit
    

    Se você não estiver executando no Cloud Shell, execute o aplicativo com a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS apontando para um arquivo de credenciais. Application Default Credentials fornece um arquivo de credenciais em $HOME/.config/gcloud/application_default_credentials.json .

    # Set environment variables
    export GOOGLE_CLOUD_PROJECT="PROJECT_ID"
    export GOOGLE_APPLICATION_CREDENTIALS="$HOME/.config/gcloud/application_default_credentials.json"
    export USERID="$(id -u)"
    
    # Run
    docker compose -f docker-compose.yaml -f docker-compose.creds.yaml up --abort-on-container-exit
    

Veja suas métricas

A instrumentação OpenTelemetry no aplicativo de amostra gera métricas do Prometheus que você pode visualizar usando o Metrics Explorer :

  • Prometheus/http_server_duration_milliseconds/histogram registra a duração das solicitações do servidor e armazena os resultados em um histograma.

  • Prometheus/http_client_duration_milliseconds/histogram registra a duração das solicitações do cliente e armazena os resultados em um histograma.

Para visualizar as métricas geradas pelo aplicativo de exemplo, faça o seguinte:
  1. No Google Cloud console, acesse a página do explorador de métricas :

    Vá para o explorador de métricas

    Se você usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitoramento .

  2. Na barra de ferramentas do Google Cloud console, selecione seu Google Cloud projeto. Para configurações do App Hub , selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta habilitada para aplicativo.
  3. No elemento Métrica , expanda o menu Selecionar uma métrica , insira http_server na barra de filtros e use os submenus para selecionar um tipo de recurso e uma métrica específicos:
    1. No menu Recursos ativos , selecione Prometheus Target .
    2. No menu Categorias de métricas ativas , selecione Http .
    3. No menu Métricas ativas , selecione uma métrica.
    4. Clique em Aplicar .
  4. Configure como os dados são visualizados.

    Quando as medidas de uma métrica são cumulativas, o Metrics Explorer normaliza automaticamente os dados medidos pelo período de alinhamento, o que resulta na exibição de uma taxa no gráfico. Para obter mais informações, consulte Tipos, tipos e conversões .

    Quando valores inteiros ou duplos são medidos, como com as duas métricas counter , o Metrics Explorer soma automaticamente todas as séries temporais. Para visualizar os dados das rotas HTTP /multi e /single , defina o primeiro menu da entrada Aggregation como None .

    Para obter mais informações sobre como configurar um gráfico, consulte Selecionar métricas ao usar o Metrics Explorer.

Ver seus rastros

Pode levar alguns minutos até que seus dados de rastreamento estejam disponíveis. Por exemplo, quando dados de rastreamento são recebidos pelo seu projeto, o Google Cloud Observability pode precisar criar um banco de dados para armazenar esses dados. A criação do banco de dados pode levar alguns minutos e, durante esse período, nenhum dado de rastreamento estará disponível para visualização.

Para visualizar seus dados de rastreamento, faça o seguinte:

  1. No Google Cloud console, acesse a página do Trace Explorer :

    Vá para o Explorador de rastreamento

    Você também pode encontrar esta página usando a barra de pesquisa.

  2. Na seção de tabela da página, selecione uma linha com o nome do intervalo /multi .
  3. No gráfico de Gantt no painel Detalhes do rastreamento , selecione o intervalo rotulado como /multi .

    Um painel é aberto exibindo informações sobre a solicitação HTTP. Esses detalhes incluem o método, o código de status, o número de bytes e o agente do usuário do chamador.

  4. Para visualizar os logs associados a esse rastreamento, selecione a guia Logs e Eventos .

    A guia mostra logs individuais. Para visualizar os detalhes da entrada de log, expanda a entrada de log. Você também pode clicar em Visualizar logs e visualizar o log usando o Logs Explorer.

Para obter mais informações sobre como usar o Cloud Trace Explorer, consulte Encontrar e explorar traces .

Ver seus registros

No Logs Explorer, você pode inspecionar seus logs e também visualizar rastreamentos associados, quando eles existirem.

  1. No Google Cloud console, acesse a página Explorador de registros :

    Acesse o Explorador de registros

    Se você usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Logging .

  2. Localize um log com a descrição de handle /multi request .

    Para visualizar os detalhes do log, expanda a entrada do log.

  3. Clique Rastreia uma entrada de log com a mensagem "lidar com /multi solicitação" e selecione Exibir detalhes do rastreamento .

    Um painel de detalhes do rastreamento é aberto e exibe o rastreamento selecionado.

    Seus dados de log podem estar disponíveis vários minutos antes de seus dados de rastreio estarem disponíveis. Se você encontrar um erro ao visualizar dados de rastreio ao procurar um rastreio por ID ou ao seguir as etapas desta tarefa, aguarde um ou dois minutos e tente a ação novamente.

Para obter mais informações sobre como usar o Logs Explorer, consulte Visualizar logs usando o Logs Explorer .

O que vem a seguir