Initial commit
This commit is contained in:
commit
5ffc3ab4df
19 changed files with 2095 additions and 0 deletions
47
checker/provider.go
Normal file
47
checker/provider.go
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
package checker
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
sdk "git.happydns.org/checker-sdk-go/checker"
|
||||
)
|
||||
|
||||
func Provider() sdk.ObservationProvider {
|
||||
return &happyDeliverProvider{}
|
||||
}
|
||||
|
||||
type happyDeliverProvider struct{}
|
||||
|
||||
func (p *happyDeliverProvider) Key() sdk.ObservationKey {
|
||||
return ObservationKeyHappyDeliver
|
||||
}
|
||||
|
||||
func (p *happyDeliverProvider) Definition() *sdk.CheckerDefinition {
|
||||
return Definition()
|
||||
}
|
||||
|
||||
func (p *happyDeliverProvider) ExtractMetrics(ctx sdk.ReportContext, collectedAt time.Time) ([]sdk.CheckMetric, error) {
|
||||
var data HappyDeliverData
|
||||
if err := json.Unmarshal(ctx.Data(), &data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(data.Scores) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
metrics := make([]sdk.CheckMetric, 0, len(AllSections))
|
||||
for _, section := range AllSections {
|
||||
score, ok := data.Scores[section]
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
metrics = append(metrics, sdk.CheckMetric{
|
||||
Name: "happydeliver_score",
|
||||
Value: float64(score),
|
||||
Unit: "points",
|
||||
Labels: map[string]string{"section": section},
|
||||
Timestamp: collectedAt,
|
||||
})
|
||||
}
|
||||
return metrics, nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue