# Test your Python Apps with Geneos' Open Telemetry Plugin

**URL:** <https://community.itrsgroup.com/t/test-your-python-apps-with-geneos-open-telemetry-plugin/263>\
**Category:** Integrations\
**Tags:** python\
**Created:** [17 January 2024 21:24 UTC](https://community.itrsgroup.com/t/test-your-python-apps-with-geneos-open-telemetry-plugin/263 "2024-01-17T21:24:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Steve\_Lapp](https://dub1.discourse-cdn.com/flex013/user_avatar/community.itrsgroup.com/steve_lapp/32/18_2.png) [@Steve\_Lapp](https://community.itrsgroup.com/u/Steve_Lapp)\
**Post date:** [17 January 2024 21:24 UTC](https://community.itrsgroup.com/t/test-your-python-apps-with-geneos-open-telemetry-plugin/263/1 "2024-01-17T21:24:20Z")

</div>

When you don’t want to get locked into a specific vendor for your APM instrumentation OpenTelemetry is the way to go. It is the closest thing out there to vendor neutral.

Before anyone dives into OpenTelemetry instrumentation you might want to test out a simple integration. Follow these steps to test out a python.

This example is a great place to start because it sends over logs. If you can get this working, metrics and traces should follow behind easily.

- Download this file or clone this repo to your local machine.  
[Otel Python Example](https://github.com/open-telemetry/opentelemetry-python/blob/main/docs/examples/logs/example.py)

- Start up a python virtual environment

```auto
python3 -m venv

```

- Download all the required packages

```auto
pip install opentelemetry-distro opentelemetry-exporter-otlp

opentelemetry-bootstrap -a install

```

- Set the new Otel Endpoint to your Netprobe. In my case below I was just running it on my local machine. Be sure to replace `localhost` with your endpoint. Remember if you are running in Kubernetes, be sure to expose your service outside the cluster!

```auto
export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=localhost:4317

```

- Run the Application

```auto
python example.py

```

This App should run at this point and send Logs to Geneos. If you do not have a mapping set up it will first appear in the InvalidStreams dataview.

 ![image](https://europe1.discourse-cdn.com/flex013/uploads/itrsgroup/original/1X/7f549fcf9b52eb7bd0e46fea6ec2462494d67f5b.png)

The easiest way to get it in is to create a mapping for `*` in your FKM. That will pick the log up and allow you to tail and see how the stream name is constructed. You can tail the stream from Geneos to see the Action!

 ![image](https://europe1.discourse-cdn.com/flex013/uploads/itrsgroup/original/1X/1bb048b8a6d7a9c8b85d71dbaf9d2fd7ce8b9e57.png)
