Hi group, good day, how are you?
I have a question about using community.general.opentelemetry to send data to APM.
I have set my ansible.cfg like this.
[defaults]
callbacks_enabled = community.general.opentelemetry
[callback_opentelemetry]
enable_from_environment = ANSIBLE_OPENTELEMETRY_ENABLED
And then environment variables like this.
OTEL_EXPORTER_OTLP_ENDPOINT=http://elk-server:8200
OTEL_EXPORTER_OTLP_HEADERS=“authorization=Bearer xxxxxx”
OTEL_SERVICE_NAME=ansible
I have also installed the telemetry python packages
pip list | grep opentele
opentelemetry-api 1.13.0
opentelemetry-exporter-otlp 1.13.0
opentelemetry-exporter-otlp-proto-grpc 1.13.0
opentelemetry-exporter-otlp-proto-http 1.13.0
opentelemetry-instrumentation 0.34b0
opentelemetry-proto 1.13.0
opentelemetry-sdk 1.13.0
opentelemetry-semantic-conventions 0.34b0
But still getting this error, does anyone have some ideas?
Appreciate it
[WARNING]: Skipping callback ‘community.general.opentelemetry’, unable to load due to: The opentelemetry-api
,
opentelemetry-exporter-otlp
or opentelemetry-sdk
must be installed to use this plugin
dnmvisser
(Dick Visser)
October 28, 2022, 3:19pm
2
What does ‘ansible --version’ say?
And ‘pip --version’
Hi man, thanks for the time.
Please see the information as requested
ansible --version
ansible [core 2.13.2]
pip --version
pip 22.3 from /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages/pip (python 3.9)
python --version
Python 3.9.13
dnmvisser
(Dick Visser)
October 29, 2022, 3:49pm
4
Hi man, thanks for the time.
Please see the information as requested
ansible --version
ansible [core 2.13.2]
This is not the entire output. It should like this like this:
ansible [core 2.11.7]
config file = /Users/dick.visser/git/github.com/dnmvisser/tienhuis_ansible/ansible.cfg
configured module search path = [‘/Users/dick.visser/.ansible/plugins/modules’, ‘/usr/share/ansible/plugins/modules’]
ansible python module location = /Users/dick.visser/git/github.com/dnmvisser/tienhuis_ansible/venv/lib/python3.9/site-packages/ansible
ansible collection location = /Users/dick.visser/.ansible/collections:/usr/share/ansible/collections
executable location = /Users/dick.visser/git/github.com/dnmvisser/tienhuis_ansible/venv/bin/ansible
python version = 3.9.9 (main, Jan 25 2022, 23:02:06) [Clang 13.0.0 (clang-1300.0.29.30)]
jinja version = 3.0.3
libyaml = True
Hi man.
This is the entire output
ansible --version
ansible [core 2.13.2]
config file = None
configured module search path = [‘/home/daniel/.ansible/plugins/modules’, ‘/usr/share/ansible/plugins/modules’]
ansible python module location = /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages/ansible
ansible collection location = /home/daniel/.ansible/collections:/usr/share/ansible/collections
executable location = /home/daniel/py_venvs/ansible_2.13/bin/ansible
python version = 3.9.13 (main, May 23 2022, 22:02:02) [GCC 7.5.0]
jinja version = 3.1.2
libyaml = True
dnmvisser
(Dick Visser)
November 7, 2022, 5:52pm
6
That seems right.
I don’t know what it could be then.
sivel
(sivel)
November 7, 2022, 5:55pm
7
Maybe also take a look at pip list -v
to see the paths of where those python libraries are installed. And make sure they are in /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages/
Yes, it’s strange.
They are installed in that path
pip list -v | grep opent
opentelemetry-api 1.13.0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
opentelemetry-exporter-otlp 1.13.0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
opentelemetry-exporter-otlp-proto-grpc 1.13.0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
opentelemetry-exporter-otlp-proto-http 1.13.0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
opentelemetry-instrumentation 0.34b0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
opentelemetry-proto 1.13.0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
opentelemetry-sdk 1.13.0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
opentelemetry-semantic-conventions 0.34b0 /home/daniel/py_venvs/ansible_2.13/lib/python3.9/site-packages pip
But I was able to make it work using a container on AWX. I’ll try to reinstall my venv and packages to work locally.
Thanks for your tips!!
Hi,
unfortunately you did not mention which version of community.general
you are using. For opentelemetry-api 1.13.0 you need community.general
5.8.0, since that contains a bugfix which allows the opentelemetry
callback to work with that version. (It removed some helper function
that the plugin was using, see
https://github.com/ansible-collections/community.general/blob/stable-5/CHANGELOG.rst#bugfixes. )
Cheers,
Felix
Hi Felix.
You are completely right.
I’ve tried with the community.general:5.7.0 and it didn’t work out.
After changing to version 6.0.0 it started to work perfectly.
Thank you all for sharing your knowledge.
Br,