OpenTelemetry PHP exportador

O SDK do OpenTelemetry PHP é compatível com exportadores específicos de fornecedores. Os spans criados com o SDK podem ser enviados a um agente do Instana. Para obter mais informações sobre exportadores e o SDK do OpenTelemetry PHP, consulte a documentação correspondente.

Observação: O exportador OpenTelemetry PHP é compatível apenas com os sistemas operacionais Linux.

Instalação do exportador

Para instalar o exportador por meio do Composer, execute o seguinte comando:

composer require open-telemetry/opentelemetry-exporter-instana

Configuração do exportador

Você pode criar e configurar o exportador de três maneiras:

  • Como usar o Instana SpanFactory
  • Configuração manual da instância SpanExporter
  • Usando o registro OpenTelemetry

Para usar o exportador, conclua as etapas a seguir:

  1. Instale o pacote do composer em seu projeto.
  2. Crie uma instância do site InstanaExporter.

Você deve definir as duas variáveis de ambiente Instana a seguir na aplicação para a fábrica e o registro:

INSTANA_AGENT_HOST
INSTANA_AGENT_PORT 

Se as variáveis de ambiente INSTANA_AGENT_HOST e INSTANA_AGENT_PORT não estiverem definidas, serão usados os seguintes valores padrão:

INSTANA_AGENT_HOST=127.0.0.1
INSTANA_AGENT_PORT=42699
$tracerProvider = new TracerProvider(
    new SimpleSpanProcessor(
        (new \Instana\SpanExporterFactory)->create()
    )
);

Para configurar manualmente o site SpanExporter, execute o seguinte comando:

$transport = new InstanaTransport('127.0.0.1:42699');
$exporter =  new SpanExporter(
        $transport, 
        new SpanConverter($transport->getUuid(), $transport->getPid())
);
$tracerProvider = new TracerProvider(
    new SimpleSpanProcessor($exporter)
);

Para configurar o exportador usando o registro OpenTelemetry, use a chave "instana" ao criar um exportador de extensão:

$tracerProvider = new TracerProvider(
    new SimpleSpanProcessor(
        Registry::spanExporterFactory("instana")->create()
    )
);

Exemplo de uso do exportador

Depois que o provedor de rastreamento estiver configurado, você poderá inicializar um rastreador OpenTelemetry PHP e usar o SDK normalmente.

$tracer = $tracerProvider->getTracer('io.instana.opentelemetry.php');

$span = $tracer->spanBuilder('root')->startSpan();
$span->setAttribute('remote_ip', '1.2.3.4')
    ->setAttribute('country', 'CAN');
$span->addEvent('generated_session', [
    'id' => md5((string) microtime(true)),
]);
$span->end();

$tracerProvider->shutdown();

Instrumentação automotiva

O exportador é compatível com a instrumentação automática e você pode configurar o exportador em conjunto com o SDK do OpenTelemetry. Para ativar a instrumentação automática, use as seguintes variáveis de ambiente ou configure o arquivo php.ini :

OTEL_PHP_AUTOLOAD_ENABLED=true
OTEL_TRACES_EXPORTER=instana
OTEL_PROPAGATORS=instana,baggage

Depois de configurar o exportador, os rastreamentos exportados para o agente do Instana são instalados em sua aplicação. Os rastros dependem das bibliotecas de instrumentação. Portanto, você deve adicionar as bibliotecas de instrumentação apropriadas que seu aplicativo requer.

composer require open-telemetry/opentelemetry-auto-curl
composer require open-telemetry/opentelemetry-auto-wordpress

Configurando um nome de serviço customizado

Você pode definir um nome de serviço personalizado para seu aplicativo usando as variáveis de ambiente INSTANA_SERVICE_NAME ou OTEL_SERVICE_NAME. Se ambas as variáveis estiverem presentes, o valor de INSTANA_SERVICE_NAME terá precedência sobre OTEL_SERVICE_NAME.

Capturando cabeçalhos personalizados do site HTTP

No exportador PHP Instana, é possível capturar os cabeçalhos personalizados HTTP tanto das solicitações quanto das respostas utilizando as variáveis de ambiente. Você pode usar as seguintes variáveis de ambiente para especificar os cabeçalhos personalizados do ` HTTP `:

OTEL_PHP_INSTRUMENTATION_HTTP_RESPONSE_HEADERS=content-type,server
OTEL_PHP_INSTRUMENTATION_HTTP_REQUEST_HEADERS=host,accept

Propagação de Contexto

O exportador Instana PHP suporta os seguintes tipos de propagação de contexto para rastreamento distribuído:

  • W3C Propagação do contexto de rastreamento: ativada por padrão.
  • Instana Propagação do contexto de rastreamento nativo: Não ativada por padrão. Para habilitar a propagação do contexto de rastreamento d Instana, use o propagador OpenTelemetry do Instana.

Consulte o propagador OpenTelemetry Instana para obter mais detalhes.