eafc8ab1cd
We have two historians in alerting - alert state and notification. The intention of this app is to provide query capabilities for both. In this initial commit, the existing /history API is simply cloned to the new app. It is identical except that it will send Kubernetes-style error responses instead of Grafana-style. This approach was taken to implement the new app more iteratively - ideally we would define a new API, but this requires quite a significant overhaul of the backend code.
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package app
|
|
|
|
import (
|
|
"github.com/grafana/grafana-app-sdk/app"
|
|
"github.com/grafana/grafana-app-sdk/simple"
|
|
|
|
"github.com/grafana/grafana/apps/alerting/historian/pkg/apis/alertinghistorian/v0alpha1"
|
|
"github.com/grafana/grafana/apps/alerting/historian/pkg/app/config"
|
|
)
|
|
|
|
func New(cfg app.Config) (app.App, error) {
|
|
runtimeConfig := cfg.SpecificConfig.(config.RuntimeConfig)
|
|
|
|
simpleConfig := simple.AppConfig{
|
|
Name: "alerting.historian",
|
|
KubeConfig: cfg.KubeConfig,
|
|
VersionedCustomRoutes: map[string]simple.AppVersionRouteHandlers{
|
|
"v0alpha1": {
|
|
{
|
|
Namespaced: true,
|
|
Path: "/alertstate/history",
|
|
Method: "GET",
|
|
}: runtimeConfig.GetAlertStateHistoryHandler,
|
|
},
|
|
},
|
|
// TODO: Remove when SDK is fixed.
|
|
ManagedKinds: []simple.AppManagedKind{
|
|
{
|
|
Kind: v0alpha1.DummyKind(),
|
|
},
|
|
},
|
|
}
|
|
|
|
a, err := simple.NewApp(simpleConfig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = a.ValidateManifest(cfg.ManifestData)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return a, nil
|
|
}
|