Kindling Azure Monitor OpenTelemetry Integration
Azure Monitor OpenTelemetry integration for the Kindling Spark framework.
See CHANGELOG.md for release history.
Overview
This package provides Azure Monitor-backed implementations of Kindling's telemetry providers:
AzureMonitorLoggerProvider- Sends logs to Azure Monitor/Application InsightsAzureMonitorTraceProvider- Sends distributed traces to Azure Monitor
Installation
pip install spark-kindling-ext-otel-azure
In a Kindling domain project, add it with kindling env add spark-kindling-ext-otel-azure.
On a cluster, the runtime installs it from <artifacts>/packages/ when it is listed in
kindling.extensions; upload the wheel there with
kindling runtime deploy --source github:<version> --dest <artifacts-root> --extension spark-kindling-ext-otel-azure.
Usage
Configuration
Add the extension to your settings.yaml or BOOTSTRAP_CONFIG:
kindling:
# Extensions are automatically loaded (installed + imported)
extensions:
- spark-kindling-ext-otel-azure>=0.14.0
telemetry:
azure_monitor:
connection_string: "InstrumentationKey=your-key;IngestionEndpoint=https://..."
# Both default to false: with neither set the extension sends nothing.
enable_logging: true
enable_tracing: true
sampling_rate: 1.0 # optional; 1.0 = 100% sampling
Or in bootstrap config:
BOOTSTRAP_CONFIG = {
'extensions': ['spark-kindling-ext-otel-azure>=0.14.0'],
'kindling': {
'telemetry': {
'azure_monitor': {
'connection_string': 'InstrumentationKey=...',
'enable_logging': True,
'enable_tracing': True,
}
}
}
}
Using with Dependency Injection
The providers automatically register with Kindling's DI container:
from kindling.spark_log_provider import PythonLoggerProvider
from kindling.spark_trace import SparkTraceProvider
from kindling.injection import GlobalInjector
# Import to register Azure Monitor providers
import kindling_ext_otel_azure
# Get logger (automatically uses Azure Monitor if configured)
logger_provider = GlobalInjector.get(PythonLoggerProvider)
logger = logger_provider.get_logger("my_app")
# Get tracer (automatically uses Azure Monitor if configured)
trace_provider = GlobalInjector.get(SparkTraceProvider)
# Use tracing
with trace_provider.span(component="data_pipeline", operation="process"):
logger.info("Processing data...")
# Your code here
Manual Setup
You can also manually configure the providers:
from kindling_ext_otel_azure import AzureMonitorLoggerProvider, AzureMonitorTraceProvider
from kindling.spark_config import ConfigService
config = ConfigService()
config.load_from_file("settings.yaml")
# Create providers
logger_provider = AzureMonitorLoggerProvider(config)
trace_provider = AzureMonitorTraceProvider(config)
# Use them
logger = logger_provider.get_logger("my_app")
logger.info("Hello from Azure Monitor!")
Features
- Automatic instrumentation - Logs and traces flow to Azure Monitor
- Distributed tracing - Correlate operations across services
- Custom metrics - Track pipeline execution times, row counts, etc.
- Application Insights integration - Query with KQL, set up alerts
- Fallback behavior - Gracefully falls back if Azure Monitor unavailable
Requirements
- Python 3.10+
- Kindling framework
- Azure subscription with Application Insights resource
- Application Insights connection string
License
MIT
Metadata
Release files for spark-kindling-ext-otel-azure 0.14.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| spark_kindling_ext_otel_azure-0.14.0.tar.gz | 8.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spark_kindling_ext_otel_azure-0.14.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.5 kB
Release files / spark_kindling_ext_otel_azure-0.14.0.tar.gz
| Download URL | spark_kindling_ext_otel_azure-0.14.0.tar.gz |
|---|---|
| Size | 8.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5571aa0ba546b3b848e3ab38fe4a1c4fe55525a8fe2953659f27bac6ff9184f8
|
|
BLAKE2b-256 checksum How to use checksums |
8288de1c82a0ec7bfdbe80dc6cff6320c4bb37c7b3941ca21911d04f838a919d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / spark_kindling_ext_otel_azure-0.14.0-py3-none-any.whl
| Download URL | spark_kindling_ext_otel_azure-0.14.0-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3758ef38c56ee6cdfdb3d71597bffaeda3461ccbbad0953ea9ae3c62923cea6e
|
|
BLAKE2b-256 checksum How to use checksums |
aa7bc83eb8463b5814434e5144ab0895db93c24951eea474146fa9b53848b9d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logSecurity for spark-kindling-ext-otel-azure 0.14.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for spark_kindling_ext_otel_azure-0.14.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.