Skip to main content

Plugin SDK for Octantis — Protocols and shared types for building Octantis plugins

Project description

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.

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

octantis_plugin_sdk-0.1.0.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

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

octantis_plugin_sdk-0.1.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file octantis_plugin_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: octantis_plugin_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for octantis_plugin_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 21c8d6bbb7b2e259f55b2a627b644875cf98e0c72ec2c4a0b27660e2037d95d2
MD5 8dfc9792d076b3161d5ed4024e216697
BLAKE2b-256 4801863c567fcd72a66ae01094106710a5fefecf4c07285b2515d01f0de6220f

See more details on using hashes here.

Provenance

The following attestation bundles were made for octantis_plugin_sdk-0.1.0.tar.gz:

Publisher: release-sdk.yml on Vinny1892/octantis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file octantis_plugin_sdk-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for octantis_plugin_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57520d5c26725835623de017956a85f1424217428141d388f39fc00027af3a40
MD5 671d881cd16bbdcc39571766be1704a4
BLAKE2b-256 e2800b5c6867cfc2eb11f6856dc2a0910792a10a5f82adb0b08832f3343b2e41

See more details on using hashes here.

Provenance

The following attestation bundles were made for octantis_plugin_sdk-0.1.0-py3-none-any.whl:

Publisher: release-sdk.yml on Vinny1892/octantis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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