Documentation ¶
Overview ¶
Package nobl9 provide an abstraction for communication with API
Package nobl9 provide an abstraction for communication with API
Index ¶
- Constants
- Variables
- func EnhanceError(o ObjectGeneric, err error) error
- func GetAvailablePercentiles() []string
- func IsDNS1123Label(value string) []string
- func IsObjectAvailable(o Object) bool
- func Newpayload(org string)
- func Parse(o ObjectGeneric, parsedObjects *APIObjects, onlyHeaders bool) error
- func UnsupportedKindErr(o ObjectGeneric) error
- type APIObjects
- type Agent
- type AgentSpec
- type AgentStatus
- type AgentWithSLOs
- type Alert
- type AlertCondition
- type AlertMethod
- type AlertMethodAssignment
- type AlertMethodSpec
- type AlertMethodWithAlertPolicy
- type AlertPolicy
- type AlertPolicySpec
- type AlertPolicyWithSLOs
- type AlertSpec
- type AmazonPrometheusAgentConfig
- type AmazonPrometheusMetric
- type AnyJSONObj
- type AppDynamicsAgentConfig
- type AppDynamicsConfig
- type AppDynamicsDirectConfig
- type AppDynamicsMetric
- type Attachment
- type BigQueryAgentConfig
- type BigQueryDirectConfig
- type BigQueryMetric
- type BurnDownTimeSeries
- type Calendar
- type Client
- func (c *Client) ApplyAgents(objects []AnyJSONObj) ([]objectData, error)
- func (c *Client) ApplyObjects(objects []AnyJSONObj) error
- func (c *Client) DeleteObjects(objects []AnyJSONObj) error
- func (c *Client) DeleteObjectsByName(object Object, names ...string) error
- func (c *Client) GetAWSExternalID() (string, error)
- func (c *Client) GetAgents(timestamp string, names ...string) ([]Agent, error)
- func (c *Client) GetBearerHeader() string
- func (c *Client) GetDirects(timestamp string, names ...string) ([]Direct, error)
- func (c *Client) GetObject(object Object, timestamp string, names ...string) ([]AnyJSONObj, error)
- func (c *Client) GetTimeSeries(timeSeries TimeSerie, sloName string, from, to time.Time, steps int) (interface{}, error)
- type CloudWatchAgentConfig
- type CloudWatchDirectConfig
- type CloudWatchMetric
- type CloudWatchMetricDimension
- type Composite
- type CompositeBurnRateCondition
- type CountMetricsSpec
- type CountsSLITimeSeries
- type Credentials
- type CumulativeBurnedTimeSeries
- type DataExport
- type DataExportSpec
- type DataExportStatus
- type DataExportStatusJob
- type DataSourceStatus
- type DatadogAgentConfig
- type DatadogConfig
- type DatadogDirectConfig
- type DatadogMetric
- type Direct
- type DirectSpec
- type DirectStatus
- type DiscordAlertMethod
- type DynatraceAgentConfig
- type DynatraceConfig
- type DynatraceDirectConfig
- type DynatraceMetric
- type ElasticsearchAgentConfig
- type ElasticsearchConfig
- type ElasticsearchMetric
- type EmailAlertMethod
- type FilterEntry
- type GCMAgentConfig
- type GCMDirectConfig
- type GCMMetric
- type GCSDataExportSpec
- type GrafanaLokiAgentConfig
- type GrafanaLokiMetric
- type GraphiteAgentConfig
- type GraphiteMetric
- type Group
- type GroupMetadata
- type GroupSpec
- type HistoricalDataRetrieval
- type HistoricalDataRetrievalDuration
- type Indicator
- type InfluxDBAgentConfig
- type InfluxDBDirectConfig
- type InfluxDBMetric
- type InstanaAgentConfig
- type InstanaApplicationMetricGroupBy
- type InstanaApplicationMetricType
- type InstanaDirectConfig
- type InstanaInfrastructureMetricType
- type InstanaMetric
- type InstantaneousBurnRateTimeSeries
- type JiraAlertMethod
- type Labels
- type LightstepAgentConfig
- type LightstepConfig
- type LightstepDirectConfig
- type LightstepMetric
- type Member
- type Metadata
- type MetadataHolder
- type MetricSourceSpec
- type MetricSpec
- type NewRelicAgentConfig
- type NewRelicConfig
- type NewRelicDirectConfig
- type NewRelicMetric
- type Object
- type ObjectGeneric
- type ObjectHeader
- type ObjectInternal
- type OpenTSDBAgentConfig
- type OpenTSDBMetric
- type Operation
- type OpsgenieAlertMethod
- type PagerDutyAlertMethod
- type Payload
- type Percentile
- type Period
- type PingdomAgentConfig
- type PingdomDirectConfig
- type PingdomMetric
- type Project
- type ProjectMetadata
- type ProjectSpec
- type PrometheusAgentConfig
- type PrometheusDiscoveryRule
- type PrometheusMetric
- type PrometheusServiceDiscovery
- type PublicAlertMethod
- type PublicAlertMethodSpec
- type PublicAlertMethodStatus
- type PublicDiscordAlertMethod
- type PublicJiraAlertMethod
- type PublicOpsgenieAlertMethod
- type PublicPagerDutyAlertMethod
- type PublicServiceNowAlertMethod
- type PublicSlackAlertMethod
- type PublicTeamsAlertMethod
- type PublicWebhookAlertMethod
- type QueryDelayDuration
- type RawMetricSpec
- type RedshiftAgentConfig
- type RedshiftDirectConfig
- type RedshiftMetric
- type RoleBinding
- type RoleBindingMetadata
- type RoleBindingSpec
- type S3DataExportSpec
- type SLO
- type SLOHistoryReport
- type SLOSpec
- type SLOTimeSeries
- type SendResolution
- type Service
- type ServiceNowAlertMethod
- type ServiceSpec
- type ServiceStatus
- type ServiceWithSLOs
- type SlackAlertMethod
- type SplunkAgentConfig
- type SplunkConfig
- type SplunkDirectConfig
- type SplunkMetric
- type SplunkObservabilityAgentConfig
- type SplunkObservabilityDirectConfig
- type SplunkObservabilityMetric
- type SumoLogicAgentConfig
- type SumoLogicDirectConfig
- type SumoLogicMetric
- type TeamsAlertMethod
- type ThousandEyesAgentConfig
- type ThousandEyesDirectConfig
- type ThousandEyesMetric
- type Threshold
- type ThresholdBase
- type ThresholdHistoryReport
- type ThresholdTimeSeries
- type ThresholdTimeSeriesStatus
- type TimeSerie
- type TimeSeriesData
- type TimeWindow
- type TimeWindowHistoryReport
- type TimeWindowTimeSeries
- type WebhookAlertMethod
- type WebhookHeader
Constants ¶
const ( KindSLO = "SLO" KindService = "Service" KindAgent = "Agent" KindProject = "Project" KindAlertPolicy = "AlertPolicy" KindAlert = "Alert" KindAlertMethod = "AlertMethod" KindDirect = "Direct" KindDataExport = "DataExport" KindGroup = "Group" KindRoleBinding = "RoleBinding" )
Possible values of field kind for valid Objects.
const ( HeaderOrganization = "organization" HeaderProject = "project" HeaderAuthorization = "Authorization" HeaderUserAgent = "User-Agent" HeaderClientID = "ClientID" )
HTTP headers keys used across app
const ( QueryKeyName = "name" QueryKeyTime = "t" QueryKeyFrom = "from" QueryKeyTo = "to" QueryKeySeries = "series" QueryKeySteps = "steps" QueryKeySlo = "slo" QueryKeyTimeWindow = "window" QueryKeyPercentiles = "q" )
HTTP GET query keys used across app
const ( P1 string = "p1" P5 string = "p5" P10 string = "p10" P50 string = "p50" P90 string = "p90" P95 string = "p95" P99 string = "p99" )
const (
APIVersion = "n9/v1alpha"
)
APIVersion is a value of valid apiVersions
const DefaultProject = "default"
DefaultProject is a value of the default project.
const HiddenValue = "[hidden]"
HiddenValue can be used as a value of a secret field and is ignored during saving
const ProjectsWildcard = "*"
ProjectsWildcard is used in HeaderProject when requesting for all projects
const (
Timeout = 10 * time.Second
)
Timeout use for every request
Variables ¶
var ErrConcurrencyIssue = errors.New("operation failed due to concurrency issue but can be retried")
Functions ¶
func EnhanceError ¶
func EnhanceError(o ObjectGeneric, err error) error
EnhanceError annotates error with path of manifest source, if it exists it not returns the same error as passed as argument
func GetAvailablePercentiles ¶
func GetAvailablePercentiles() []string
func IsDNS1123Label ¶
IsDNS1123Label tests for a string that conforms to the definition of a label in DNS (RFC 1123).
func IsObjectAvailable ¶
IsObjectAvailable returns true if given object is available in SDK.
func Newpayload ¶
func Newpayload(org string)
func Parse ¶
func Parse(o ObjectGeneric, parsedObjects *APIObjects, onlyHeaders bool) error
Parse takes care of all Object supported by n9/v1alpha apiVersion
func UnsupportedKindErr ¶
func UnsupportedKindErr(o ObjectGeneric) error
UnsupportedKindErr returns appropriate error for missing value in field kind for not empty field kind returns always that is not supported for this apiVersion so have to be validated before
Types ¶
type APIObjects ¶
type APIObjects struct { SLOs []SLO Services []Service Agents []Agent AlertPolicies []AlertPolicy Alerts []Alert AlertMethods []AlertMethod Directs []Direct DataExports []DataExport Projects []Project RoleBindings []RoleBinding Groups []Group }
APIObjects - all Objects available for this version of API Sorted in order of applying
type Agent ¶
type Agent struct { ObjectHeader Spec AgentSpec `json:"spec"` Status AgentStatus `json:"status"` }
Agent struct which mapped one to one with kind: Agent yaml definition.
type AgentSpec ¶
type AgentSpec struct { Description string `json:"description,omitempty"` SourceOf []string `json:"sourceOf" example:"Metrics,Services"` QueryDelay *QueryDelayDuration `json:"queryDelay"` AmazonPrometheus *AmazonPrometheusAgentConfig `json:"amazonPrometheus,omitempty"` AppDynamics *AppDynamicsAgentConfig `json:"appDynamics,omitempty"` BigQuery *BigQueryAgentConfig `json:"bigQuery,omitempty"` CloudWatch *CloudWatchAgentConfig `json:"cloudWatch,omitempty"` Datadog *DatadogAgentConfig `json:"datadog,omitempty"` Dynatrace *DynatraceAgentConfig `json:"dynatrace,omitempty"` Elasticsearch *ElasticsearchAgentConfig `json:"elasticsearch,omitempty"` GCM *GCMAgentConfig `json:"gcm,omitempty"` GrafanaLoki *GrafanaLokiAgentConfig `json:"grafanaLoki,omitempty"` Graphite *GraphiteAgentConfig `json:"graphite,omitempty"` InfluxDB *InfluxDBAgentConfig `json:"influxdb,omitempty"` Instana *InstanaAgentConfig `json:"instana,omitempty"` Lightstep *LightstepAgentConfig `json:"lightstep,omitempty"` NewRelic *NewRelicAgentConfig `json:"newRelic,omitempty"` OpenTSDB *OpenTSDBAgentConfig `json:"opentsdb,omitempty"` Pingdom *PingdomAgentConfig `json:"pingdom,omitempty"` Prometheus *PrometheusAgentConfig `json:"prometheus,omitempty"` Redshift *RedshiftAgentConfig `json:"redshift,omitempty"` Splunk *SplunkAgentConfig `json:"splunk,omitempty"` SplunkObservability *SplunkObservabilityAgentConfig `json:"splunkObservability,omitempty"` SumoLogic *SumoLogicAgentConfig `json:"sumoLogic,omitempty"` ThousandEyes *ThousandEyesAgentConfig `json:"thousandEyes,omitempty"` }
AgentSpec represents content of Spec typical for Agent Object.
type AgentStatus ¶
type AgentStatus struct { AgentType string `json:"agentType" example:"Prometheus"` AgentVersion string `json:"agentVersion,omitempty" example:"0.0.9"` LastConnection string `json:"lastConnection,omitempty" example:"2020-08-31T14:26:13Z"` }
AgentStatus represents content of Status optional for Agent Object.
type AgentWithSLOs ¶
AgentWithSLOs struct which mapped one to one with kind: agent and slo yaml definition.
type Alert ¶
type Alert struct { ObjectHeader Spec AlertSpec `json:"spec"` }
Alert represents triggered alert
type AlertCondition ¶
type AlertCondition struct { Measurement string `json:"measurement"` Value interface{} `json:"value"` LastsForDuration string `json:"lastsFor,omitempty"` //nolint:lll CoolDownDuration string `json:"coolDown,omitempty"` //nolint:lll Operator string `json:"op"` }
AlertCondition represents a condition to meet to trigger an alert.
type AlertMethod ¶
type AlertMethod struct { ObjectHeader Spec AlertMethodSpec `json:"spec"` }
AlertMethod represents the configuration required to send a notification to an external service when an alert is triggered.
type AlertMethodAssignment ¶
type AlertMethodAssignment struct { Project string `json:"project,omitempty"` Name string `json:"name"` }
AlertMethodAssignment represents an AlertMethod assigned to AlertPolicy.
type AlertMethodSpec ¶
type AlertMethodSpec struct { Description string `json:"description"` Webhook *WebhookAlertMethod `json:"webhook,omitempty"` PagerDuty *PagerDutyAlertMethod `json:"pagerduty,omitempty"` Slack *SlackAlertMethod `json:"slack,omitempty"` Discord *DiscordAlertMethod `json:"discord,omitempty"` Opsgenie *OpsgenieAlertMethod `json:"opsgenie,omitempty"` ServiceNow *ServiceNowAlertMethod `json:"servicenow,omitempty"` Jira *JiraAlertMethod `json:"jira,omitempty"` Teams *TeamsAlertMethod `json:"msteams,omitempty"` Email *EmailAlertMethod `json:"email,omitempty"` }
AlertMethodSpec represents content of AlertMethod's Spec.
type AlertMethodWithAlertPolicy ¶
type AlertMethodWithAlertPolicy struct { AlertMethod PublicAlertMethod `json:"alertMethod"` AlertPolicies []AlertPolicy `json:"alertPolicies"` }
type AlertPolicy ¶
type AlertPolicy struct { ObjectHeader Spec AlertPolicySpec `json:"spec"` }
AlertPolicy represents a set of conditions that can trigger an alert.
type AlertPolicySpec ¶
type AlertPolicySpec struct { Description string `json:"description"` Severity string `json:"severity"` Conditions []AlertCondition `json:"conditions"` AlertMethods []PublicAlertMethod `json:"alertMethods"` }
AlertPolicySpec represents content of AlertPolicy's Spec.
func (AlertPolicySpec) GetAlertMethods ¶
func (spec AlertPolicySpec) GetAlertMethods() []PublicAlertMethod
type AlertPolicyWithSLOs ¶
type AlertPolicyWithSLOs struct { AlertPolicy AlertPolicy `json:"alertPolicy"` SLOs []SLO `json:"slos"` }
AlertPolicyWithSLOs struct which mapped one to one with kind: alert policy and slo yaml definition
type AlertSpec ¶
type AlertSpec struct { AlertPolicy Metadata `json:"alertPolicy"` SLO Metadata `json:"slo"` Service Metadata `json:"service"` ThresholdValue float64 `json:"thresholdValue,omitempty"` ClockTime string `json:"clockTime,omitempty"` Severity string `json:"severity"` }
AlertSpec represents content of Alert's Spec
type AmazonPrometheusAgentConfig ¶ added in v0.3.0
type AmazonPrometheusAgentConfig struct { URL string `json:"url" validate:"required,url"` Region string `json:"region" validate:"required,max=255"` }
AmazonPrometheusAgentConfig represents content of Amazon Managed Service Configuration typical for Agent Object.
type AmazonPrometheusMetric ¶ added in v0.3.0
type AmazonPrometheusMetric struct {
PromQL *string `json:"promql"`
}
AmazonPrometheusMetric describes metric from AmazonPrometheus server.
type AnyJSONObj ¶
type AnyJSONObj = map[string]interface{}
AnyJSONObj can store a generic representation on any valid JSON
func Annotate ¶
func Annotate( object AnyJSONObj, org string, ) AnyJSONObj
Annotate injects to objects additional organization field
type AppDynamicsAgentConfig ¶
type AppDynamicsAgentConfig struct {
URL *string `json:"url,omitempty" example:"https://nobl9.saas.appdynamics.com"`
}
AppDynamicsAgentConfig represents content of AppDynamics Configuration typical for Agent Object.
type AppDynamicsConfig ¶
type AppDynamicsConfig struct {
URL string `json:"url,omitempty" example:"https://nobl9.saas.appdynamics.com"`
}
AppDynamicsConfig represents content of AppDynamics Configuration typical for DataSource Object.
type AppDynamicsDirectConfig ¶
type AppDynamicsDirectConfig struct { URL string `json:"url,omitempty" validate:"httpsURL" example:"https://{tenant}.saas.appdynamics.com"` AccountName string `json:"accountName,omitempty" example:"accountID"` ClientID string `json:"clientID,omitempty" example:"apiClientID@accountID"` ClientSecret string `json:"clientSecret,omitempty" example:"secret"` ClientName string `json:"clientName,omitempty" example:"apiClientID"` }
AppDynamicsDirectConfig represents content of AppDynamics configuration typical for Direct Object
type AppDynamicsMetric ¶
type AppDynamicsMetric struct { ApplicationName *string `json:"applicationName"` MetricPath *string `json:"metricPath"` }
AppDynamicsMetric describes metric from AppDynamics
type Attachment ¶
type Attachment struct { URL string `json:"url"` DisplayName *string `json:"displayName,omitempty"` }
Attachment represents user defined URL attached to SLO
type BigQueryAgentConfig ¶
type BigQueryAgentConfig struct{}
BigQueryAgentConfig represents content of BigQuery configuration. Since the agent does not require additional configuration this is just a marker struct.
type BigQueryDirectConfig ¶
type BigQueryDirectConfig struct {
ServiceAccountKey string `json:"serviceAccountKey,omitempty" example:"secret"`
}
BigQueryDirectConfig represents content of BigQuery configuration typical for Direct Object.
type BigQueryMetric ¶
type BigQueryMetric struct { Query string `json:"query"` ProjectID string `json:"projectId"` Location string `json:"location"` }
BigQueryMetric describes metric from BigQuery.
type BurnDownTimeSeries ¶
type BurnDownTimeSeries struct {
BurnDown []TimeSeriesData `json:"burnDown,omitempty"`
}
type Client ¶
type Client struct { Creds Credentials // contains filtered or unexported fields }
Client represents API high level client
func NewClient ¶
func NewClient(ingestURL, organization, project, userAgent string, clientID string, clientSecret string, oktaOrgURL, oktaAuthServer string) (*Client, error)
NewClient returns fully configured instance of API high level client
func (*Client) ApplyAgents ¶ added in v0.4.0
func (c *Client) ApplyAgents(objects []AnyJSONObj) ([]objectData, error)
ApplyAgents applies (create or update) list of agents passed as argument via API and returns agent data on creation.
func (*Client) ApplyObjects ¶
func (c *Client) ApplyObjects(objects []AnyJSONObj) error
ApplyObjects applies (create or update) list of objects passed as argument via API.
func (*Client) DeleteObjects ¶
func (c *Client) DeleteObjects(objects []AnyJSONObj) error
DeleteObjects deletes list of objects passed as argument via API.
func (*Client) DeleteObjectsByName ¶
DeleteObjectsByName makes a call to endpoint for deleting objects with passed names and object types.
func (*Client) GetAWSExternalID ¶
func (*Client) GetAgents ¶ added in v0.8.1
GetAgents returns array of Agent, when names are passed - query for these names otherwise returns list of all available objects.
func (*Client) GetBearerHeader ¶
GetBearerHeader returns an authorization header which should be included if not empty in requests to the resource server
func (*Client) GetDirects ¶ added in v0.7.0
GetDirects returns array of Direct, when names are passed - query for these names otherwise returns list of all available objects.
type CloudWatchAgentConfig ¶ added in v0.3.0
type CloudWatchAgentConfig struct { }
CloudWatchAgentConfig represents content of CloudWatch Configuration typical for Agent Object.
type CloudWatchDirectConfig ¶ added in v0.7.0
type CloudWatchDirectConfig struct { AccessKeyID string `json:"accessKeyID,omitempty" example:"secret"` SecretAccessKey string `json:"secretAccessKey,omitempty" example:"secret"` }
CloudWatchDirectConfig represents content of CloudWatch configuration typical for Direct Object.
type CloudWatchMetric ¶
type CloudWatchMetric struct { Region *string `json:"region"` Namespace *string `json:"namespace"` MetricName *string `json:"metricName"` Stat *string `json:"stat"` Dimensions []CloudWatchMetricDimension `json:"dimensions"` SQL *string `json:"sql"` JSON *string `json:"json"` }
CloudWatchMetric describes metric from CloudWatch.
type CloudWatchMetricDimension ¶
CloudWatchMetricDimension describes name/value pair that is part of the identity of a metric.
type Composite ¶
type Composite struct { BudgetTarget float64 `json:"target"` BurnRateCondition *CompositeBurnRateCondition `json:"burnRateCondition"` }
type CountMetricsSpec ¶
type CountMetricsSpec struct { Incremental *bool `json:"incremental"` GoodMetric *MetricSpec `json:"good"` TotalMetric *MetricSpec `json:"total"` }
CountMetricsSpec represents set of two time series of good and total counts
type CountsSLITimeSeries ¶
type CountsSLITimeSeries struct { GoodCount TimeSeriesData `json:"goodCount,omitempty"` TotalCount TimeSeriesData `json:"totalCount,omitempty"` }
type Credentials ¶
type Credentials struct { ClientID string ClientSecret string AccessToken string // contains filtered or unexported fields }
Credentials stores Okta service-to-service app credentials
type CumulativeBurnedTimeSeries ¶
type CumulativeBurnedTimeSeries struct {
CumulativeBurned TimeSeriesData `json:"cumulativeBurned,omitempty"`
}
type DataExport ¶
type DataExport struct { ObjectHeader Spec DataExportSpec `json:"spec"` Status DataExportStatus `json:"status"` }
DataExport struct which mapped one to one with kind: DataExport yaml definition
type DataExportSpec ¶
type DataExportSpec struct { ExportType string `json:"exportType"` Spec interface{} `json:"spec"` }
DataExportSpec represents content of DataExport's Spec
type DataExportStatus ¶
type DataExportStatus struct { ExportJob DataExportStatusJob `json:"exportJob"` AWSExternalID *string `json:"awsExternalID,omitempty"` }
DataExportStatus represents content of Status optional for DataExport Object
type DataExportStatusJob ¶
type DataExportStatusJob struct { Timestamp string `json:"timestamp,omitempty" example:"2021-02-09T10:43:07Z"` State string `json:"state" example:"finished"` }
DataExportStatusJob represents content of ExportJob status
type DataSourceStatus ¶
type DataSourceStatus struct {
DataSourceType string `json:"dataSourceType" example:"Prometheus"`
}
DataSourceStatus represents content of Status optional for DataSource Object.
type DatadogAgentConfig ¶
type DatadogAgentConfig struct {
Site string `json:"site,omitempty"`
}
DatadogAgentConfig represents content of Datadog Configuration typical for Agent Object.
type DatadogConfig ¶
type DatadogConfig struct {
Site string `json:"site,omitempty"`
}
DatadogConfig represents content of Datadog Configuration typical for DataSource Object.
type DatadogDirectConfig ¶
type DatadogDirectConfig struct { Site string `json:"site,omitempty" example:"eu"` APIKey string `json:"apiKey,omitempty" example:"secret"` ApplicationKey string `json:"applicationKey,omitempty" example:"secret"` }
DatadogDirectConfig represents content of Datadog configuration typical for Direct Object.
type DatadogMetric ¶
type DatadogMetric struct {
Query *string `json:"query"`
}
DatadogMetric describes metric from Datadog
type Direct ¶
type Direct struct { ObjectHeader Spec DirectSpec `json:"spec"` Status DirectStatus `json:"status"` }
Direct struct which mapped one to one with kind: Direct yaml definition
type DirectSpec ¶
type DirectSpec struct { Description string `json:"description,omitempty" example:"Datadog description"` //nolint:lll SourceOf []string `json:"sourceOf" example:"Metrics,Services"` HistoricalDataRetrieval *HistoricalDataRetrieval `json:"historicalDataRetrieval"` QueryDelay *QueryDelayDuration `json:"queryDelay"` AppDynamics *AppDynamicsDirectConfig `json:"appDynamics,omitempty"` BigQuery *BigQueryDirectConfig `json:"bigQuery,omitempty"` CloudWatch *CloudWatchDirectConfig `json:"cloudWatch,omitempty"` Datadog *DatadogDirectConfig `json:"datadog,omitempty"` Dynatrace *DynatraceDirectConfig `json:"dynatrace,omitempty"` GCM *GCMDirectConfig `json:"gcm,omitempty"` InfluxDB *InfluxDBDirectConfig `json:"influxdb,omitempty"` Instana *InstanaDirectConfig `json:"instana,omitempty"` Lightstep *LightstepDirectConfig `json:"lightstep,omitempty"` NewRelic *NewRelicDirectConfig `json:"newRelic,omitempty"` Pingdom *PingdomDirectConfig `json:"pingdom,omitempty"` Redshift *RedshiftDirectConfig `json:"redshift,omitempty"` Splunk *SplunkDirectConfig `json:"splunk,omitempty"` SplunkObservability *SplunkObservabilityDirectConfig `json:"splunkObservability,omitempty"` SumoLogic *SumoLogicDirectConfig `json:"sumoLogic,omitempty"` ThousandEyes *ThousandEyesDirectConfig `json:"thousandEyes,omitempty"` }
DirectSpec represents content of Spec typical for Direct Object
type DirectStatus ¶
type DirectStatus struct {
DirectType string `json:"directType" example:"Datadog"`
}
DirectStatus represents content of Status optional for Direct Object
type DiscordAlertMethod ¶
type DiscordAlertMethod struct {
URL string `json:"url"` // Field required when AlertMethod is created.
}
DiscordAlertMethod represents a set of properties required to send message to Discord.
type DynatraceAgentConfig ¶
type DynatraceAgentConfig struct {
URL string `json:"url,omitempty"` //nolint: lll
}
DynatraceAgentConfig represents content of Dynatrace Configuration typical for Agent Object.
type DynatraceConfig ¶
type DynatraceConfig struct {
URL string `json:"url,omitempty"` //nolint: lll
}
DynatraceConfig represents content of Dynatrace Configuration typical for DataSource Object.
type DynatraceDirectConfig ¶ added in v0.7.0
type DynatraceDirectConfig struct { URL string `` //nolint: lll /* 128-byte string literal not displayed */ DynatraceToken string `json:"dynatraceToken,omitempty" example:"secret"` }
DynatraceDirectConfig represents content of Dynatrace configuration typical for Direct Object.
type DynatraceMetric ¶
type DynatraceMetric struct {
MetricSelector *string `json:"metricSelector"`
}
DynatraceMetric describes metric from Dynatrace.
type ElasticsearchAgentConfig ¶
type ElasticsearchAgentConfig struct {
URL string `json:"url,omitempty"`
}
ElasticsearchAgentConfig represents content of Elasticsearch Configuration typical for Agent Object.
type ElasticsearchConfig ¶
type ElasticsearchConfig struct {
URL string `json:"url,omitempty"`
}
ElasticsearchConfig represents content of Elasticsearch Configuration typical for DataSource Object.
type ElasticsearchMetric ¶
ElasticsearchMetric describes metric from Elasticsearch.
type EmailAlertMethod ¶
type EmailAlertMethod struct { To []string `json:"to,omitempty"` Cc []string `json:"cc,omitempty"` Bcc []string `json:"bcc,omitempty"` Subject string `json:"subject"` Body string `json:"body"` }
EmailAlertMethod represents a set of properties required to send an email.
type FilterEntry ¶
FilterEntry represents single metric label to be matched against value.
type GCMAgentConfig ¶ added in v0.3.0
type GCMAgentConfig struct { }
GCMAgentConfig represents content of GCM configuration.
type GCMDirectConfig ¶ added in v0.7.0
type GCMDirectConfig struct {
ServiceAccountKey string `json:"serviceAccountKey,omitempty" example:"secret"`
}
GCMDirectConfig represents content of GCM configuration typical for Direct Object.
type GCMMetric ¶ added in v0.3.0
GCMMetric describes metadata used to fetch metrics from Google Cloud Monitoring API.
type GCSDataExportSpec ¶
type GCSDataExportSpec struct {
BucketName string `json:"bucketName"`
}
GCSDataExportSpec represents content of GCP Cloud Storage export type spec.
type GrafanaLokiAgentConfig ¶
type GrafanaLokiAgentConfig struct {
URL string `json:"url,omitempty" example:"example of GrafanaLoki cluster URL"`
}
GrafanaLokiAgentConfig represents content of GrafanaLoki Configuration typical for Agent Object.
type GrafanaLokiMetric ¶
type GrafanaLokiMetric struct {
Logql *string `json:"logql"`
}
GrafanaLokiMetric describes metric from GrafanaLoki.
type GraphiteAgentConfig ¶
type GraphiteAgentConfig struct {
URL string `json:"url,omitempty"`
}
GraphiteAgentConfig represents content of Graphite Configuration typical for Agent Object.
type GraphiteMetric ¶
type GraphiteMetric struct {
MetricPath *string `json:"metricPath"`
}
GraphiteMetric describes metric from Graphite.
type Group ¶ added in v0.8.1
type Group struct { ObjectInternal APIVersion string `json:"apiVersion" validate:"required" example:"n9/v1alpha"` Kind string `json:"kind" validate:"required" example:"kind"` Metadata GroupMetadata `json:"metadata"` Spec GroupSpec `json:"spec"` }
type GroupMetadata ¶ added in v0.8.1
type GroupMetadata struct {
Name string `json:"name" validate:"required,objectName" example:"name"`
}
type HistoricalDataRetrieval ¶ added in v0.7.0
type HistoricalDataRetrieval struct { DefaultDuration HistoricalDataRetrievalDuration `json:"defaultDuration"` MaxDuration HistoricalDataRetrievalDuration `json:"maxDuration"` }
type HistoricalDataRetrievalDuration ¶ added in v0.7.0
type Indicator ¶
type Indicator struct {
MetricSource *MetricSourceSpec `json:"metricSource"`
}
Indicator represents integration with metric source can be. e.g. Prometheus, Datadog, for internal usage
type InfluxDBAgentConfig ¶ added in v0.3.0
type InfluxDBAgentConfig struct {
URL string `json:"url" validate:"required,url"`
}
InfluxDBAgentConfig represents content of InfluxDB configuration typical fo Agent Object.
type InfluxDBDirectConfig ¶ added in v0.7.0
type InfluxDBDirectConfig struct { URL string `json:"url,omitempty"` APIToken string `json:"apiToken,omitempty" example:"secret"` OrganizationID string `json:"organizationID,omitempty" example:"secret"` }
InfluxDBDirectConfig represents content of InfluxDB configuration typical for Direct Object.
type InfluxDBMetric ¶ added in v0.3.0
type InfluxDBMetric struct {
Query *string `json:"query"`
}
InfluxDBMetric describes metric from InfluxDB
type InstanaAgentConfig ¶ added in v0.3.0
type InstanaAgentConfig struct {
URL string `json:"url" validate:"required,url"`
}
InstanaAgentConfig represents content of Instana configuration typical for Agent Object.
type InstanaApplicationMetricGroupBy ¶ added in v0.3.0
type InstanaApplicationMetricType ¶ added in v0.3.0
type InstanaApplicationMetricType struct { MetricID string `json:"metricId"` Aggregation string `json:"aggregation"` GroupBy InstanaApplicationMetricGroupBy `json:"groupBy"` APIQuery string `json:"apiQuery"` IncludeInternal *bool `json:"includeInternal"` IncludeSynthetic *bool `json:"includeSynthetic"` }
InstanaApplicationMetricType describes Application for InstanaMetric.
type InstanaDirectConfig ¶ added in v0.7.0
type InstanaDirectConfig struct { URL string `json:"url,omitempty"` APIToken string `json:"apiToken,omitempty" example:"secret"` }
InstanaDirectConfig represents content of Instana configuration typical for Direct Object.
type InstanaInfrastructureMetricType ¶ added in v0.3.0
type InstanaInfrastructureMetricType struct { MetricRetrievalMethod string `json:"metricRetrievalMethod"` Query *string `json:"query"` SnapshotID *string `json:"snapshotId"` MetricID string `json:"metricId"` PluginID string `json:"pluginId"` }
InstanaInfrastructureMetricType describes Infrastructure for InstanaMetric.
type InstanaMetric ¶ added in v0.3.0
type InstanaMetric struct { MetricType string `json:"metricType"` Infrastructure *InstanaInfrastructureMetricType `json:"infrastructure"` Application *InstanaApplicationMetricType `json:"application"` }
InstanaMetric describes metric from Instana server.
type InstantaneousBurnRateTimeSeries ¶
type InstantaneousBurnRateTimeSeries struct {
InstantaneousBurnRate TimeSeriesData `json:"instantaneousBurnRate,omitempty"`
}
type JiraAlertMethod ¶
type JiraAlertMethod struct { URL string `json:"url"` Username string `json:"username"` APIToken string `json:"apiToken"` // Field required when AlertMethod is created. ProjectKey string `json:"projectKey"` }
JiraAlertMethod represents a set of properties required create tickets in Jira.
type LightstepAgentConfig ¶
type LightstepAgentConfig struct { Organization string `json:"organization,omitempty" example:"LightStep-Play"` Project string `json:"project,omitempty" example:"play"` }
LightstepAgentConfig represents content of Lightstep Configuration typical for Agent Object.
type LightstepConfig ¶
type LightstepConfig struct { Organization string `json:"organization,omitempty" example:"LightStep-Play"` Project string `json:"project,omitempty" example:"play"` }
LightstepConfig represents content of Lightstep Configuration typical for DataSource Object.
type LightstepDirectConfig ¶ added in v0.7.0
type LightstepDirectConfig struct { Organization string `json:"organization,omitempty" example:"LightStep-Play"` Project string `json:"project,omitempty" example:"play"` AppToken string `json:"appToken,omitempty" example:"secret"` }
LightstepDirectConfig represents content of Lightstep configuration typical for Direct Object.
type LightstepMetric ¶
type LightstepMetric struct { StreamID *string `json:"streamId"` TypeOfData *string `json:"typeOfData"` Percentile *float64 `json:"percentile"` UQL *string `json:"uql"` }
LightstepMetric describes metric from Lightstep
type Metadata ¶
type Metadata struct { Name string `json:"name"` DisplayName string `json:"displayName,omitempty"` Project string `json:"project,omitempty"` Labels Labels `json:"labels,omitempty"` }
Metadata represents part of object which is common for all available Objects, for internal usage
type MetadataHolder ¶
type MetadataHolder struct {
Metadata Metadata `json:"metadata"`
}
MetadataHolder is an intermediate structure that can provides metadata related field to other structures
type MetricSourceSpec ¶
type MetricSpec ¶
type MetricSpec struct { AmazonPrometheus *AmazonPrometheusMetric `json:"amazonPrometheus,omitempty"` AppDynamics *AppDynamicsMetric `json:"appDynamics,omitempty"` BigQuery *BigQueryMetric `json:"bigQuery,omitempty"` CloudWatch *CloudWatchMetric `json:"cloudWatch,omitempty"` Datadog *DatadogMetric `json:"datadog,omitempty"` Dynatrace *DynatraceMetric `json:"dynatrace,omitempty"` Elasticsearch *ElasticsearchMetric `json:"elasticsearch,omitempty"` GCM *GCMMetric `json:"gcm,omitempty"` GrafanaLoki *GrafanaLokiMetric `json:"grafanaLoki,omitempty"` Graphite *GraphiteMetric `json:"graphite,omitempty"` InfluxDB *InfluxDBMetric `json:"influxdb,omitempty"` Instana *InstanaMetric `json:"instana,omitempty"` Lightstep *LightstepMetric `json:"lightstep,omitempty"` NewRelic *NewRelicMetric `json:"newRelic,omitempty"` OpenTSDB *OpenTSDBMetric `json:"opentsdb,omitempty"` Pingdom *PingdomMetric `json:"pingdom,omitempty"` Prometheus *PrometheusMetric `json:"prometheus,omitempty"` Redshift *RedshiftMetric `json:"redshift,omitempty"` Splunk *SplunkMetric `json:"splunk,omitempty"` SplunkObservability *SplunkObservabilityMetric `json:"splunkObservability,omitempty"` SumoLogic *SumoLogicMetric `json:"sumoLogic,omitempty"` ThousandEyes *ThousandEyesMetric `json:"thousandEyes,omitempty"` }
MetricSpec defines single time series obtained from data source
type NewRelicAgentConfig ¶
type NewRelicAgentConfig struct {
AccountID json.Number `json:"accountId,omitempty" example:"123654"`
}
NewRelicAgentConfig represents content of NewRelic Configuration typical for Agent Object.
type NewRelicConfig ¶
NewRelicConfig represents content of NewRelic Configuration typical for DataSource Object.
type NewRelicDirectConfig ¶
type NewRelicDirectConfig struct { AccountID json.Number `json:"accountId,omitempty"` InsightsQueryKey string `json:"insightsQueryKey,omitempty" example:"secret"` }
NewRelicDirectConfig represents content of NewRelic configuration typical for Direct Object.
type NewRelicMetric ¶
type NewRelicMetric struct {
NRQL *string `json:"nrql"`
}
NewRelicMetric describes metric from NewRelic
type Object ¶
type Object string
Object represents available objects in API to perform operations
const ( ObjectSLO Object = "SLO" ObjectService Object = "Service" ObjectDataSource Object = "DataSource" ObjectAgent Object = "Agent" ObjectAlertPolicy Object = "AlertPolicy" // ObjectAlert represents object used only to return list of Alerts. Applying and deleting alerts is disabled. ObjectAlert Object = "Alert" // ObjectProject represents object used only to return list of Projects. // Applying and deleting projects is not supported. ObjectProject Object = "Project" ObjectAlertMethod Object = "AlertMethod" // ObjectMetricSource represents ephemeral object used only to return concatenated list of Agents and DataSources. ObjectMetricSource Object = "MetricSource" ObjectDirect Object = "Direct" ObjectDataExport Object = "DataExport" ObjectRoleBinding Object = "RoleBinding" )
List of available objects in API.
func ObjectName ¶
type ObjectGeneric ¶
type ObjectGeneric struct { ObjectHeader Spec json.RawMessage `json:"spec"` }
ObjectGeneric represents struct to which every Object is parsable Specific types of Object have different structures as Spec
type ObjectHeader ¶
type ObjectHeader struct { APIVersion string `json:"apiVersion"` Kind string `json:"kind"` MetadataHolder ObjectInternal }
ObjectHeader represents Header which is common for all available Objects
type ObjectInternal ¶
type ObjectInternal struct { Organization string `json:",omitempty" example:"nobl9-dev"` ManifestSrc string `json:",omitempty" example:"x.yml"` OktaClientID string `json:"-"` // used only by kind Agent }
ObjectInternal represents part of object which is only for internal usage, not exposed to the client, for internal usage
type OpenTSDBAgentConfig ¶
type OpenTSDBAgentConfig struct {
URL string `json:"url,omitempty" example:"example of OpenTSDB cluster URL"`
}
OpenTSDBAgentConfig represents content of OpenTSDB Configuration typical for Agent Object.
type OpenTSDBMetric ¶
type OpenTSDBMetric struct {
Query *string `json:"query"`
}
OpenTSDBMetric describes metric from OpenTSDB.
type Operation ¶
type Operation int
Operation is an enum that represents an operation that can be done over an object kind
func ParseOperation ¶
ParseOperation return Operation matching given string
type OpsgenieAlertMethod ¶
type OpsgenieAlertMethod struct { Auth string `json:"auth"` // Field required when AlertMethod is created. URL string `json:"url"` }
OpsgenieAlertMethod represents a set of properties required to send message to Opsgenie.
type PagerDutyAlertMethod ¶
type PagerDutyAlertMethod struct { IntegrationKey string `json:"integrationKey"` SendResolution *SendResolution `json:"sendResolution,omitempty"` }
PagerDutyAlertMethod represents a set of properties required to open an Incident in PagerDuty.
type Payload ¶
type Payload struct {
// contains filtered or unexported fields
}
func (*Payload) GetObjects ¶
func (p *Payload) GetObjects() []AnyJSONObj
type Percentile ¶
type Percentile struct { P1 TimeSeriesData `json:"p1,omitempty"` P5 TimeSeriesData `json:"p5,omitempty"` P10 TimeSeriesData `json:"p10,omitempty"` P50 TimeSeriesData `json:"p50,omitempty"` P90 TimeSeriesData `json:"p90,omitempty"` P95 TimeSeriesData `json:"p95,omitempty"` P99 TimeSeriesData `json:"p99,omitempty"` }
type PingdomAgentConfig ¶ added in v0.3.0
type PingdomAgentConfig struct { }
PingdomAgentConfig represents content of Pingdom Configuration typical for Agent Object.
type PingdomDirectConfig ¶ added in v0.7.0
type PingdomDirectConfig struct {
APIToken string `json:"apiToken,omitempty" example:"secret"`
}
PingdomDirectConfig represents content of Pingdom configuration typical for Direct Object.
type PingdomMetric ¶ added in v0.3.0
type PingdomMetric struct { CheckID *string `json:"checkId"` CheckType *string `json:"checkType,omitempty"` Status *string `json:"status"` }
PingdomMetric describes metric from Pingdom.
type Project ¶
type Project struct { ObjectInternal APIVersion string `json:"apiVersion"` Kind string `json:"kind"` Metadata ProjectMetadata `json:"metadata"` Spec ProjectSpec `json:"spec"` }
Project struct which mapped one to one with kind: project yaml definition.
type ProjectMetadata ¶
type ProjectSpec ¶
type ProjectSpec struct {
Description string `json:"description"`
}
ProjectSpec represents content of Spec typical for Project Object.
type PrometheusAgentConfig ¶ added in v0.3.0
type PrometheusAgentConfig struct { URL *string `json:"url,omitempty" example:"http://prometheus-service.monitoring:8080"` ServiceDiscovery *PrometheusServiceDiscovery `json:"serviceDiscovery,omitempty"` }
PrometheusAgentConfig represents content of Prometheus Configuration typical for DataSource Object.
type PrometheusDiscoveryRule ¶
type PrometheusDiscoveryRule struct { Discovery string `json:"discovery"` ServiceNamePattern string `json:"serviceNamePattern"` Filter []FilterEntry `json:"filter,omitempty"` }
PrometheusDiscoveryRule provides struct for storing rule for single Service discovery rule from Prometheus.
type PrometheusMetric ¶
type PrometheusMetric struct {
PromQL *string `json:"promql"`
}
PrometheusMetric describes metric from Prometheus server
type PrometheusServiceDiscovery ¶
type PrometheusServiceDiscovery struct { // empty is treated as once, later support 1m, 2d, etc. (for now not validated, skipped) Interval string `json:"interval,omitempty"` Rules []PrometheusDiscoveryRule `json:"rules,omitempty"` }
PrometheusServiceDiscovery provides settings for mechanism of auto Service discovery.
type PublicAlertMethod ¶
type PublicAlertMethod struct { ObjectHeader Spec PublicAlertMethodSpec `json:"spec"` Status *PublicAlertMethodStatus `json:"status,omitempty"` }
PublicAlertMethod represents the configuration required to send a notification to an external service when an alert is triggered.
type PublicAlertMethodSpec ¶
type PublicAlertMethodSpec struct { Description string `json:"description"` Webhook *PublicWebhookAlertMethod `json:"webhook,omitempty"` PagerDuty *PublicPagerDutyAlertMethod `json:"pagerduty,omitempty"` Slack *PublicSlackAlertMethod `json:"slack,omitempty"` Discord *PublicDiscordAlertMethod `json:"discord,omitempty"` Opsgenie *PublicOpsgenieAlertMethod `json:"opsgenie,omitempty"` ServiceNow *PublicServiceNowAlertMethod `json:"servicenow,omitempty"` Jira *PublicJiraAlertMethod `json:"jira,omitempty"` Teams *PublicTeamsAlertMethod `json:"msteams,omitempty"` Email *EmailAlertMethod `json:"email,omitempty"` }
PublicAlertMethodSpec represents content of AlertMethod's Spec without secrets.
type PublicAlertMethodStatus ¶
type PublicAlertMethodStatus struct { LastTestDate string `json:"lastTestDate,omitempty"` NextTestPossibleAt string `json:"nextTestPossibleAt,omitempty"` }
PublicAlertMethodStatus represents content of Status optional for PublicAlertMethod Object
type PublicDiscordAlertMethod ¶
type PublicDiscordAlertMethod struct {
HiddenURL string `json:"url"`
}
PublicDiscordAlertMethod represents a set of properties required to send message to Discord without secrets.
type PublicJiraAlertMethod ¶
type PublicJiraAlertMethod struct { URL string `json:"url"` Username string `json:"username"` ProjectKey string `json:"projectKey"` HiddenAPIToken string `json:"apiToken"` }
PublicJiraAlertMethod represents a set of properties required create tickets in Jira without secrets.
type PublicOpsgenieAlertMethod ¶
PublicOpsgenieAlertMethod represents a set of properties required to send message to Opsgenie without secrets.
type PublicPagerDutyAlertMethod ¶
type PublicPagerDutyAlertMethod struct { HiddenIntegrationKey string `json:"integrationKey"` SendResolution *SendResolution `json:"sendResolution,omitempty"` }
PublicPagerDutyAlertMethod represents a set of properties required to open an Incident in PagerDuty without secrets.
type PublicServiceNowAlertMethod ¶
type PublicServiceNowAlertMethod struct { Username string `json:"username"` InstanceName string `json:"instanceName"` HiddenPassword string `json:"password"` }
PublicServiceNowAlertMethod represents a set of properties required to send message to ServiceNow without secrets.
type PublicSlackAlertMethod ¶
type PublicSlackAlertMethod struct {
HiddenURL string `json:"url"`
}
PublicSlackAlertMethod represents a set of properties required to send message to Slack without secrets.
type PublicTeamsAlertMethod ¶
type PublicTeamsAlertMethod struct {
HiddenURL string `json:"url"`
}
PublicTeamsAlertMethod represents a set of properties required create Microsoft Teams notifications.
type PublicWebhookAlertMethod ¶
type PublicWebhookAlertMethod struct { HiddenURL string `json:"url"` Template *string `json:"template,omitempty"` TemplateFields []string `json:"templateFields,omitempty"` //nolint:lll Headers []WebhookHeader `json:"headers,omitempty"` }
PublicWebhookAlertMethod represents a set of properties required to send a webhook request without secrets.
type QueryDelayDuration ¶ added in v0.8.1
type RawMetricSpec ¶
type RawMetricSpec struct {
MetricQuery *MetricSpec `json:"query" validate:"required"`
}
RawMetricSpec represents integration with a metric source for a particular threshold
type RedshiftAgentConfig ¶ added in v0.3.0
type RedshiftAgentConfig struct { }
RedshiftAgentConfig represents content of Redshift configuration typical for Agent Object.
type RedshiftDirectConfig ¶ added in v0.7.0
type RedshiftDirectConfig struct { AccessKeyID string `json:"accessKeyID,omitempty" example:"secret"` SecretAccessKey string `json:"secretAccessKey,omitempty" example:"secret"` SecretARN string `json:"secretARN,omitempty"` }
RedshiftDirectConfig represents content of Redshift configuration typical for Direct Object.
type RedshiftMetric ¶ added in v0.3.0
type RedshiftMetric struct { Region *string `json:"region"` ClusterID *string `json:"clusterId"` DatabaseName *string `json:"databaseName"` Query *string `json:"query"` }
RedshiftMetric describes metric from Redshift server.
type RoleBinding ¶
type RoleBinding struct { ObjectInternal APIVersion string `json:"apiVersion"` Kind string `json:"kind"` Metadata RoleBindingMetadata `json:"metadata"` Spec RoleBindingSpec `json:"spec"` }
RoleBinding represents relation of User and Role
type RoleBindingMetadata ¶
type RoleBindingMetadata struct {
Name string `json:"name"`
}
type RoleBindingSpec ¶
type S3DataExportSpec ¶
type S3DataExportSpec struct { BucketName string `json:"bucketName"` RoleARN string `json:"roleArn"` //nolint:lll }
S3DataExportSpec represents content of Amazon S3 export type spec.
type SLO ¶
type SLO struct { ObjectHeader Spec SLOSpec `json:"spec"` }
SLO struct which mapped one to one with kind: slo yaml definition, external usage
type SLOHistoryReport ¶
type SLOHistoryReport struct { MetadataHolder TimeWindows []TimeWindowHistoryReport `json:"timewindows,omitempty"` }
type SLOSpec ¶
type SLOSpec struct { Description string `json:"description"` Indicator Indicator `json:"indicator"` BudgetingMethod string `json:"budgetingMethod"` Thresholds []Threshold `json:"objectives"` Service string `json:"service"` TimeWindows []TimeWindow `json:"timeWindows"` AlertPolicies []string `json:"alertPolicies"` Attachments []Attachment `json:"attachments,omitempty"` CreatedAt string `json:"createdAt,omitempty"` Composite *Composite `json:"composite,omitempty"` }
SLOSpec represents content of Spec typical for SLO Object
type SLOTimeSeries ¶
type SLOTimeSeries struct { MetadataHolder TimeWindows []TimeWindowTimeSeries `json:"timewindows,omitempty"` RawSLIPercentilesTimeSeries Percentile `json:"percentiles,omitempty"` }
type SendResolution ¶
type SendResolution struct {
Message *string `json:"message"`
}
SendResolution If user set SendResolution, then “Send a notification after the cooldown period is over"
type Service ¶
type Service struct { ObjectHeader Spec ServiceSpec `json:"spec"` Status ServiceStatus `json:"status"` }
Service struct which mapped one to one with kind: service yaml definition
type ServiceNowAlertMethod ¶
type ServiceNowAlertMethod struct { Username string `json:"username"` Password string `json:"password"` // Field required when AlertMethod is created. InstanceName string `json:"instanceName"` }
ServiceNowAlertMethod represents a set of properties required to send message to ServiceNow.
type ServiceSpec ¶
type ServiceSpec struct {
Description string `json:"description"`
}
ServiceSpec represents content of Spec typical for Service Object
type ServiceStatus ¶
type ServiceStatus struct {
SloCount int `json:"sloCount"`
}
ServiceStatus represents content of Status optional for Service Object
type ServiceWithSLOs ¶
ServiceWithSLOs struct which mapped one to one with kind: service and slo yaml definition
type SlackAlertMethod ¶
type SlackAlertMethod struct {
URL string `json:"url"` // Required when AlertMethod is created.
}
SlackAlertMethod represents a set of properties required to send message to Slack.
type SplunkAgentConfig ¶
type SplunkAgentConfig struct {
URL string `json:"url,omitempty" example:"https://localhost:8089/servicesNS/admin/"`
}
SplunkAgentConfig represents content of Splunk Configuration typical for Agent Object.
type SplunkConfig ¶
type SplunkConfig struct {
URL string `json:"url,omitempty" example:"https://localhost:8089/servicesNS/admin/"`
}
SplunkConfig represents content of Splunk Configuration typical for DataSource Object.
type SplunkDirectConfig ¶ added in v0.7.0
type SplunkDirectConfig struct { URL string `json:"url,omitempty"` AccessToken string `json:"accessToken,omitempty" example:"secret"` }
SplunkDirectConfig represents content of Splunk configuration typical for Direct Object.
type SplunkMetric ¶
type SplunkMetric struct {
Query *string `json:"query"`
}
SplunkMetric describes metric from Splunk
type SplunkObservabilityAgentConfig ¶
type SplunkObservabilityAgentConfig struct {
Realm string `json:"realm,omitempty" example:"us1"`
}
SplunkObservabilityAgentConfig represents content of SplunkObservability Configuration typical for Agent Object.
type SplunkObservabilityDirectConfig ¶
type SplunkObservabilityDirectConfig struct { Realm string `json:"realm,omitempty" example:"us1"` AccessToken string `json:"accessToken,omitempty" example:"secret"` }
SplunkObservabilityDirectConfig represents content of SplunkObservability configuration typical for Direct Object.
type SplunkObservabilityMetric ¶
type SplunkObservabilityMetric struct {
Program *string `json:"program"`
}
SplunkObservabilityMetric describes metric from SplunkObservability
type SumoLogicAgentConfig ¶ added in v0.3.0
type SumoLogicAgentConfig struct {
URL string `json:"url" validate:"required,url"`
}
SumoLogicAgentConfig represents content of Sumo Logic configuration typical for Agent Object.
type SumoLogicDirectConfig ¶ added in v0.7.0
type SumoLogicDirectConfig struct { URL string `json:"url,omitempty"` AccessID string `json:"accessID,omitempty" example:"secret"` AccessKey string `json:"accessKey,omitempty" example:"secret"` }
SumoLogicDirectConfig represents content of SumoLogic configuration typical for Direct Object.
type SumoLogicMetric ¶ added in v0.3.0
type SumoLogicMetric struct { Type *string `json:"type"` Query *string `json:"query"` Quantization *string `json:"quantization"` Rollup *string `json:"rollup"` }
SumoLogicMetric describes metric from SumoLogic server.
type TeamsAlertMethod ¶
type TeamsAlertMethod struct {
URL string `json:"url"`
}
TeamsAlertMethod represents a set of properties required create Microsoft Teams notifications.
type ThousandEyesAgentConfig ¶
type ThousandEyesAgentConfig struct { }
ThousandEyesAgentConfig represents content of ThousandEyes Configuration typical for Agent Object.
type ThousandEyesDirectConfig ¶
type ThousandEyesDirectConfig struct {
OauthBearerToken string `json:"oauthBearerToken,omitempty" example:"secret"`
}
ThousandEyesDirectConfig represents content of ThousandEyes Configuration typical for Direct Object.
type ThousandEyesMetric ¶
ThousandEyesMetric describes metric from ThousandEyes.
type Threshold ¶
type Threshold struct { ThresholdBase // <!-- Go struct field and type names renaming budgetTarget to target has been postponed after GA as requested // in PC-1240. --> BudgetTarget *float64 `json:"target"` // <!-- Go struct field and type names renaming thresholds to objectives has been postponed after GA as requested // in PC-1240. --> TimeSliceTarget *float64 `json:"timeSliceTarget,omitempty" example:"0.9"` CountMetrics *CountMetricsSpec `json:"countMetrics,omitempty"` RawMetric *RawMetricSpec `json:"rawMetric,omitempty"` Operator *string `json:"op,omitempty" example:"lte"` }
Threshold represents single threshold for SLO, for internal usage
type ThresholdBase ¶
type ThresholdBase struct { DisplayName string `json:"displayName"` Value float64 `json:"value"` Name string `json:"name"` }
ThresholdBase base structure representing a threshold
type ThresholdHistoryReport ¶
type ThresholdHistoryReport struct { ThresholdBase BurnDownTimeSeries }
type ThresholdTimeSeries ¶
type ThresholdTimeSeries struct { ThresholdBase InstantaneousBurnRateTimeSeries CumulativeBurnedTimeSeries Status ThresholdTimeSeriesStatus `json:"status"` Operator *string `json:"op,omitempty"` CountsSLITimeSeries BurnDownTimeSeries }
type ThresholdTimeSeriesStatus ¶
type ThresholdTimeSeriesStatus struct { BurnedBudget *float64 `json:"burnedBudget,omitempty" example:"0.25"` RemainingBudget *float64 `json:"errorBudgetRemainingPercentage,omitempty" example:"0.25"` RemainingBudgetDuration *float64 `json:"errorBudgetRemaining,omitempty" example:"300"` InstantaneousBurnRate *float64 `json:"instantaneousBurnRate,omitempty" example:"1.25"` Condition *string `json:"condition,omitempty" example:"ok"` }
type TimeSerie ¶
type TimeSerie int
TimeSerie represents a type of possible time series defined over an object kind
Possible time series that can be retrieved
func ParseToTimeSeries ¶
ParseToTimeSeries converts string to TimeSerie
type TimeSeriesData ¶
type TimeSeriesData [][]interface{}
type TimeWindow ¶
type TimeWindow struct { Unit string `json:"unit"` Count int `json:"count"` IsRolling bool `json:"isRolling" example:"true"` Calendar *Calendar `json:"calendar,omitempty"` // Period is only returned in `/get/slo` requests it is ignored for `/apply` Period *Period `json:"period"` }
TimeWindow represents content of time window
type TimeWindowHistoryReport ¶
type TimeWindowHistoryReport struct { TimeWindow `json:"timewindow,omitempty"` Thresholds []ThresholdHistoryReport `json:"objectives,omitempty"` }
type TimeWindowTimeSeries ¶
type TimeWindowTimeSeries struct { TimeWindow `json:"timewindow,omitempty"` // <!-- Go struct field and type names renaming thresholds to objectives has been postponed after GA as requested // in PC-1240. --> Thresholds []ThresholdTimeSeries `json:"objectives,omitempty"` }
type WebhookAlertMethod ¶
type WebhookAlertMethod struct { URL string `json:"url"` // Field required when AlertMethod is created. Template *string `json:"template,omitempty"` TemplateFields []string `json:"templateFields,omitempty"` //nolint:lll Headers []WebhookHeader `json:"headers,omitempty"` }
WebhookAlertMethod represents a set of properties required to send a webhook request.
type WebhookHeader ¶
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package sdk provide an abstraction for communication with API.
|
Package sdk provide an abstraction for communication with API. |
definitions
Package definitions provides functions for reading, parsing and converting object's definitions.
|
Package definitions provides functions for reading, parsing and converting object's definitions. |