OpenTelemetry PHP exportateur
Le SDK OpenTelemetry PHP prend en charge les exportateurs spécifiques aux fournisseurs. Les spans créés à l'aide du SDK peuvent être envoyés à un agent Instana. Pour plus d'informations sur les exportateurs et le SDK OpenTelemetry PHP, consultez leur documentation.
Installation de l'exportateur
Pour installer l'exportateur via Composer, exécutez la commande suivante :
composer require open-telemetry/opentelemetry-exporter-instana
Configuration de l'exportateur
Vous pouvez créer et configurer l'exportateur de trois manières :
- Utilisation de l' Instana
SpanFactory - Configuration manuelle de l'instance d'
SpanExporter - Utilisation du registre OpenTelemetry
Pour utiliser l'exportateur, procédez comme suit :
- Installez le package du compositeur dans votre projet.
- Créer une instance de l'
InstanaExporter.
Vous devez fournir les deux variables d'environnement suivantes Instana à l'application pour la fabrique et le registre :
INSTANA_AGENT_HOST
INSTANA_AGENT_PORT
Si les variables d'environnement INSTANA_AGENT_HOST et INSTANA_AGENT_PORT ne sont pas définies, les valeurs par défaut suivantes sont utilisées :
INSTANA_AGENT_HOST=127.0.0.1
INSTANA_AGENT_PORT=42699
$tracerProvider = new TracerProvider(
new SimpleSpanProcessor(
(new \Instana\SpanExporterFactory)->create()
)
);
Pour configurer manuellement SpanExporter, exécutez la commande suivante :
$transport = new InstanaTransport('127.0.0.1:42699');
$exporter = new SpanExporter(
$transport,
new SpanConverter($transport->getUuid(), $transport->getPid())
);
$tracerProvider = new TracerProvider(
new SimpleSpanProcessor($exporter)
);
Pour configurer l'exportateur à l'aide du registre d' OpenTelemetry, utilisez la clé "instana" lorsque vous construisez un exportateur span :
$tracerProvider = new TracerProvider(
new SimpleSpanProcessor(
Registry::spanExporterFactory("instana")->create()
)
);
Exemple d'utilisation de l'exportateur
Une fois le fournisseur de traçage configuré, vous pouvez initialiser un traçage OpenTelemetry PHP et utiliser le SDK comme d'habitude.
$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();
Instrumentation automobile
L'exportateur prend en charge l'auto-instrumentation et vous pouvez le configurer conjointement avec le SDK d' OpenTelemetry. Pour activer l'auto-instrumentation, utilisez les variables d'environnement suivantes ou configurez le fichier php.ini :
OTEL_PHP_AUTOLOAD_ENABLED=true
OTEL_TRACES_EXPORTER=instana
OTEL_PROPAGATORS=instana,baggage
Une fois l'exportateur configuré, les traces exportées vers l'agent d' Instana ation sont intégrées à votre application. Les tracés dépendent des bibliothèques d'instrumentation. Par conséquent, vous devez ajouter les bibliothèques d'instrumentation appropriées requises par votre application.
composer require open-telemetry/opentelemetry-auto-curl
composer require open-telemetry/opentelemetry-auto-wordpress
Définition d'un nom de service personnalisé
Vous pouvez définir un nom de service personnalisé pour votre application en utilisant les variables d'environnement INSTANA_SERVICE_NAME ou OTEL_SERVICE_NAME. Si les deux variables sont présentes, la valeur de INSTANA_SERVICE_NAME a priorité sur OTEL_SERVICE_NAME.
Capture d'en-têtes d' HTTP s personnalisées
Dans l'exportateur PHP Instana, vous pouvez récupérer les en-têtes personnalisés HTTP à la fois dans les requêtes et dans les réponses en utilisant les variables d'environnement. Vous pouvez utiliser les variables d'environnement suivantes pour définir les en-têtes personnalisés de HTTP :
OTEL_PHP_INSTRUMENTATION_HTTP_RESPONSE_HEADERS=content-type,server
OTEL_PHP_INSTRUMENTATION_HTTP_REQUEST_HEADERS=host,accept
Propagation de contexte
L'exportateur Instana PHP prend en charge les types suivants de propagation de contexte pour le traçage distribué :
- W3C Propagation du contexte de trace : activée par défaut.
- Instana Propagation du contexte de trace natif : non activée par défaut. Pour activer la propagation du contexte de trace d' Instana, utilisez le propagateur OpenTelemetry de l' Instana.
Pour plus d'informations, consultez le propagateur OpenTelemetry Instana.