Adds bugsnag and newrelic metrics and error reporting
Configuration variables are added under the REGISTRY_REPORTING namespace, for example REGISTRY_REPORTING_BUGSNAG_APIKEY
This commit is contained in:
parent
d726630ad0
commit
43a50b5e82
2 changed files with 82 additions and 1 deletions
|
@ -24,6 +24,9 @@ type Configuration struct {
|
|||
// Storage is the configuration for the registry's storage driver
|
||||
Storage Storage `yaml:"storage"`
|
||||
|
||||
// Reporting is the configuration for error reporting
|
||||
Reporting Reporting `yaml:"reporting"`
|
||||
|
||||
// HTTP contains configuration parameters for the registry's http
|
||||
// interface.
|
||||
HTTP struct {
|
||||
|
@ -180,6 +183,27 @@ func (storage Storage) MarshalYAML() (interface{}, error) {
|
|||
// Parameters defines a key-value parameters mapping
|
||||
type Parameters map[string]string
|
||||
|
||||
// Reporting defines error reporting methods.
|
||||
type Reporting struct {
|
||||
// Bugsnag configures error reporting for Bugsnag (bugsnag.com).
|
||||
Bugsnag struct {
|
||||
// APIKey is the Bugsnag api key.
|
||||
APIKey string `yaml:"apikey"`
|
||||
// ReleaseStage tracks where the registry is deployed.
|
||||
// Examples: production, staging, development
|
||||
ReleaseStage string `yaml:"releasestage"`
|
||||
// Endpoint is used for specifying an enterprise Bugsnag endpoint.
|
||||
Endpoint string `yaml:"endpoint"`
|
||||
} `yaml:"bugsnag"`
|
||||
// NewRelic configures error reporting for NewRelic (newrelic.com)
|
||||
NewRelic struct {
|
||||
// LicenseKey is the NewRelic user license key
|
||||
LicenseKey string `yaml:"licensekey"`
|
||||
// AppName is the component name of the registry in NewRelic
|
||||
Name string `yaml:"name"`
|
||||
} `yaml:"newrelic"`
|
||||
}
|
||||
|
||||
// Parse parses an input configuration yaml document into a Configuration struct
|
||||
// This should generally be capable of handling old configuration format versions
|
||||
//
|
||||
|
@ -264,6 +288,23 @@ func parseV0_1Registry(in []byte) (*Configuration, error) {
|
|||
}
|
||||
}
|
||||
|
||||
if bugsnagAPIKey, ok := envMap["REGISTRY_REPORTING_BUGSNAG_APIKEY"]; ok {
|
||||
config.Reporting.Bugsnag.APIKey = bugsnagAPIKey
|
||||
}
|
||||
if bugsnagReleaseStage, ok := envMap["REGISTRY_REPORTING_BUGSNAG_RELEASESTAGE"]; ok {
|
||||
config.Reporting.Bugsnag.ReleaseStage = bugsnagReleaseStage
|
||||
}
|
||||
if bugsnagEndpoint, ok := envMap["REGISTRY_REPORTING_BUGSNAG_ENDPOINT"]; ok {
|
||||
config.Reporting.Bugsnag.Endpoint = bugsnagEndpoint
|
||||
}
|
||||
|
||||
if newRelicLicenseKey, ok := envMap["REGISTRY_REPORTING_NEWRELIC_LICENSEKEY"]; ok {
|
||||
config.Reporting.NewRelic.LicenseKey = newRelicLicenseKey
|
||||
}
|
||||
if newRelicName, ok := envMap["REGISTRY_REPORTING_NEWRELIC_NAME"]; ok {
|
||||
config.Reporting.NewRelic.Name = newRelicName
|
||||
}
|
||||
|
||||
return (*Configuration)(&config), nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue