Skip to main content

Splunk SecureApp OpenTelemetry Extension for Python applications

Project description

Splunk SecureApp OpenTelemetry Extension

OpenTelemetry Python extension for integrating Splunk SecureApp with OpenTelemetry. This extension monitors runtime dependencies and reports them via OpenTelemetry logs.

Installation

# Install from PyPI
pip install secureapp-python-agent

# Install with OpenTelemetry instrumentation
pip install secureapp-python-agent opentelemetry-distro[otlp]

# Run your application with automatic instrumentation
opentelemetry-instrument python your_app.py

## Configuration

The extension can be configured using environment variables:

| Environment Variable                        | Default | Description                                               |
|---------------------------------------------|---------|-----------------------------------------------------------|
| `SPLUNK_SECUREAPP_AGENT_ENABLED`            | `true`  | Enable or disable the agent completely                    |
| `OTEL_LOGS_EXPORTER`                        | `otlp`  | Log exporter type: `otlp`, `console`, or `none`           |
| `SPLUNK_SECUREAPP_DEPENDENCY_INITIAL_DELAY` | `60.0`  | Initial delay (seconds) before dependency tracking starts |
| `SPLUNK_SECUREAPP_DEPENDENCY_SCAN_INTERVAL` | `86400` | Interval (seconds) between dependency scans (24 hours)    |
| `SPLUNK_SECUREAPP_LOG_LEVEL_INFO            |  NOTSET | Standard Python Log Levels                                |

## Features

### Runtime Dependency Monitoring

The extension monitors third-party Python packages loaded at runtime and reports
them through OpenTelemetry logs with:
- Package name and version
- Import timestamp
- Standard library exclusion for performance optimization
- Low overhead (<10MB memory, <100ms startup impact)

### OpenTelemetry Integration

- Sends dependency data as structured logs via configurable exporters
- Compatible with the OpenTelemetry Collector and Splunk Observability backends
- Lightweight implementation with optimized performance

## Compatibility

### OpenTelemetry Versions

The extension is compatible with OpenTelemetry versions 1.39.x plus

### Python Versions

Supported Python versions:
- Python 3.10
- Python 3.11
- Python 3.12
- Python 3.13
- Python 3.14

## Performance Considerations

The SecureApp agent is designed with minimal performance impact:
- Startup overhead: <100ms
- Memory overhead: <10MB
- Optimizations:
  - Lazy imports for better startup performance
  - Standard library detection to avoid unnecessary scanning
  - Configurable scan intervals
  - Efficient batch processing for telemetry data

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secureapp_python_agent-26.5.0rc5.tar.gz (67.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

secureapp_python_agent-26.5.0rc5-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file secureapp_python_agent-26.5.0rc5.tar.gz.

File metadata

File hashes

Hashes for secureapp_python_agent-26.5.0rc5.tar.gz
Algorithm Hash digest
SHA256 a64eac316b7c052f6737a23f30f8ee10bbe27510f4538e5257af2865b828cb5f
MD5 e7d12ece9346a255b2b04c626aa666b0
BLAKE2b-256 4ab674ee2373a5c5164411dfd2c57d00077794b82bbc2cf2c798beca84720c30

See more details on using hashes here.

File details

Details for the file secureapp_python_agent-26.5.0rc5-py3-none-any.whl.

File metadata

File hashes

Hashes for secureapp_python_agent-26.5.0rc5-py3-none-any.whl
Algorithm Hash digest
SHA256 407067465f3544e5d03dae6c03e5752070543f31097a4f9285493ac4385930a3
MD5 bdfcc562cedabf0260c9ae8a8f16893a
BLAKE2b-256 a5cd95c44b591a091a8987879b0783c1ea9729c0a5e21f19e542e82f5657677c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page