Skip to main content

octantis-plugin-sdk

Plugin SDK for Octantis — the open-core, OTLP-native incident investigator.

This package defines the stable public contract between Octantis and plugin authors: six Protocol interfaces, shared data types, and the lifecycle they guarantee.

Octantis uses "Ingester" for its event-source Protocol, distinct from the OpenTelemetry Collector's "receiver" pipeline stage. An Ingester plugin lives inside the Octantis process and produces SDK Event instances.

  • License: Apache-2.0 (permissive — your plugin is NOT obligated to be AGPL just because Octantis core is)
  • Stability: semantic versioning. Breaking changes require a major bump.
  • No runtime deps on Octantis core: depend on this SDK only.

Install

pip install octantis-plugin-sdk

Protocols

Octantis discovers plugins via six Python entry-point groups. Implement the matching Protocol and register under the matching group.

Protocol Entry-point group Purpose
Ingester octantis.ingesters Event sources (OTLP gRPC, OTLP HTTP, pull scrapers, log tailers).
Storage octantis.storage Persistence backends (investigations, cooldown state).
MCPConnector octantis.mcp MCP tool providers (Grafana, K8s, Docker, AWS, custom).
Processor octantis.processors Event-pipeline stages (trigger filter, cooldown, enrichers).
Notifier octantis.notifiers Outbound destinations (Slack, Discord, email, webhook).
UIProvider octantis.ui UI surfaces (enterprise tier only).

Minimal plugin example

# my_notifier/plugin.py
from octantis_plugin_sdk import Notifier, InvestigationResult

class MyNotifier:
    name = "my-notifier"
    version = "0.1.0"

    def setup(self, config: dict) -> None:
        self._url = config["webhook_url"]

    def teardown(self) -> None:
        pass

    async def send(self, result: InvestigationResult) -> None:
        ...

Register in your pyproject.toml:

[project.entry-points."octantis.notifiers"]
my-notifier = "my_notifier.plugin:MyNotifier"

Shared types

  • Event — the canonical event passed through the pipeline.
  • InvestigationResult — the output of an investigation workflow.
  • Tool — an MCP tool exposed to the investigator.
  • PluginMetadata — optional structured metadata a plugin may expose.

See the Protocol source files for the full contracts.

Tier limits

Octantis enforces plugin-count limits by license tier at load time:

Tier MCPConnectors Notifiers UIProvider
free 1 1 0
pro 3 3 0
enterprise unlimited unlimited 1

Plugin installation is never blocked — only loading beyond your tier's limits is.

Metadata

Release files for octantis-plugin-sdk 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for octantis-plugin-sdk 0.1.0
File Size Uploaded
octantis_plugin_sdk-0.1.0.tar.gz 20.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for octantis-plugin-sdk 0.1.0
File Interpreter ABI Platform
octantis_plugin_sdk-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.1 kB

Release files / octantis_plugin_sdk-0.1.0.tar.gz

Download URL octantis_plugin_sdk-0.1.0.tar.gz
Size 20.9 kB
Tags Source
SHA-256 checksum
How to use checksums
21c8d6bbb7b2e259f55b2a627b644875cf98e0c72ec2c4a0b27660e2037d95d2
BLAKE2b-256 checksum
How to use checksums
4801863c567fcd72a66ae01094106710a5fefecf4c07285b2515d01f0de6220f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 13, 2026.

Transparency log

Release files / octantis_plugin_sdk-0.1.0-py3-none-any.whl

Download URL octantis_plugin_sdk-0.1.0-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57520d5c26725835623de017956a85f1424217428141d388f39fc00027af3a40
BLAKE2b-256 checksum
How to use checksums
e2800b5c6867cfc2eb11f6856dc2a0910792a10a5f82adb0b08832f3343b2e41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page