atc: add new metric type for checks

Signed-off-by: Joshua Winters <jwinters@pivotal.io>
Co-authored-by: Rui Yang <ryang@pivotal.io>
This commit is contained in:
Joshua Winters 2019-08-07 15:16:18 -04:00 committed by Rui Yang
parent 248fac7989
commit e66e0302be
2 changed files with 30 additions and 5 deletions

View File

@ -3,6 +3,7 @@ package exec
import (
"context"
"fmt"
"strconv"
"time"
"code.cloudfoundry.org/lager"
@ -142,11 +143,10 @@ func (step *CheckStep) Run(ctx context.Context, state RunState) error {
return err
}
metric.ResourceCheck{
PipelineName: step.metadata.PipelineName,
ResourceName: step.plan.Name,
TeamName: step.metadata.TeamName,
Success: err == nil,
metric.CheckFinished{
CheckName: step.plan.Name,
ResourceConfigScopeID: strconv.Itoa(step.metadata.ResourceConfigScopeID),
Success: err == nil,
}.Emit(logger)
err = step.delegate.SaveVersions(versions)

View File

@ -469,6 +469,31 @@ func (event ResourceCheck) Emit(logger lager.Logger) {
)
}
type CheckFinished struct {
ResourceConfigScopeID string
CheckName string
Success bool
}
func (event CheckFinished) Emit(logger lager.Logger) {
state := EventStateOK
if !event.Success {
state = EventStateWarning
}
emit(
logger.Session("check-finished"),
Event{
Name: "check finished",
Value: 1,
State: state,
Attributes: map[string]string{
"scope_id": event.ResourceConfigScopeID,
"check_name": event.CheckName,
},
},
)
}
var lockTypeNames = map[int]string{
lock.LockTypeResourceConfigChecking: "ResourceConfigChecking",
lock.LockTypeBuildTracking: "BuildTracking",