OmniSignal¶
Unified signal ingestion abstraction for operational intelligence
OmniSignal provides a unified interface for ingesting operational signals from various external systems (alerting, ticketing, security, monitoring). It follows the same architectural pattern as OmniLLM:
• Provider interface defines the contract for signal sources • Registry allows dynamic provider registration • Thick providers use official SDKs (PagerDuty, Jira, New Relic) • Thin providers use native HTTP for sources without Go SDKs
Features¶
- Multi-Source Support: PagerDuty, Jira, New Relic, with more planned
- Unified API: Same interface across all signal sources
- Normalized Output: All signals conform to signal-spec
- Batch Fetching: Efficient pagination handled internally
- Filtering: Time-based, status, severity, and provider-specific filters
- Streaming Ready: Subscribe interface for real-time signals (provider-dependent)
- Type Safe: Full Go type safety with comprehensive error handling
Quick Example¶
package main
import (
"context"
"fmt"
"log"
"os"
"time"
"github.com/plexusone/omnisignal"
_ "github.com/plexusone/omnisignal/provider/pagerduty"
)
func main() {
provider, err := omnisignal.New("pagerduty", omnisignal.Config{
APIKey: os.Getenv("PAGERDUTY_API_KEY"),
})
if err != nil {
log.Fatal(err)
}
defer provider.Close()
// Fetch incidents from the last 24 hours
signals, err := provider.Fetch(context.Background(), omnisignal.FetchOptions{
Since: time.Now().Add(-24 * time.Hour),
})
if err != nil {
log.Fatal(err)
}
for _, sig := range signals {
fmt.Printf("Signal: %s - %s (%s)\n", sig.ID, sig.Summary, sig.Severity)
}
}
Supported Providers¶
| Provider | Type | Status | SDK |
|---|---|---|---|
| PagerDuty | Alerting | Built-in | go-pagerduty |
| Jira | Ticketing | Built-in | go-jira |
| New Relic | Monitoring | External | newrelic-client-go |
Planned Providers¶
| Provider | Type | Priority |
|---|---|---|
| Zendesk | Ticketing | P1 |
| Datadog | Monitoring | P1 |
| Opsgenie | Alerting | P1 |
| ServiceNow | ITSM | P2 |
| Snyk | Security | P2 |
Next Steps¶
- Installation - Get OmniSignal set up
- Quick Start - Your first signal fetch
- Providers - Configure specific providers
- Configuration - Understand configuration options
Related Packages¶
- signal-spec - Canonical signal data model
- signal - Operational intelligence platform
- omnillm - Unified LLM abstraction