Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for embedded devices? #2483

Open
proffalken opened this issue Jan 10, 2024 · 5 comments
Open

Add support for embedded devices? #2483

proffalken opened this issue Jan 10, 2024 · 5 comments
Assignees
Labels
enhancement New feature or request triage/needs-information Indicates an issue needs more information in order to work on it.

Comments

@proffalken
Copy link

Before opening a feature request against this repo, consider whether the feature should/could be implemented in the other OpenTelemetry client libraries. If so, please open an issue on opentelemetry-specification first.

Is your feature request related to a problem?
No

Describe the solution you'd like
Many embedded devices run C++ as their primary programming language. This includes both hobbyist devices such as Arduino's and industrial IoT devices based on chips from various vendors.

Whilst each chip has it's own "special requirements", being able to add Logs, Traces, and Metrics to embedded devices (especially those that have a robust data connection to the outside world!) would provide huge insight into how microcontroller-based embedded devices interact with the systems they talk to.

Describe alternatives you've considered

  • Creating a w3c Trace Context TraceID manually as part of the application code and using existing logging libraries to send that data to OTEL collector for processing

Additional context

  • Common transports from embedded IoT devices include HTTP and MQTT
  • LoRaWAN and other 5G technologies are also options, however payload restrictions will limit what can be sent over some of these options, so I'd recommend only using WiFi, Cellular, or Ethernet as "outbound" options.
@github-actions github-actions bot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Jan 10, 2024
@marcalff marcalff self-assigned this Jan 10, 2024
@marcalff
Copy link
Member

As long as the code builds for the target architecture, and as long as the device has network connectivity to send data out, I don't see what is fundamentally different from a "regular" deployment.

Could you clarify what you think is missing in particular in opentelemetry-cpp ?

Without knowing in detail:

  • the device to use
  • the device platform
  • the compiler to use, possibly a cross compiler
  • the libraries available

there is not much opentelemetry-cpp can do to "support embedded devices", this statement is too general.

Still, I would love to see a tic-tac-toe app instrumented, as a demo.

@marcalff marcalff added triage/needs-information Indicates an issue needs more information in order to work on it. enhancement New feature or request and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jan 15, 2024
@proffalken
Copy link
Author

Apologies, I'd missed this comment.

As an initial target device I'd love to get this running on an ESP32, something like this one

My knowledge of c++ and embedded systems is "just enough to get by", so I'm not too sure how I'd get the SDK into a suitable state for use with these kinds of devices, however being able to trace from the call to the sensor right through to the interaction with the backend storage would be amazing!

The compiler would be via ESPressif's toolchain and using PlatformIO in an ideal situation.

Do let me know if there are any good places I can start to explore this on my own, especially if there's a guide to which of the directories within the OTEL C++ structure I should be looking at to find the code to compile into the library.

Copy link

This issue was marked as stale due to lack of activity.

@albkharisov
Copy link
Contributor

albkharisov commented Nov 25, 2024

@proffalken
Finally
Opentelemetry in ESP-iDF registry

https://components.espressif.com/components/albkharisov/esp_opentelemetry_sdk
https://components.espressif.com/components/albkharisov/esp_opentelemetry_api

@github-actions github-actions bot removed the Stale label Nov 26, 2024
@proffalken
Copy link
Author

Thanks @albkharisov - that's fantastic news, I'll close this for now and it can be re-opened if necessary for other frameworks in future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request triage/needs-information Indicates an issue needs more information in order to work on it.
Projects
None yet
Development

No branches or pull requests

3 participants