#python #jaeger #open-telemetry
Вопрос:
Я использую Python3.8 с библиотеками opentelemetry, и я могу создать несколько базовых диапазонов. Мне нужно добавить теги для того, чтобы серверный процессор выбирал их. Например, что-то вроде «hostname».
Чтобы это произошло, мне нужно каким-то образом добавить теги в процесс. Я не могу понять, как это сделать.
Моя трассировка выглядит так
"process": {
"serviceName": "xxxxx"
},
"spans": [
{```
I need something like
```{
"process": {
"serviceName": "xxxxx",
"tags": [
{
"key": "jaeger.version",
"vType": "STRING",
"vStr": "Go-2.29.1"
},
{
"key": "hostname",
"vType": "STRING",
"vStr": "xxxxxx"
Вот как я инициализирую свой трассировщик и экспортер
TracerProvider(
resource=Resource.create({SERVICE_NAME: "xxxx","service.instance.id":"1","host.name":"xxxx"})
)
)
trace.set_attribute("hostname","018.zeus.run")
tracer = trace.get_tracer(__name__)
jaeger_exporter = JaegerExporter(
agent_host_name='xxxxx',
agent_port=6831,
collector_endpoint='http://xxxxx:14268/api/traces?format=jaeger.thrift'
)
Может кто-нибудь, пожалуйста, дайте мне знать, как я могу добавить теги в процесс?
Ответ №1:
Я полагаю, что это ошибка с библиотекой-экспортером, которую вы используете. В идеале thrift-exporter должен преобразовать атрибуты ресурса в теги процесса, как указано в спецификации. Вот источник, экземпляр которого Process
создается с помощью ServiceName, и он не отображает остальные атрибуты ресурса в виде тегов, но jaeger-proto-grpc exporter правильно отображает их. Пожалуйста, создайте проблему здесь https://github.com/open-telemetry/opentelemetry-python .