Metadata-Version: 2.4
Name: opentelemetry-instrumentation-fmpy
Version: 0.1.2
Summary: OpenTelemetry instrumentation for FMPy
Project-URL: Homepage, https://github.com/Novia-RDI-Seafaring/opentelemetry-instrumentation-fmpy
Author-email: OpenTelemetry Authors <cncf-opentelemetry-contributors@lists.cncf.io>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Requires-Dist: opentelemetry-api<2.0,>=1.12
Requires-Dist: opentelemetry-instrumentation<1.0,>=0.48b0
Requires-Dist: opentelemetry-sdk<2.0,>=1.12
Requires-Dist: opentelemetry-semantic-conventions<1.0,>=0.48b0
Requires-Dist: prometheus-client>=0.21.1
Requires-Dist: requests>=2.32.4
Requires-Dist: wrapt<2.0.0,>=1.0.0
Provides-Extra: cli
Requires-Dist: typer>=0.20.0; extra == 'cli'
Provides-Extra: instruments
Requires-Dist: fmpy>=0.3.21; extra == 'instruments'
Requires-Dist: opentelemetry-exporter-prometheus<1.0,>=0.48b0; extra == 'instruments'
Requires-Dist: opentelemetry-exporter-richconsole<1.0,>=0.48b0; extra == 'instruments'
Provides-Extra: test
Requires-Dist: fmpy>=0.3.21; extra == 'test'
Requires-Dist: opentelemetry-test-utils<1.0,>=0.48b0; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest>=8.3.5; extra == 'test'
Description-Content-Type: text/markdown

# OpenTelemetry FMPy Instrumentation

[![pypi](https://img.shields.io/pypi/v/opentelemetry-instrumentation-fmpy.svg)](https://pypi.org/project/opentelemetry-instrumentation-fmpy/)
[![python](https://img.shields.io/pypi/pyversions/opentelemetry-instrumentation-fmpy.svg)](https://pypi.org/project/opentelemetry-instrumentation-fmpy/)

OpenTelemetry instrumentation for [FMPy](https://github.com/CATIA-Systems/FMPy), providing distributed tracing and observability for Functional Mock-up Unit (FMU) simulations.

## Installation

```bash
uv add opentelemetry-instrumentation-fmpy
```

## Usage

### Programmatic Instrumentation

```python
from opentelemetry.instrumentation.fmpy import FmpyInstrumentor

# Enable instrumentation
FmpyInstrumentor().instrument()

import fmpy
# FMU operations are now traced automatically
result = fmpy.simulate_fmu("model.fmu", stop_time=10.0)

# Disable instrumentation
FmpyInstrumentor().uninstrument()
```

## Development

### Requirements

- Python 3.8+
- uv (for development)


## Citation

If you use this repository in your research or publications, please cite it using the following BibTeX entry:

```bibtex
@misc{opentelemetry-instrumentation-fmpy,
  author       = {Christoffer Björkskog},
  title        = {OpenTelemetry Instrumentation for FMPy},
  year         = {2025},
  howpublished = {\url{https://github.com/Novia-RDI-Seafaring/opentelemetry-instrumentation-fmpy}},
  note         = {Contact: christoffer.bjorkskog@novia.fi},
  institution  = {Novia University of Applied Sciences}
}
```



## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
