mirror of https://github.com/grafana/grafana
Cloud Monitoring: Add standalone files and modify plugin.json (#81596)
parent
1966ce609c
commit
be6efd9518
@ -0,0 +1,38 @@ |
||||
package main |
||||
|
||||
import ( |
||||
"context" |
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend" |
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient" |
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" |
||||
cloudmonitoring "github.com/grafana/grafana/pkg/tsdb/cloud-monitoring" |
||||
) |
||||
|
||||
var ( |
||||
_ backend.QueryDataHandler = (*Datasource)(nil) |
||||
_ backend.CheckHealthHandler = (*Datasource)(nil) |
||||
_ backend.CallResourceHandler = (*Datasource)(nil) |
||||
) |
||||
|
||||
func NewDatasource(context.Context, backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { |
||||
return &Datasource{ |
||||
Service: cloudmonitoring.ProvideService(httpclient.NewProvider()), |
||||
}, nil |
||||
} |
||||
|
||||
type Datasource struct { |
||||
Service *cloudmonitoring.Service |
||||
} |
||||
|
||||
func (d *Datasource) QueryData(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error) { |
||||
return d.Service.QueryData(ctx, req) |
||||
} |
||||
|
||||
func (d *Datasource) CallResource(ctx context.Context, req *backend.CallResourceRequest, sender backend.CallResourceResponseSender) error { |
||||
return d.Service.CallResource(ctx, req, sender) |
||||
} |
||||
|
||||
func (d *Datasource) CheckHealth(ctx context.Context, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) { |
||||
return d.Service.CheckHealth(ctx, req) |
||||
} |
@ -0,0 +1,23 @@ |
||||
package main |
||||
|
||||
import ( |
||||
"os" |
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource" |
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/log" |
||||
) |
||||
|
||||
func main() { |
||||
// Start listening to requests sent from Grafana. This call is blocking so
|
||||
// it won't finish until Grafana shuts down the process or the plugin choose
|
||||
// to exit by itself using os.Exit. Manage automatically manages life cycle
|
||||
// of datasource instances. It accepts datasource instance factory as first
|
||||
// argument. This factory will be automatically called on incoming request
|
||||
// from Grafana to create different instances of SampleDatasource (per datasource
|
||||
// ID). When datasource configuration changed Dispose method will be called and
|
||||
// new datasource instance created using NewSampleDatasource factory.
|
||||
if err := datasource.Manage("grafana-cloud-monitoring-datasource", NewDatasource, datasource.ManageOpts{}); err != nil { |
||||
log.DefaultLogger.Error(err.Error()) |
||||
os.Exit(1) |
||||
} |
||||
} |
Loading…
Reference in new issue