Documentation
¶
Index ¶
- Constants
- Variables
- func CalcApplicationDeploymentSummary(app *Application, checkConfigs CheckConfigs, t timeseries.Time, ...) ([]ApplicationDeploymentSummary, Status)
- func ContainerIdToServiceName(containerId string) string
- func GetConnectionsErrorsSum(connections []*Connection, protocolFilter func(protocol Protocol) bool) *timeseries.TimeSeries
- func GetConnectionsRequestsLatency(connections []*Connection, protocolFilter func(protocol Protocol) bool) *timeseries.TimeSeries
- func GetConnectionsRequestsSum(connections []*Connection, protocolFilter func(protocol Protocol) bool) *timeseries.TimeSeries
- func GuessService(services []string, appId ApplicationId) string
- func IsRequestStatusFailed(status string) bool
- func Quantile(histogram []HistogramBucket, q float32) *timeseries.TimeSeries
- type AWS
- type AWSConfig
- type AlertRule
- type Annotation
- type Application
- func (app *Application) AddReport(name AuditReportName, widgets ...*Widget)
- func (app *Application) ApplicationTypes() map[ApplicationType]bool
- func (app *Application) GetClientsConnections() map[ApplicationId][]*Connection
- func (app *Application) GetInstance(name, node string) *Instance
- func (app *Application) GetOrCreateInstance(name string, node *Node) *Instance
- func (app *Application) IsDotNet() bool
- func (app *Application) IsJvm() bool
- func (app *Application) IsK8s() bool
- func (app *Application) IsMemcached() bool
- func (app *Application) IsMongodb() bool
- func (app *Application) IsMysql() bool
- func (app *Application) IsPostgres() bool
- func (app *Application) IsPython() bool
- func (app *Application) IsRedis() bool
- func (app *Application) IsStandalone() bool
- func (app *Application) Labels() Labels
- func (app *Application) PeriodicJob() bool
- func (app *Application) SLOStatus() Status
- type ApplicationCategory
- type ApplicationDeployment
- type ApplicationDeploymentDetails
- type ApplicationDeploymentNotifications
- type ApplicationDeploymentState
- type ApplicationDeploymentStatus
- type ApplicationDeploymentSummary
- type ApplicationEvent
- type ApplicationEventType
- type ApplicationId
- type ApplicationIncident
- type ApplicationInstrumentation
- type ApplicationKind
- type ApplicationSettings
- type ApplicationSettingsLogs
- type ApplicationSettingsProfiling
- type ApplicationSettingsTracing
- type ApplicationType
- func (at ApplicationType) AuditReport() AuditReportName
- func (at ApplicationType) Icon() string
- func (at ApplicationType) InstrumentationType() ApplicationType
- func (at ApplicationType) IsCredentialsRequired() bool
- func (at ApplicationType) IsDatabase() bool
- func (at ApplicationType) IsLanguage() bool
- func (at ApplicationType) IsQueue() bool
- func (at ApplicationType) Weight() int
- type AuditReport
- func (r *AuditReport) AddWidget(w *Widget) *Widget
- func (r *AuditReport) CreateCheck(cfg CheckConfig) *Check
- func (r *AuditReport) GetOrCreateChart(title string, doc *DocLink) *Chart
- func (r *AuditReport) GetOrCreateChartGroup(title string, doc *DocLink) *ChartGroup
- func (r *AuditReport) GetOrCreateChartInGroup(title string, chartTitle string, doc *DocLink) *Chart
- func (r *AuditReport) GetOrCreateDependencyMap() *DependencyMap
- func (r *AuditReport) GetOrCreateHeatmap(title string) *Heatmap
- func (r *AuditReport) GetOrCreateTable(header ...string) *Table
- type AuditReportName
- type AvailabilitySLI
- type Bandwidth
- type BurnRate
- type Chart
- func (ch *Chart) AddAnnotation(annotations ...Annotation) *Chart
- func (ch *Chart) AddMany(series map[string]SeriesData, topN int, topF timeseries.F) *Chart
- func (ch *Chart) AddSeries(name string, data SeriesData, color ...string) *Chart
- func (ch *Chart) Column() *Chart
- func (ch *Chart) Feature() *Chart
- func (ch *Chart) IsEmpty() bool
- func (ch *Chart) Legend(on bool) *Chart
- func (ch *Chart) PercentilesFrom(histogram []HistogramBucket, percentiles ...float32) *Chart
- func (ch *Chart) SetThreshold(name string, data SeriesData) *Chart
- func (ch *Chart) ShiftColors() *Chart
- func (ch *Chart) Sorted() *Chart
- func (ch *Chart) Stacked() *Chart
- type ChartGroup
- type Check
- func (ch *Check) AddItem(format string, a ...any)
- func (ch *Check) Calc()
- func (ch *Check) Count() int64
- func (ch *Check) Desired() int64
- func (ch *Check) Fire()
- func (ch *Check) Inc(amount int64)
- func (ch *Check) Items() *utils.StringSet
- func (ch *Check) ResetCounter()
- func (ch *Check) SetDesired(desired int64)
- func (ch *Check) SetStatus(status Status, format string, a ...any)
- func (ch *Check) SetValue(v float32)
- func (ch *Check) SetValues(vs *timeseries.TimeSeries)
- func (ch *Check) Value() float32
- func (ch *Check) Values() *timeseries.TimeSeries
- type CheckConfig
- type CheckConfigSLOAvailability
- type CheckConfigSLOLatency
- type CheckConfigSimple
- type CheckConfigs
- func (cc CheckConfigs) GetAvailability(appId ApplicationId) (CheckConfigSLOAvailability, bool)
- func (cc CheckConfigs) GetByCheck(id CheckId) map[ApplicationId][]any
- func (cc CheckConfigs) GetLatency(appId ApplicationId, category ApplicationCategory) (CheckConfigSLOLatency, bool)
- func (cc CheckConfigs) GetSimple(checkId CheckId, appId ApplicationId) CheckConfigSimple
- func (cc CheckConfigs) GetSimpleAll(checkId CheckId, appId ApplicationId) []*CheckConfigSimple
- type CheckContext
- type CheckId
- type CheckType
- type CheckUnit
- type ClusterRole
- type Config
- type ConfigurationHint
- type Connection
- type ConnectionKey
- type Container
- type ContainerStatus
- type Costs
- type Credentials
- type CronJob
- type CustomApplication
- type DNSRequest
- type DaemonSet
- type DataTransferPrice
- type DependencyMap
- type DependencyMapInstance
- type DependencyMapLink
- type DependencyMapNode
- type Deployment
- type DiskStats
- type DocLink
- type DotNet
- type EBS
- type Elasticache
- type FlameGraphNode
- type Heatmap
- type HistogramBucket
- type Icon
- type Indicator
- type Instance
- func (instance *Instance) ApplicationTypes() map[ApplicationType]bool
- func (instance *Instance) ClusterRole() *timeseries.TimeSeries
- func (instance *Instance) ClusterRoleLast() ClusterRole
- func (instance *Instance) GetOrCreateContainer(id, name string) *Container
- func (instance *Instance) InstrumentedType() ApplicationType
- func (instance *Instance) IsFailed() bool
- func (instance *Instance) IsListenActive(ip, port string) bool
- func (instance *Instance) IsObsolete() bool
- func (instance *Instance) IsUp() bool
- func (instance *Instance) LifeSpan() *timeseries.TimeSeries
- func (instance *Instance) NodeId() NodeId
- func (instance *Instance) NodeName() string
- func (instance *Instance) UpAndRunning() *timeseries.TimeSeries
- func (instance *Instance) UpdateClusterRole(role string, v *timeseries.TimeSeries)
- type IntegrationStatus
- type InterfaceStats
- type InternetStartUsageAmountGB
- type Job
- type Jvm
- type LabelLastValue
- type Labels
- type LatencySLI
- type Listen
- type LogEntry
- type LogLevel
- type LogMessages
- type LogPattern
- type LogSource
- type Logs
- type Memcached
- type MetricValues
- type MetricsSnapshot
- type Mongodb
- type Mysql
- type MysqlQueryKey
- type MysqlQueryStat
- type MysqlReplicationStatus
- type MysqlTable
- type MysqlTableIOStats
- type Node
- type NodeContainerId
- type NodeId
- type NodePrice
- type PgConnectionKey
- type PgSetting
- type Pod
- type Postgres
- type Profile
- type ProfileAggregation
- type ProfileCategory
- type ProfileMeta
- type ProfileType
- type Profiling
- type Progress
- type Protocol
- type Python
- type QueryKey
- type QueryStat
- type Rds
- type Redis
- type ReplicaSet
- type RouterLink
- type Series
- type SeriesData
- type SeriesList
- type Service
- type StatefulSet
- type Status
- type Table
- type TableCell
- func (c *TableCell) AddTag(format string, a ...any) *TableCell
- func (c *TableCell) SetChart(ts *timeseries.TimeSeries) *TableCell
- func (c *TableCell) SetEventsCount(count uint64) *TableCell
- func (c *TableCell) SetIcon(name, color string) *TableCell
- func (c *TableCell) SetMaxWidth(w int) *TableCell
- func (c *TableCell) SetProgress(percent int, color string) *TableCell
- func (c *TableCell) SetShortValue(value string) *TableCell
- func (c *TableCell) SetStatus(status Status, msg string) *TableCell
- func (c *TableCell) SetStub(format string, a ...any) *TableCell
- func (c *TableCell) SetUnit(unit string) *TableCell
- func (c *TableCell) SetValue(value string) *TableCell
- func (c *TableCell) UpdateStatus(status Status) *TableCell
- type TableRow
- type Trace
- type TraceErrorsStat
- type TraceSource
- type TraceSpan
- type TraceSpanAttrStats
- type TraceSpanAttrStatsValue
- type TraceSpanDetails
- type TraceSpanEvent
- type TraceSpanStats
- type TraceSpanStatus
- type TraceSpanSummary
- type Tracing
- type Volume
- type Widget
- type World
Constants ¶
View Source
const ( ApplicationDeploymentMetricsSnapshotShift = 10 * timeseries.Minute ApplicationDeploymentMetricsSnapshotWindow = 20 * timeseries.Minute ApplicationDeploymentMinLifetime = ApplicationDeploymentMetricsSnapshotShift + ApplicationDeploymentMetricsSnapshotWindow )
View Source
const ( CheckUnitPercent = "percent" CheckUnitSecond = "second" CheckUnitByte = "byte" CheckUnitSecondsPerSecond = "seconds/second" )
View Source
const ( CloudProviderAWS = "aws" CloudProviderAzure = "azure" )
View Source
const ( ProfileCategoryNone = "" ProfileCategoryCPU = "cpu" ProfileCategoryMemory = "memory" )
Variables ¶
View Source
var ( AlertRules = []AlertRule{ {LongWindow: timeseries.Hour, ShortWindow: 5 * timeseries.Minute, BurnRateThreshold: 14.4, Severity: CRITICAL}, {LongWindow: 6 * timeseries.Hour, ShortWindow: 30 * timeseries.Minute, BurnRateThreshold: 6, Severity: CRITICAL}, {LongWindow: timeseries.Day, ShortWindow: 2 * timeseries.Hour, BurnRateThreshold: 3, Severity: WARNING}, } MaxAlertRuleWindow timeseries.Duration MaxAlertRuleShortWindow timeseries.Duration )
View Source
var (
ApplicationIdZero = ApplicationId{}
)
View Source
var BuiltinCategoryPatterns = map[ApplicationCategory][]string{ ApplicationCategoryApplication: {}, ApplicationCategoryControlPlane: { "kube-system/*", "*/kubelet", "*/kube-apiserver", "*/k3s", "*/k3s-agent", "*/systemd*", "*/containerd", "*/docker*", "*/*chaos-*", "istio-system/*", "amazon-cloudwatch/*", "karpenter/*", "cert-manager/*", "argocd/*", "flux-system/*", "linkerd/*", "vault/*", "keda/*", "keycloak/*", "longhorn-system/*", "calico-system/*", "_/esm-cache", "_/*motd*", "_/*apt*", "_/*fwupd*", "_/snap*", "keptn-system/*", "kyverno/*", "litmus/*", "openshift*/*", "_/crio*", }, ApplicationCategoryMonitoring: { "monitoring/*", "prometheus/*", "*/*prometheus*", "grafana/*", "*/*grafana*", "*/*alertmanager*", "coroot/*", "*/*coroot*", "metrics-server/*", "loki/*", "observability/*", }, }
View Source
var Checks = struct { index map[CheckId]*CheckConfig SLOAvailability CheckConfig SLOLatency CheckConfig CPUNode CheckConfig CPUContainer CheckConfig MemoryOOM CheckConfig MemoryLeakPercent CheckConfig StorageSpace CheckConfig StorageIOLoad CheckConfig NetworkRTT CheckConfig NetworkConnectivity CheckConfig NetworkTCPConnections CheckConfig InstanceAvailability CheckConfig DeploymentStatus CheckConfig InstanceRestarts CheckConfig RedisAvailability CheckConfig RedisLatency CheckConfig MongodbAvailability CheckConfig MongodbReplicationLag CheckConfig MemcachedAvailability CheckConfig PostgresAvailability CheckConfig PostgresLatency CheckConfig PostgresReplicationLag CheckConfig PostgresConnections CheckConfig LogErrors CheckConfig JvmAvailability CheckConfig JvmSafepointTime CheckConfig DotNetAvailability CheckConfig PythonGILWaitingTime CheckConfig DnsLatency CheckConfig DnsServerErrors CheckConfig DnsNxdomainErrors CheckConfig MysqlAvailability CheckConfig MysqlReplicationStatus CheckConfig MysqlReplicationLag CheckConfig MysqlConnections CheckConfig }{ SLOAvailability: CheckConfig{ Type: CheckTypeManual, Title: "Availability", MessageTemplate: `the app is serving errors`, DefaultThreshold: 99, Unit: CheckUnitPercent, ConditionFormatTemplate: "the successful request percentage < <threshold>", }, SLOLatency: CheckConfig{ Type: CheckTypeManual, Title: "Latency", MessageTemplate: `the app is performing slowly`, DefaultThreshold: 99, Unit: CheckUnitPercent, ConditionFormatTemplate: "the percentage of requests served faster than <bucket> < <threshold>", }, CPUNode: CheckConfig{ Type: CheckTypeItemBased, Title: "Node CPU utilization", MessageTemplate: `high CPU utilization of {{.Items "node"}}`, DefaultThreshold: 80, Unit: CheckUnitPercent, ConditionFormatTemplate: "the CPU usage of a node > <threshold>", }, CPUContainer: CheckConfig{ Type: CheckTypeItemBased, Title: "Container CPU utilization", DefaultThreshold: 80, Unit: CheckUnitPercent, MessageTemplate: `high CPU utilization of {{.Items "container"}}`, ConditionFormatTemplate: "the CPU usage of a container > <threshold> of its CPU limit", }, MemoryOOM: CheckConfig{ Type: CheckTypeEventBased, Title: "Out of Memory", DefaultThreshold: 0, MessageTemplate: `app containers have been restarted {{.Count "time"}} by the OOM killer`, ConditionFormatTemplate: "the number of container terminations due to Out of Memory > <threshold>", }, MemoryLeakPercent: CheckConfig{ Type: CheckTypeValueBased, Title: "Memory leak", DefaultThreshold: 10, MessageTemplate: `memory usage is growing by {{.Value}} %% per hour`, ConditionFormatTemplate: "memory usage is growing by > <threshold> % per hour", }, StorageIOLoad: CheckConfig{ Type: CheckTypeItemBased, Title: "Disk I/O load", DefaultThreshold: 5, Unit: CheckUnitSecondsPerSecond, MessageTemplate: `high I/O load of {{.Items "volume"}}`, ConditionFormatTemplate: "the I/O load of a volume > <threshold>", }, StorageSpace: CheckConfig{ Type: CheckTypeItemBased, Title: "Disk space", DefaultThreshold: 80, Unit: CheckUnitPercent, MessageTemplate: `disk space on {{.Items "volume"}} will be exhausted soon`, ConditionFormatTemplate: "the space usage of a volume > <threshold>", }, NetworkRTT: CheckConfig{ Type: CheckTypeItemBased, Title: "Network round-trip time (RTT)", DefaultThreshold: 0.01, Unit: CheckUnitSecond, MessageTemplate: `high network latency to {{.Items "upstream service"}}`, ConditionFormatTemplate: "the RTT to an upstream service > <threshold>", }, NetworkConnectivity: CheckConfig{ Type: CheckTypeItemBased, Title: "Network connectivity", DefaultThreshold: 0, MessageTemplate: `no connectivity with {{.Items "upstream service"}}`, ConditionFormatTemplate: "the number of unavailable upstream services > <threshold>", }, NetworkTCPConnections: CheckConfig{ Type: CheckTypeItemBased, Title: "TCP connections", DefaultThreshold: 0, MessageTemplate: `failed to connect to {{.Items "upstream service"}}`, ConditionFormatTemplate: "the number of upstream services to which the app failed to connect > <threshold>", }, InstanceAvailability: CheckConfig{ Type: CheckTypeManual, Title: "Instance availability", DefaultThreshold: 75, Unit: CheckUnitPercent, MessageTemplate: `{{.ItemsWithToBe "instance"}} unavailable`, ConditionFormatTemplate: "the number of available instances < <threshold> of the desired", }, InstanceRestarts: CheckConfig{ Type: CheckTypeEventBased, Title: "Restarts", DefaultThreshold: 0, MessageTemplate: `app containers have been restarted {{.Count "time"}}`, ConditionFormatTemplate: "the number of container restarts > <threshold>", }, DeploymentStatus: CheckConfig{ Type: CheckTypeValueBased, Title: "Deployment status", DefaultThreshold: 180, Unit: CheckUnitSecond, MessageTemplate: `the rollout has already been in progress for {{.Value}}`, ConditionFormatTemplate: "a rollout is in progress > <threshold>", }, RedisAvailability: CheckConfig{ Type: CheckTypeItemBased, Title: "Redis availability", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithToBe "redis instance"}} unavailable`, ConditionFormatTemplate: "the number of unavailable redis instances > <threshold>", }, RedisLatency: CheckConfig{ Type: CheckTypeItemBased, Title: "Redis latency", DefaultThreshold: 0.005, Unit: CheckUnitSecond, MessageTemplate: `{{.ItemsWithToBe "redis instance"}} performing slowly`, ConditionFormatTemplate: "the average command execution time of a redis instance > <threshold>", }, MongodbAvailability: CheckConfig{ Type: CheckTypeItemBased, Title: "Mongodb availability", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithToBe "mongodb instance"}} unavailable`, ConditionFormatTemplate: "the number of unavailable mongodb instances > <threshold>", }, MongodbReplicationLag: CheckConfig{ Type: CheckTypeItemBased, Title: "Mongodb replication lag", DefaultThreshold: 30, MessageTemplate: `{{.ItemsWithToBe "mongodb replica"}} far behind the primary`, ConditionFormatTemplate: "replication lag > <threshold>", Unit: CheckUnitSecond, }, MemcachedAvailability: CheckConfig{ Type: CheckTypeItemBased, Title: "Memcached availability", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithToBe "memcached instance"}} unavailable`, ConditionFormatTemplate: "the number of unavailable memcached instances > <threshold>", }, PostgresAvailability: CheckConfig{ Type: CheckTypeItemBased, Title: "Postgres availability", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithToBe "postgres instance"}} unavailable`, ConditionFormatTemplate: "the number of unavailable postgres instances > <threshold>", }, PostgresLatency: CheckConfig{ Type: CheckTypeItemBased, Title: "Postgres latency", DefaultThreshold: 0.1, Unit: CheckUnitSecond, MessageTemplate: `{{.ItemsWithToBe "postgres instance"}} performing slowly`, ConditionFormatTemplate: "the average query execution time of a postgres instance > <threshold>", }, PostgresReplicationLag: CheckConfig{ Type: CheckTypeItemBased, Title: "Postgres replication lag", DefaultThreshold: 30, MessageTemplate: `{{.ItemsWithToBe "postgres replica"}} far behind the primary`, ConditionFormatTemplate: "replication lag > <threshold>", Unit: CheckUnitSecond, }, PostgresConnections: CheckConfig{ Type: CheckTypeItemBased, Title: "Postgres connections", DefaultThreshold: 90, MessageTemplate: `{{.ItemsWithHave "postgres instance"}} too many connections`, ConditionFormatTemplate: "the number of connections > <threshold> of `max_connections`", Unit: CheckUnitPercent, }, LogErrors: CheckConfig{ Type: CheckTypeEventBased, Title: "Errors", DefaultThreshold: 0, MessageTemplate: `{{.Count "error"}} occurred`, ConditionFormatTemplate: "the number of messages with the ERROR and CRITICAL severity levels > <threshold>", }, JvmAvailability: CheckConfig{ Type: CheckTypeItemBased, Title: "JVM availability", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithToBe "JVM instance"}} unavailable`, ConditionFormatTemplate: "the number of unavailable JVM instances > <threshold>", }, JvmSafepointTime: CheckConfig{ Type: CheckTypeItemBased, Title: "JVM safepoints", DefaultThreshold: 0.05, MessageTemplate: `high safepoint time on {{.Items "JVM instance"}}`, ConditionFormatTemplate: "the time application have been stopped for safepoint operations > <threshold>", Unit: CheckUnitSecond, }, DotNetAvailability: CheckConfig{ Type: CheckTypeItemBased, Title: ".NET runtime availability", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithToBe ".NET instance"}} unavailable`, ConditionFormatTemplate: "the number of unavailable .NET instances > <threshold>", }, PythonGILWaitingTime: CheckConfig{ Type: CheckTypeItemBased, Title: "Python GIL (Global Interpreter Lock) waiting time", DefaultThreshold: 0.05, MessageTemplate: `high GIL waiting times on {{.Items "Python instance"}}`, ConditionFormatTemplate: "the time Python threads have been waiting for acquiring the GIL (Global Interpreter Lock) > <threshold>", Unit: CheckUnitSecond, }, DnsLatency: CheckConfig{ Type: CheckTypeValueBased, Title: "DNS latency", DefaultThreshold: 0.1, Unit: CheckUnitSecond, MessageTemplate: `high latency`, ConditionFormatTemplate: "the 95th percentile of DNS response times > <threshold>", }, DnsServerErrors: CheckConfig{ Type: CheckTypeEventBased, Title: "DNS server errors", DefaultThreshold: 0, MessageTemplate: `{{.Count "server DNS error"}} occurred`, ConditionFormatTemplate: "the number of server DNS errors (excluding NXDOMAIN) > <threshold>", }, DnsNxdomainErrors: CheckConfig{ Type: CheckTypeEventBased, Title: "DNS NXDOMAIN errors", DefaultThreshold: 0, MessageTemplate: `the app received an empty DNS response {{.Count "time"}}`, ConditionFormatTemplate: "the number of the NXDOMAIN DNS errors (for previously valid requests) > <threshold>", }, MysqlAvailability: CheckConfig{ Type: CheckTypeItemBased, Title: "Mysql availability", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithToBe "mysql instance"}} unavailable`, ConditionFormatTemplate: "the number of unavailable mysql instances > <threshold>", }, MysqlReplicationStatus: CheckConfig{ Type: CheckTypeItemBased, Title: "Mysql replication status", DefaultThreshold: 0, MessageTemplate: `{{.ItemsWithHave "mysql replica"}} issues with IO or SQL replication threads`, ConditionFormatTemplate: "IO or SQL replication thread is not running ", Unit: CheckUnitSecond, }, MysqlReplicationLag: CheckConfig{ Type: CheckTypeItemBased, Title: "Mysql replication lag", DefaultThreshold: 30, MessageTemplate: `{{.ItemsWithToBe "mysql replica"}} far behind the primary`, ConditionFormatTemplate: "replication lag > <threshold>", Unit: CheckUnitSecond, }, MysqlConnections: CheckConfig{ Type: CheckTypeItemBased, Title: "Mysql connections", DefaultThreshold: 90, MessageTemplate: `{{.ItemsWithHave "mysql instance"}} too many connections`, ConditionFormatTemplate: "the number of connections > <threshold> of `max_connections`", Unit: CheckUnitPercent, }, // contains filtered or unexported fields }
View Source
var ( Profiles = map[ProfileType]ProfileMeta{ ProfileTypeEbpfCPU: { Category: ProfileCategoryCPU, Name: "CPU (eBPF)", Aggregation: ProfileAggregationSum, Ebpf: true, }, ProfileTypeGoCPU: { Category: ProfileCategoryCPU, Name: "CPU", Aggregation: ProfileAggregationSum, Featured: true, }, ProfileTypeGoHeapAllocObjects: { Category: ProfileCategoryMemory, Name: "Memory (alloc_objects)", Aggregation: ProfileAggregationSum, }, ProfileTypeGoHeapAllocSpace: { Category: ProfileCategoryMemory, Name: "Memory (alloc_space)", Aggregation: ProfileAggregationSum, }, ProfileTypeGoHeapInuseObjects: { Category: ProfileCategoryMemory, Name: "Memory (inuse_objects)", Aggregation: ProfileAggregationAvg, }, ProfileTypeGoHeapInuseSpace: { Category: ProfileCategoryMemory, Name: "Memory (inuse_space)", Aggregation: ProfileAggregationAvg, Featured: true, }, ProfileTypeGoGoroutines: { Name: "Golang (goroutines)", Aggregation: ProfileAggregationAvg, }, ProfileTypeGoBlockContentions: { Name: "Golang (block_contentions)", Aggregation: ProfileAggregationSum, }, ProfileTypeGoBlockDelay: { Name: "Golang (block_delay)", Aggregation: ProfileAggregationSum, }, ProfileTypeGoMutexContentions: { Name: "Golang (mutex_contentions)", Aggregation: ProfileAggregationSum, }, ProfileTypeGoMutexDelay: { Name: "Golang (mutex_delay)", Aggregation: ProfileAggregationSum, }, } )
Functions ¶
func CalcApplicationDeploymentSummary ¶
func CalcApplicationDeploymentSummary(app *Application, checkConfigs CheckConfigs, t timeseries.Time, curr, prev *MetricsSnapshot) ([]ApplicationDeploymentSummary, Status)
func ContainerIdToServiceName ¶ added in v0.23.0
func GetConnectionsErrorsSum ¶
func GetConnectionsErrorsSum(connections []*Connection, protocolFilter func(protocol Protocol) bool) *timeseries.TimeSeries
func GetConnectionsRequestsLatency ¶
func GetConnectionsRequestsLatency(connections []*Connection, protocolFilter func(protocol Protocol) bool) *timeseries.TimeSeries
func GetConnectionsRequestsSum ¶
func GetConnectionsRequestsSum(connections []*Connection, protocolFilter func(protocol Protocol) bool) *timeseries.TimeSeries
func GuessService ¶ added in v0.27.0
func GuessService(services []string, appId ApplicationId) string
func IsRequestStatusFailed ¶
func Quantile ¶ added in v0.17.12
func Quantile(histogram []HistogramBucket, q float32) *timeseries.TimeSeries
Types ¶
type AWSConfig ¶ added in v1.3.0
type AlertRule ¶
type AlertRule struct {
LongWindow timeseries.Duration
ShortWindow timeseries.Duration
BurnRateThreshold float32
Severity Status
}
type Annotation ¶
type Annotation struct {
Name string `json:"name"`
X1 timeseries.Time `json:"x1"`
X2 timeseries.Time `json:"x2"`
Icon string `json:"icon"`
}
func EventsToAnnotations ¶
func EventsToAnnotations(events []*ApplicationEvent, ctx timeseries.Context) []Annotation
func IncidentsToAnnotations ¶
func IncidentsToAnnotations(incidents []*ApplicationIncident, ctx timeseries.Context) []Annotation
type Application ¶
type Application struct {
Id ApplicationId
Custom bool
Category ApplicationCategory
Instances []*Instance
Downstreams []*Connection
DesiredInstances *timeseries.TimeSeries
LatencySLIs []*LatencySLI
AvailabilitySLIs []*AvailabilitySLI
Events []*ApplicationEvent
Deployments []*ApplicationDeployment
Incidents []*ApplicationIncident
LogMessages map[LogLevel]*LogMessages
Status Status
Reports []*AuditReport
Settings *ApplicationSettings
// contains filtered or unexported fields
}
func NewApplication ¶
func NewApplication(id ApplicationId) *Application
func (*Application) AddReport ¶
func (app *Application) AddReport(name AuditReportName, widgets ...*Widget)
func (*Application) ApplicationTypes ¶ added in v1.0.0
func (app *Application) ApplicationTypes() map[ApplicationType]bool
func (*Application) GetClientsConnections ¶
func (app *Application) GetClientsConnections() map[ApplicationId][]*Connection
func (*Application) GetInstance ¶
func (app *Application) GetInstance(name, node string) *Instance
func (*Application) GetOrCreateInstance ¶
func (app *Application) GetOrCreateInstance(name string, node *Node) *Instance
func (*Application) IsDotNet ¶ added in v0.26.0
func (app *Application) IsDotNet() bool
func (*Application) IsJvm ¶
func (app *Application) IsJvm() bool
func (*Application) IsK8s ¶
func (app *Application) IsK8s() bool
func (*Application) IsMemcached ¶ added in v1.3.0
func (app *Application) IsMemcached() bool
func (*Application) IsMongodb ¶ added in v0.24.0
func (app *Application) IsMongodb() bool
func (*Application) IsMysql ¶ added in v1.3.0
func (app *Application) IsMysql() bool
func (*Application) IsPostgres ¶
func (app *Application) IsPostgres() bool
func (*Application) IsPython ¶ added in v1.3.1
func (app *Application) IsPython() bool
func (*Application) IsRedis ¶
func (app *Application) IsRedis() bool
func (*Application) IsStandalone ¶
func (app *Application) IsStandalone() bool
func (*Application) Labels ¶
func (app *Application) Labels() Labels
func (*Application) PeriodicJob ¶ added in v1.2.1
func (app *Application) PeriodicJob() bool
func (*Application) SLOStatus ¶
func (app *Application) SLOStatus() Status
type ApplicationCategory ¶
type ApplicationCategory string
const ( ApplicationCategoryApplication ApplicationCategory = "application" ApplicationCategoryControlPlane ApplicationCategory = "control-plane" ApplicationCategoryMonitoring ApplicationCategory = "monitoring" )
func CalcApplicationCategory ¶
func CalcApplicationCategory(appId ApplicationId, customPatterns map[ApplicationCategory][]string) ApplicationCategory
func (ApplicationCategory) Auxiliary ¶
func (c ApplicationCategory) Auxiliary() bool
func (ApplicationCategory) Builtin ¶
func (c ApplicationCategory) Builtin() bool
func (ApplicationCategory) ControlPlane ¶ added in v1.0.0
func (c ApplicationCategory) ControlPlane() bool
func (ApplicationCategory) Default ¶
func (c ApplicationCategory) Default() bool
func (ApplicationCategory) Monitoring ¶
func (c ApplicationCategory) Monitoring() bool
type ApplicationDeployment ¶
type ApplicationDeployment struct {
ApplicationId ApplicationId
Name string
StartedAt timeseries.Time
FinishedAt timeseries.Time
Details *ApplicationDeploymentDetails
MetricsSnapshot *MetricsSnapshot
Notifications *ApplicationDeploymentNotifications
}
func (*ApplicationDeployment) Hash ¶
func (d *ApplicationDeployment) Hash() string
func (*ApplicationDeployment) Id ¶
func (d *ApplicationDeployment) Id() string
func (*ApplicationDeployment) Version ¶
func (d *ApplicationDeployment) Version() string
type ApplicationDeploymentDetails ¶
type ApplicationDeploymentDetails struct {
ContainerImages []string `json:"container_images"`
}
type ApplicationDeploymentNotifications ¶
type ApplicationDeploymentNotifications struct {
State ApplicationDeploymentState `json:"state"`
Slack struct {
State ApplicationDeploymentState `json:"state"`
Channel string `json:"channel,omitempty"`
ThreadTs string `json:"thread_ts,omitempty"`
} `json:"slack"`
Teams struct {
State ApplicationDeploymentState `json:"state"`
} `json:"teams"`
Webhook struct {
State ApplicationDeploymentState `json:"state"`
} `json:"webhook"`
}
type ApplicationDeploymentState ¶
type ApplicationDeploymentState int
const ( ApplicationDeploymentStateStarted ApplicationDeploymentState = iota ApplicationDeploymentStateInProgress ApplicationDeploymentStateStuck ApplicationDeploymentStateCancelled ApplicationDeploymentStateDeployed ApplicationDeploymentStateSummary )
type ApplicationDeploymentStatus ¶
type ApplicationDeploymentStatus struct {
Status Status
State ApplicationDeploymentState
Message string
Lifetime timeseries.Duration
Summary []ApplicationDeploymentSummary
Deployment *ApplicationDeployment
Last bool
}
func CalcApplicationDeploymentStatuses ¶
func CalcApplicationDeploymentStatuses(app *Application, checkConfigs CheckConfigs, now timeseries.Time) []ApplicationDeploymentStatus
type ApplicationDeploymentSummary ¶
type ApplicationDeploymentSummary struct {
Report AuditReportName `json:"report"`
Ok bool `json:"ok"`
Message string `json:"message"`
Time timeseries.Time `json:"time"`
}
func (ApplicationDeploymentSummary) Emoji ¶
func (s ApplicationDeploymentSummary) Emoji() string
type ApplicationEvent ¶
type ApplicationEvent struct {
Start timeseries.Time
End timeseries.Time
Type ApplicationEventType
Details string
}
func (*ApplicationEvent) String ¶
func (e *ApplicationEvent) String() string
type ApplicationEventType ¶
type ApplicationEventType int
const ( ApplicationEventTypeSwitchover ApplicationEventType = iota ApplicationEventTypeRollout ApplicationEventTypeInstanceDown ApplicationEventTypeInstanceUp )
type ApplicationId ¶
type ApplicationId struct {
Namespace string
Kind ApplicationKind
Name string
}
func NewApplicationId ¶
func NewApplicationId(ns string, kind ApplicationKind, name string) ApplicationId
func NewApplicationIdFromString ¶
func NewApplicationIdFromString(src string) (ApplicationId, error)
func (ApplicationId) IsZero ¶
func (a ApplicationId) IsZero() bool
func (ApplicationId) MarshalText ¶
func (a ApplicationId) MarshalText() ([]byte, error)
func (*ApplicationId) Scan ¶
func (a *ApplicationId) Scan(src any) error
func (ApplicationId) String ¶
func (a ApplicationId) String() string
func (*ApplicationId) UnmarshalText ¶
func (a *ApplicationId) UnmarshalText(text []byte) error
type ApplicationIncident ¶
type ApplicationIncident struct {
ApplicationId ApplicationId `json:"application_id"`
Key string `json:"key"`
OpenedAt timeseries.Time `json:"opened_at"`
ResolvedAt timeseries.Time `json:"resolved_at"`
Severity Status `json:"severity"`
}
func (*ApplicationIncident) Resolved ¶
func (i *ApplicationIncident) Resolved() bool
type ApplicationInstrumentation ¶ added in v1.3.0
type ApplicationInstrumentation struct {
Type ApplicationType `json:"type"`
Host string `json:"host,omitempty"`
Port string `json:"port"`
Credentials Credentials `json:"credentials"`
Params map[string]string `json:"params"`
Disabled bool `json:"disabled"`
}
func GetDefaultInstrumentation ¶ added in v1.3.0
func GetDefaultInstrumentation(t ApplicationType) *ApplicationInstrumentation
type ApplicationKind ¶
type ApplicationKind string
const ( ApplicationKindDeployment ApplicationKind = "Deployment" ApplicationKindStatefulSet ApplicationKind = "StatefulSet" ApplicationKindDaemonSet ApplicationKind = "DaemonSet" ApplicationKindCronJob ApplicationKind = "CronJob" ApplicationKindJob ApplicationKind = "Job" ApplicationKindReplicaSet ApplicationKind = "ReplicaSet" ApplicationKindPod ApplicationKind = "Pod" ApplicationKindStaticPods ApplicationKind = "StaticPods" ApplicationKindUnknown ApplicationKind = "Unknown" ApplicationKindDockerSwarmService ApplicationKind = "DockerSwarmService" ApplicationKindExternalService ApplicationKind = "ExternalService" ApplicationKindDatabaseCluster ApplicationKind = "DatabaseCluster" ApplicationKindRds ApplicationKind = "RDS" ApplicationKindElasticacheCluster ApplicationKind = "ElasticacheCluster" ApplicationKindNomadJobGroup ApplicationKind = "NomadJobGroup" ApplicationKindArgoWorkflow ApplicationKind = "Workflow" ApplicationKindSparkApplication ApplicationKind = "SparkApplication" )
type ApplicationSettings ¶ added in v1.3.0
type ApplicationSettings struct {
Profiling *ApplicationSettingsProfiling `json:"profiling,omitempty"`
Tracing *ApplicationSettingsTracing `json:"tracing,omitempty"`
Logs *ApplicationSettingsLogs `json:"logs,omitempty"`
Instrumentation map[ApplicationType]*ApplicationInstrumentation `json:"instrumentation,omitempty"`
}
type ApplicationSettingsLogs ¶ added in v1.3.0
type ApplicationSettingsLogs struct {
Service string `json:"service"`
}
type ApplicationSettingsProfiling ¶ added in v1.3.0
type ApplicationSettingsProfiling struct {
Service string `json:"service"`
}
type ApplicationSettingsTracing ¶ added in v1.3.0
type ApplicationSettingsTracing struct {
Service string `json:"service"`
}
type ApplicationType ¶
type ApplicationType string
const ( ApplicationTypeUnknown ApplicationType = "" ApplicationTypePostgres ApplicationType = "postgres" ApplicationTypePgbouncer ApplicationType = "pgbouncer" ApplicationTypeMysql ApplicationType = "mysql" ApplicationTypeCassandra ApplicationType = "cassandra" ApplicationTypeElasticsearch ApplicationType = "elasticsearch" ApplicationTypeMemcached ApplicationType = "memcached" ApplicationTypeRedis ApplicationType = "redis" ApplicationTypeKeyDB ApplicationType = "keydb" ApplicationTypeValkey ApplicationType = "valkey" ApplicationTypeDragonfly ApplicationType = "dragonfly" ApplicationTypeMongodb ApplicationType = "mongodb" ApplicationTypeMongos ApplicationType = "mongos" ApplicationTypeRabbitmq ApplicationType = "rabbitmq" ApplicationTypeKafka ApplicationType = "kafka" ApplicationTypeZookeeper ApplicationType = "zookeeper" ApplicationTypeRDS ApplicationType = "aws-rds" ApplicationTypeElastiCache ApplicationType = "aws-elasticache" ApplicationTypeNats ApplicationType = "nats" ApplicationTypeDotNet ApplicationType = "dotnet" ApplicationTypeGolang ApplicationType = "golang" ApplicationTypePHP ApplicationType = "php" ApplicationTypeJava ApplicationType = "java" ApplicationTypeNodeJS ApplicationType = "nodejs" ApplicationTypePython ApplicationType = "python" ApplicationTypeEnvoy ApplicationType = "envoy" )
func (ApplicationType) AuditReport ¶ added in v1.3.0
func (at ApplicationType) AuditReport() AuditReportName
func (ApplicationType) Icon ¶ added in v1.3.0
func (at ApplicationType) Icon() string
func (ApplicationType) InstrumentationType ¶ added in v1.5.13
func (at ApplicationType) InstrumentationType() ApplicationType
func (ApplicationType) IsCredentialsRequired ¶ added in v1.3.0
func (at ApplicationType) IsCredentialsRequired() bool
func (ApplicationType) IsDatabase ¶
func (at ApplicationType) IsDatabase() bool
func (ApplicationType) IsLanguage ¶ added in v1.3.0
func (at ApplicationType) IsLanguage() bool
func (ApplicationType) IsQueue ¶
func (at ApplicationType) IsQueue() bool
func (ApplicationType) Weight ¶ added in v1.3.0
func (at ApplicationType) Weight() int
type AuditReport ¶
type AuditReport struct {
Name AuditReportName `json:"name"`
Status Status `json:"status"`
Widgets []*Widget `json:"widgets"`
Checks []*Check `json:"checks"`
Custom bool `json:"custom"`
Instrumentation ApplicationType `json:"instrumentation"`
// contains filtered or unexported fields
}
func NewAuditReport ¶
func NewAuditReport(app *Application, ctx timeseries.Context, checkConfigs CheckConfigs, name AuditReportName, detailed bool) *AuditReport
func (*AuditReport) AddWidget ¶ added in v0.20.0
func (r *AuditReport) AddWidget(w *Widget) *Widget
func (*AuditReport) CreateCheck ¶
func (r *AuditReport) CreateCheck(cfg CheckConfig) *Check
func (*AuditReport) GetOrCreateChart ¶
func (r *AuditReport) GetOrCreateChart(title string, doc *DocLink) *Chart
func (*AuditReport) GetOrCreateChartGroup ¶
func (r *AuditReport) GetOrCreateChartGroup(title string, doc *DocLink) *ChartGroup
func (*AuditReport) GetOrCreateChartInGroup ¶
func (r *AuditReport) GetOrCreateChartInGroup(title string, chartTitle string, doc *DocLink) *Chart
func (*AuditReport) GetOrCreateDependencyMap ¶
func (r *AuditReport) GetOrCreateDependencyMap() *DependencyMap
func (*AuditReport) GetOrCreateHeatmap ¶
func (r *AuditReport) GetOrCreateHeatmap(title string) *Heatmap
func (*AuditReport) GetOrCreateTable ¶
func (r *AuditReport) GetOrCreateTable(header ...string) *Table
type AuditReportName ¶
type AuditReportName string
const ( AuditReportSLO AuditReportName = "SLO" AuditReportInstances AuditReportName = "Instances" AuditReportCPU AuditReportName = "CPU" AuditReportMemory AuditReportName = "Memory" AuditReportStorage AuditReportName = "Storage" AuditReportNetwork AuditReportName = "Net" AuditReportDNS AuditReportName = "DNS" AuditReportLogs AuditReportName = "Logs" AuditReportPostgres AuditReportName = "Postgres" AuditReportRedis AuditReportName = "Redis" AuditReportMongodb AuditReportName = "Mongodb" AuditReportMemcached AuditReportName = "Memcached" AuditReportMysql AuditReportName = "Mysql" AuditReportJvm AuditReportName = "JVM" AuditReportDotNet AuditReportName = ".NET" AuditReportPython AuditReportName = "Python" AuditReportNode AuditReportName = "Node" AuditReportDeployments AuditReportName = "Deployments" AuditReportProfiling AuditReportName = "Profiling" AuditReportTracing AuditReportName = "Tracing" )
type AvailabilitySLI ¶
type AvailabilitySLI struct {
Config CheckConfigSLOAvailability
TotalRequests *timeseries.TimeSeries
FailedRequests *timeseries.TimeSeries
TotalRequestsRaw *timeseries.TimeSeries
FailedRequestsRaw *timeseries.TimeSeries
}
type BurnRate ¶
type BurnRate struct {
Value float32
Window timeseries.Duration
Severity Status
}
func (BurnRate) FormatSLOStatus ¶
type Chart ¶
type Chart struct {
Ctx timeseries.Context `json:"ctx"`
Title string `json:"title"`
Series SeriesList `json:"series"`
Threshold *Series `json:"threshold"`
Featured bool `json:"featured"`
IsStacked bool `json:"stacked"`
IsSorted bool `json:"sorted"`
IsColumn bool `json:"column"`
ColorShift int `json:"color_shift"`
Annotations []Annotation `json:"annotations"`
DrillDownLink *RouterLink `json:"drill_down_link"`
HideLegend bool `json:"hide_legend"`
}
func (*Chart) AddAnnotation ¶
func (ch *Chart) AddAnnotation(annotations ...Annotation) *Chart
func (*Chart) AddMany ¶
func (ch *Chart) AddMany(series map[string]SeriesData, topN int, topF timeseries.F) *Chart
func (*Chart) AddSeries ¶
func (ch *Chart) AddSeries(name string, data SeriesData, color ...string) *Chart
func (*Chart) PercentilesFrom ¶ added in v0.17.12
func (ch *Chart) PercentilesFrom(histogram []HistogramBucket, percentiles ...float32) *Chart
func (*Chart) SetThreshold ¶
func (ch *Chart) SetThreshold(name string, data SeriesData) *Chart
func (*Chart) ShiftColors ¶
type ChartGroup ¶
type ChartGroup struct {
Title string `json:"title"`
Charts []*Chart `json:"charts"`
// contains filtered or unexported fields
}
func NewChartGroup ¶ added in v0.22.0
func NewChartGroup(ctx timeseries.Context, title string) *ChartGroup
func (*ChartGroup) GetOrCreateChart ¶
func (cg *ChartGroup) GetOrCreateChart(title string) *Chart
func (*ChartGroup) MarshalJSON ¶
func (cg *ChartGroup) MarshalJSON() ([]byte, error)
type Check ¶
type Check struct {
Id CheckId `json:"id"`
Title string `json:"title"`
Status Status `json:"status"`
Message string `json:"message"`
Threshold float32 `json:"threshold"`
Unit CheckUnit `json:"unit"`
ConditionFormatTemplate string `json:"condition_format_template"`
// contains filtered or unexported fields
}
func (*Check) ResetCounter ¶ added in v1.5.9
func (ch *Check) ResetCounter()
func (*Check) SetDesired ¶ added in v0.21.0
func (*Check) SetValues ¶ added in v0.21.0
func (ch *Check) SetValues(vs *timeseries.TimeSeries)
func (*Check) Values ¶ added in v0.21.0
func (ch *Check) Values() *timeseries.TimeSeries
type CheckConfig ¶
type CheckConfigSLOAvailability ¶
type CheckConfigSLOAvailability struct {
Custom bool `json:"custom"`
TotalRequestsQuery string `json:"total_requests_query"`
FailedRequestsQuery string `json:"failed_requests_query"`
ObjectivePercentage float32 `json:"objective_percentage"`
}
func (*CheckConfigSLOAvailability) Failed ¶
func (cfg *CheckConfigSLOAvailability) Failed() string
func (*CheckConfigSLOAvailability) Total ¶
func (cfg *CheckConfigSLOAvailability) Total() string
type CheckConfigSLOLatency ¶
type CheckConfigSLOLatency struct {
Custom bool `json:"custom"`
HistogramQuery string `json:"histogram_query"`
ObjectiveBucket float32 `json:"objective_bucket"`
ObjectivePercentage float32 `json:"objective_percentage"`
}
func (*CheckConfigSLOLatency) Histogram ¶
func (cfg *CheckConfigSLOLatency) Histogram() string
type CheckConfigSimple ¶
type CheckConfigSimple struct {
Threshold float32 `json:"threshold"`
}
type CheckConfigs ¶
type CheckConfigs map[ApplicationId]map[CheckId]json.RawMessage
func (CheckConfigs) GetAvailability ¶
func (cc CheckConfigs) GetAvailability(appId ApplicationId) (CheckConfigSLOAvailability, bool)
func (CheckConfigs) GetByCheck ¶
func (cc CheckConfigs) GetByCheck(id CheckId) map[ApplicationId][]any
func (CheckConfigs) GetLatency ¶
func (cc CheckConfigs) GetLatency(appId ApplicationId, category ApplicationCategory) (CheckConfigSLOLatency, bool)
func (CheckConfigs) GetSimple ¶
func (cc CheckConfigs) GetSimple(checkId CheckId, appId ApplicationId) CheckConfigSimple
func (CheckConfigs) GetSimpleAll ¶
func (cc CheckConfigs) GetSimpleAll(checkId CheckId, appId ApplicationId) []*CheckConfigSimple
type CheckContext ¶
type CheckContext struct {
// contains filtered or unexported fields
}
func (CheckContext) Count ¶
func (c CheckContext) Count(singular string) string
func (CheckContext) Items ¶
func (c CheckContext) Items(singular string) string
func (CheckContext) ItemsWithHave ¶
func (c CheckContext) ItemsWithHave(singular string) string
func (CheckContext) ItemsWithToBe ¶
func (c CheckContext) ItemsWithToBe(singular string) string
func (CheckContext) Value ¶
func (c CheckContext) Value() string
type ClusterRole ¶
type ClusterRole int
const ( ClusterRoleNone ClusterRole = iota ClusterRolePrimary ClusterRoleReplica ClusterRoleArbiter )
func (ClusterRole) String ¶
func (r ClusterRole) String() string
type Config ¶ added in v1.3.0
type Config struct {
ApplicationInstrumentation []ApplicationInstrumentation `json:"application_instrumentation"`
AWSConfig *AWSConfig `json:"aws_config"`
}
type ConfigurationHint ¶ added in v1.0.0
type Connection ¶
type Connection struct {
ActualRemotePort string
ActualRemoteIP string
Instance *Instance
RemoteInstance *Instance
Container string
Rtt *timeseries.TimeSeries
SuccessfulConnections *timeseries.TimeSeries
Active *timeseries.TimeSeries
FailedConnections *timeseries.TimeSeries
ConnectionTime *timeseries.TimeSeries
BytesSent *timeseries.TimeSeries
BytesReceived *timeseries.TimeSeries
Retransmissions *timeseries.TimeSeries
RequestsCount map[Protocol]map[string]*timeseries.TimeSeries // by status
RequestsLatency map[Protocol]*timeseries.TimeSeries
RequestsHistogram map[Protocol]map[float32]*timeseries.TimeSeries // by le
Service *Service
RemoteApplication *Application
ServiceRemoteIP string
ServiceRemotePort string
}
func (*Connection) HasConnectivityIssues ¶ added in v0.29.5
func (c *Connection) HasConnectivityIssues() bool
func (*Connection) HasFailedConnectionAttempts ¶ added in v0.29.5
func (c *Connection) HasFailedConnectionAttempts() bool
func (*Connection) IsActual ¶
func (c *Connection) IsActual() bool
func (*Connection) IsEmpty ¶ added in v0.25.1
func (c *Connection) IsEmpty() bool
func (*Connection) IsObsolete ¶
func (c *Connection) IsObsolete() bool
func (*Connection) Status ¶
func (c *Connection) Status() (Status, string)
type ConnectionKey ¶ added in v1.5.12
type Container ¶
type Container struct {
Id string
Name string
InitContainer bool
ApplicationTypes map[ApplicationType]bool
Image string
PeriodicSystemdJob bool
Status ContainerStatus
Reason string
Ready bool
Restarts *timeseries.TimeSeries
LastTerminatedReason string
CpuLimit *timeseries.TimeSeries
CpuRequest *timeseries.TimeSeries
CpuUsage *timeseries.TimeSeries
CpuDelay *timeseries.TimeSeries
ThrottledTime *timeseries.TimeSeries
MemoryRss *timeseries.TimeSeries
MemoryRssForTrend *timeseries.TimeSeries
MemoryCache *timeseries.TimeSeries
MemoryLimit *timeseries.TimeSeries
MemoryRequest *timeseries.TimeSeries
OOMKills *timeseries.TimeSeries
DNSRequests map[DNSRequest]map[string]*timeseries.TimeSeries
DNSRequestsHistogram map[float32]*timeseries.TimeSeries
}
func NewContainer ¶
type ContainerStatus ¶
type ContainerStatus string
const ( ContainerStatusWaiting ContainerStatus = "waiting" ContainerStatusRunning ContainerStatus = "running" ContainerStatusTerminated ContainerStatus = "terminated" )
type Costs ¶
type Costs struct {
CPUUsagePerHour float32
CPURequestPerHour float32
MemoryUsagePerHour float32
MemoryRequestPerHour float32
}
func (*Costs) CPURequestPerMonth ¶
func (*Costs) CPUUsagePerMonth ¶
func (*Costs) MemoryRequestPerMonth ¶
func (*Costs) MemoryUsagePerMonth ¶
func (*Costs) RequestPerMonth ¶
func (*Costs) UsagePerMonth ¶
type Credentials ¶ added in v1.3.0
type CronJob ¶
type CronJob struct {
Schedule LabelLastValue
ConcurrencyPolicy LabelLastValue
StatusActive *timeseries.TimeSeries
LastScheduleTime *timeseries.TimeSeries
NextScheduleTime *timeseries.TimeSeries
}
type CustomApplication ¶ added in v1.4.0
type CustomApplication struct {
InstancePattens []string `json:"instance_pattens"`
}
type DNSRequest ¶ added in v1.1.0
type DaemonSet ¶
type DaemonSet struct {
ReplicasDesired *timeseries.TimeSeries
}
type DataTransferPrice ¶ added in v1.4.1
type DataTransferPrice struct {
InterZoneIngressPerGB float32
InterZoneEgressPerGB float32
InternetPerGB map[InternetStartUsageAmountGB]float32
}
func (*DataTransferPrice) GetInternetEgressPrice ¶ added in v1.4.1
func (dtp *DataTransferPrice) GetInternetEgressPrice() float32
type DependencyMap ¶
type DependencyMap struct {
Nodes []*DependencyMapNode `json:"nodes"`
Links []*DependencyMapLink `json:"links"`
}
func (*DependencyMap) GetOrCreateNode ¶
func (m *DependencyMap) GetOrCreateNode(node DependencyMapNode) *DependencyMapNode
func (*DependencyMap) UpdateLink ¶
func (m *DependencyMap) UpdateLink(src DependencyMapInstance, sNode DependencyMapNode, dst DependencyMapInstance, dNode DependencyMapNode, linkStatus Status)
type DependencyMapInstance ¶
type DependencyMapLink ¶
type DependencyMapNode ¶
type DependencyMapNode struct {
Name string `json:"name"`
Provider string `json:"provider"`
Region string `json:"region"`
AZ string `json:"az"`
SrcInstances []DependencyMapInstance `json:"src_instances"`
DstInstances []DependencyMapInstance `json:"dst_instances"`
}
func (*DependencyMapNode) AddDstInstance ¶
func (n *DependencyMapNode) AddDstInstance(i DependencyMapInstance)
func (*DependencyMapNode) AddSrcInstance ¶
func (n *DependencyMapNode) AddSrcInstance(i DependencyMapInstance)
type Deployment ¶
type Deployment struct {
ReplicasDesired *timeseries.TimeSeries
ReplicaSets map[string]*ReplicaSet
}
type DiskStats ¶
type DiskStats struct {
IOUtilizationPercent *timeseries.TimeSeries
ReadOps *timeseries.TimeSeries
WriteOps *timeseries.TimeSeries
WrittenBytes *timeseries.TimeSeries
ReadBytes *timeseries.TimeSeries
ReadTime *timeseries.TimeSeries
WriteTime *timeseries.TimeSeries
Wait *timeseries.TimeSeries
Await *timeseries.TimeSeries
}
type DocLink ¶ added in v0.28.2
type DocLink struct {
Group string `json:"group"`
Item string `json:"item"`
Hash string `json:"hash"`
}
func NewDocLink ¶ added in v0.28.2
type DotNet ¶ added in v0.26.0
type DotNet struct {
RuntimeVersion LabelLastValue
Up *timeseries.TimeSeries
Exceptions *timeseries.TimeSeries
MemoryAllocationRate *timeseries.TimeSeries
HeapSize map[string]*timeseries.TimeSeries
HeapFragmentationPercent *timeseries.TimeSeries
GcCount map[string]*timeseries.TimeSeries
MonitorLockContentions *timeseries.TimeSeries
ThreadPoolCompletedItems *timeseries.TimeSeries
ThreadPoolQueueSize *timeseries.TimeSeries
ThreadPoolSize *timeseries.TimeSeries
}
type EBS ¶
type EBS struct {
AllocatedGibs *timeseries.TimeSeries
StorageType LabelLastValue
ProvisionedIOPS *timeseries.TimeSeries
VolumeId string
}
type Elasticache ¶ added in v0.17.5
type Elasticache struct {
Status LabelLastValue
Engine LabelLastValue
EngineVersion LabelLastValue
LifeSpan *timeseries.TimeSeries
}
func (*Elasticache) ApplicationType ¶ added in v1.3.0
func (e *Elasticache) ApplicationType() ApplicationType
type FlameGraphNode ¶ added in v0.27.0
type FlameGraphNode struct {
Name string `json:"name"`
Total int64 `json:"total"`
Self int64 `json:"self"`
Comp int64 `json:"comp"`
Children []*FlameGraphNode `json:"children"`
ColorBy string `json:"color_by"`
Data map[string]string `json:"data"`
}
func (*FlameGraphNode) Diff ¶ added in v1.0.0
func (n *FlameGraphNode) Diff(comparison *FlameGraphNode)
func (*FlameGraphNode) Insert ¶ added in v0.27.0
func (n *FlameGraphNode) Insert(name string) *FlameGraphNode
func (*FlameGraphNode) InsertStack ¶ added in v0.27.0
func (n *FlameGraphNode) InsertStack(stack []string, value int64, comp *int64)
type Heatmap ¶
type Heatmap struct {
Ctx timeseries.Context `json:"ctx"`
Title string `json:"title"`
Series SeriesList `json:"series"`
Annotations []Annotation `json:"annotations"`
DrillDownLink *RouterLink `json:"drill_down_link"`
}
func NewHeatmap ¶
func NewHeatmap(ctx timeseries.Context, title string) *Heatmap
func (*Heatmap) AddAnnotation ¶
func (hm *Heatmap) AddAnnotation(annotations ...Annotation) *Heatmap
type HistogramBucket ¶
type HistogramBucket struct {
Le float32
TimeSeries *timeseries.TimeSeries
}
type Indicator ¶
func CalcIndicators ¶
func CalcIndicators(app *Application) []Indicator
type Instance ¶
type Instance struct {
Name string
Owner *Application
Node *Node
Pod *Pod
Rds *Rds
Elasticache *Elasticache
Jvms map[string]*Jvm
DotNet map[string]*DotNet
Python *Python
Volumes []*Volume
Upstreams map[ConnectionKey]*Connection
TcpListens map[Listen]bool
Containers map[string]*Container
ClusterName LabelLastValue
ClusterComponent *Application
Postgres *Postgres
Redis *Redis
Mongodb *Mongodb
Memcached *Memcached
Mysql *Mysql
// contains filtered or unexported fields
}
func NewInstance ¶
func NewInstance(name string, owner *Application) *Instance
func (*Instance) ApplicationTypes ¶
func (instance *Instance) ApplicationTypes() map[ApplicationType]bool
func (*Instance) ClusterRole ¶
func (instance *Instance) ClusterRole() *timeseries.TimeSeries
func (*Instance) ClusterRoleLast ¶
func (instance *Instance) ClusterRoleLast() ClusterRole
func (*Instance) GetOrCreateContainer ¶
func (*Instance) InstrumentedType ¶
func (instance *Instance) InstrumentedType() ApplicationType
func (*Instance) IsListenActive ¶
func (*Instance) IsObsolete ¶
func (*Instance) LifeSpan ¶
func (instance *Instance) LifeSpan() *timeseries.TimeSeries
func (*Instance) UpAndRunning ¶
func (instance *Instance) UpAndRunning() *timeseries.TimeSeries
func (*Instance) UpdateClusterRole ¶
func (instance *Instance) UpdateClusterRole(role string, v *timeseries.TimeSeries)
type IntegrationStatus ¶
type InterfaceStats ¶
type InterfaceStats struct {
Name string
Addresses []string
Up *timeseries.TimeSeries
RxBytes *timeseries.TimeSeries
TxBytes *timeseries.TimeSeries
}
type InternetStartUsageAmountGB ¶ added in v1.4.1
type InternetStartUsageAmountGB int64
type Jvm ¶
type Jvm struct {
JavaVersion LabelLastValue
HeapSize *timeseries.TimeSeries
HeapUsed *timeseries.TimeSeries
SafepointTime *timeseries.TimeSeries
SafepointSyncTime *timeseries.TimeSeries
GcTime map[string]*timeseries.TimeSeries
}
type LabelLastValue ¶
type LabelLastValue struct {
// contains filtered or unexported fields
}
func (LabelLastValue) MarshalJSON ¶
func (lv LabelLastValue) MarshalJSON() ([]byte, error)
func (*LabelLastValue) Update ¶
func (lv *LabelLastValue) Update(ts *timeseries.TimeSeries, value string)
func (LabelLastValue) Value ¶
func (lv LabelLastValue) Value() string
type LatencySLI ¶
type LatencySLI struct {
Config CheckConfigSLOLatency
Histogram []HistogramBucket
HistogramRaw []HistogramBucket
}
func (*LatencySLI) GetTotalAndFast ¶
func (sli *LatencySLI) GetTotalAndFast(raw bool) (*timeseries.TimeSeries, *timeseries.TimeSeries)
type LogMessages ¶ added in v0.20.0
type LogMessages struct {
Messages *timeseries.TimeSeries
Patterns map[string]*LogPattern
}
type LogPattern ¶
type LogPattern struct {
Pattern *logparser.Pattern
Sample string
Multiline bool
Messages *timeseries.TimeSeries
SimilarPatternHashes *utils.StringSet
}
type Logs ¶ added in v0.20.0
type Logs struct {
ApplicationId ApplicationId `json:"application_id"`
Check *Check `json:"check"`
}
type Memcached ¶ added in v1.3.0
type Memcached struct {
InternalExporter bool
Up *timeseries.TimeSeries
Version LabelLastValue
Calls map[string]*timeseries.TimeSeries
Hits *timeseries.TimeSeries
Misses *timeseries.TimeSeries
LimitBytes *timeseries.TimeSeries
EvictedItems *timeseries.TimeSeries
}
func NewMemcached ¶ added in v1.3.0
type MetricValues ¶
type MetricValues struct {
Labels Labels
LabelsHash uint64
Values *timeseries.TimeSeries
NodeContainerId
}
type MetricsSnapshot ¶
type MetricsSnapshot struct {
Timestamp timeseries.Time `json:"timestamp"`
Duration timeseries.Duration `json:"duration"`
Requests int64 `json:"requests"`
Errors int64 `json:"errors"`
Latency map[string]int64 `json:"latency"`
Restarts int64 `json:"restarts"`
CPUUsage float32 `json:"cpu_usage"`
MemoryLeakPercent float32 `json:"memory_leak_percent"`
MemoryUsage int64 `json:"memory_usage"`
OOMKills int64 `json:"oom_kills"`
LogErrors int64 `json:"log_errors"`
LogWarnings int64 `json:"log_warnings"`
}
type Mongodb ¶ added in v0.24.0
type Mongodb struct {
InternalExporter bool
Up *timeseries.TimeSeries
Error LabelLastValue
Warning LabelLastValue
ReplicaSet LabelLastValue
State LabelLastValue
Version LabelLastValue
LastApplied *timeseries.TimeSeries
}
func NewMongodb ¶ added in v0.24.0
type Mysql ¶ added in v1.3.0
type Mysql struct {
InternalExporter bool
Up *timeseries.TimeSeries
ServerUUID LabelLastValue
Error LabelLastValue
Warning LabelLastValue
Version LabelLastValue
PerQuery map[MysqlQueryKey]*MysqlQueryStat
ReplicationSourceUUID LabelLastValue
ReplicationIOStatus *MysqlReplicationStatus
ReplicationSQLStatus *MysqlReplicationStatus
ReplicationLagSeconds *timeseries.TimeSeries
ConnectionsMax *timeseries.TimeSeries
ConnectionsCurrent *timeseries.TimeSeries
ConnectionsNew *timeseries.TimeSeries
ConnectionsAborted *timeseries.TimeSeries
BytesSent *timeseries.TimeSeries
BytesReceived *timeseries.TimeSeries
Queries *timeseries.TimeSeries
SlowQueries *timeseries.TimeSeries
TablesIOTime map[MysqlTable]*MysqlTableIOStats
}
type MysqlQueryKey ¶ added in v1.3.0
func (MysqlQueryKey) String ¶ added in v1.3.0
func (k MysqlQueryKey) String() string
type MysqlQueryStat ¶ added in v1.3.0
type MysqlQueryStat struct {
Calls *timeseries.TimeSeries
TotalTime *timeseries.TimeSeries
LockTime *timeseries.TimeSeries
}
type MysqlReplicationStatus ¶ added in v1.3.0
type MysqlReplicationStatus struct {
LastError LabelLastValue
LastState LabelLastValue
Status *timeseries.TimeSeries
}
type MysqlTable ¶ added in v1.3.0
func (MysqlTable) String ¶ added in v1.3.0
func (k MysqlTable) String() string
type MysqlTableIOStats ¶ added in v1.3.0
type MysqlTableIOStats struct {
ReadTimePerSecond *timeseries.TimeSeries
WriteTimePerSecond *timeseries.TimeSeries
}
type Node ¶
type Node struct {
AgentVersion LabelLastValue
KernelVersion LabelLastValue
Name LabelLastValue
K8sName LabelLastValue
Id NodeId
Uptime *timeseries.TimeSeries
CpuCapacity *timeseries.TimeSeries
CpuUsagePercent *timeseries.TimeSeries
CpuUsageByMode map[string]*timeseries.TimeSeries
MemoryTotalBytes *timeseries.TimeSeries
MemoryFreeBytes *timeseries.TimeSeries
MemoryAvailableBytes *timeseries.TimeSeries
MemoryCachedBytes *timeseries.TimeSeries
Disks map[string]*DiskStats
NetInterfaces []*InterfaceStats
Instances []*Instance `json:"-"`
CloudProvider LabelLastValue
Region LabelLastValue
AvailabilityZone LabelLastValue
InstanceType LabelLastValue
InstanceLifeCycle LabelLastValue
Fargate bool
Price *NodePrice
DataTransferPrice *DataTransferPrice
}
func (*Node) IsAgentInstalled ¶ added in v0.22.0
type NodeContainerId ¶ added in v1.5.0
type NodeId ¶ added in v1.0.7
func NewNodeIdFromLabels ¶ added in v1.0.7
func NewNodeIdFromLabels(mv MetricValues) NodeId
type PgConnectionKey ¶
type PgConnectionKey struct {
Db string
User string
State string
Query string
WaitEventType string
}
func (PgConnectionKey) String ¶
func (k PgConnectionKey) String() string
type PgSetting ¶
type PgSetting struct {
Samples *timeseries.TimeSeries
Unit string
}
type Pod ¶
type Pod struct {
Phase string
Reason string
Scheduled bool
Running *timeseries.TimeSeries
Ready *timeseries.TimeSeries
LifeSpan *timeseries.TimeSeries
ReplicaSet string
InitContainers map[string]*Container
}
func (*Pod) IsObsolete ¶
func (*Pod) IsSucceeded ¶ added in v1.2.0
type Postgres ¶
type Postgres struct {
InternalExporter bool
Up *timeseries.TimeSeries
Error LabelLastValue
Warning LabelLastValue
Version LabelLastValue
Connections map[PgConnectionKey]*timeseries.TimeSeries
AwaitingQueriesByLockingQuery map[QueryKey]*timeseries.TimeSeries
Settings map[string]PgSetting
PerQuery map[QueryKey]*QueryStat
QueriesByDB map[string]*timeseries.TimeSeries
Avg *timeseries.TimeSeries
P50 *timeseries.TimeSeries
P95 *timeseries.TimeSeries
P99 *timeseries.TimeSeries
WalCurrentLsn *timeseries.TimeSeries
WalReceiveLsn *timeseries.TimeSeries
WalReplayLsn *timeseries.TimeSeries
}
func NewPostgres ¶
func (*Postgres) Unavailability ¶
func (p *Postgres) Unavailability() *timeseries.TimeSeries
type Profile ¶
type Profile struct {
Type ProfileType `json:"type"`
FlameGraph *FlameGraphNode `json:"flamegraph"`
Diff bool `json:"diff"`
}
type ProfileAggregation ¶ added in v0.27.0
type ProfileAggregation string
const ( ProfileAggregationSum ProfileAggregation = "sum" ProfileAggregationAvg ProfileAggregation = "avg" )
type ProfileCategory ¶ added in v0.27.0
type ProfileCategory string
type ProfileMeta ¶ added in v0.27.0
type ProfileMeta struct {
Category ProfileCategory
Name string
Aggregation ProfileAggregation
Featured bool
Ebpf bool
}
type ProfileType ¶ added in v0.27.0
type ProfileType string
const ( ProfileTypeEbpfCPU ProfileType = "ebpf:cpu:nanoseconds" ProfileTypeGoCPU ProfileType = "go:profile_cpu:nanoseconds" ProfileTypeGoHeapAllocObjects ProfileType = "go:heap_alloc_objects:count" ProfileTypeGoHeapAllocSpace ProfileType = "go:heap_alloc_space:bytes" ProfileTypeGoHeapInuseObjects ProfileType = "go:heap_inuse_objects:count" ProfileTypeGoHeapInuseSpace ProfileType = "go:heap_inuse_space:bytes" ProfileTypeGoGoroutines ProfileType = "go:goroutine_goroutine:count" ProfileTypeGoBlockContentions ProfileType = "go:block_contentions:count" ProfileTypeGoBlockDelay ProfileType = "go:block_delay:nanoseconds" ProfileTypeGoMutexContentions ProfileType = "go:mutex_contentions:count" ProfileTypeGoMutexDelay ProfileType = "go:mutex_delay:nanoseconds" )
type Profiling ¶ added in v0.27.0
type Profiling struct {
ApplicationId ApplicationId `json:"application_id"`
}
type Protocol ¶
type Protocol string
const ( ProtocolHttp Protocol = "http" ProtocolPostgres Protocol = "postgres" ProtocolMongodb Protocol = "mongo" ProtocolRedis Protocol = "redis" ProtocolMysql Protocol = "mysql" ProtocolMemcached Protocol = "memcached" ProtocolKafka Protocol = "kafka" ProtocolCassandra Protocol = "cassandra" ProtocolRabbitmq Protocol = "rabbitmq" ProtocolNats Protocol = "nats" ProtocolClickhouse Protocol = "clickhouse" ProtocolZookeeper Protocol = "zookeeper" )
func (Protocol) ToApplicationType ¶ added in v1.3.0
func (p Protocol) ToApplicationType() ApplicationType
type Python ¶ added in v1.3.1
type Python struct {
GILWaitTime *timeseries.TimeSeries
}
type QueryStat ¶
type QueryStat struct {
Calls *timeseries.TimeSeries
TotalTime *timeseries.TimeSeries
IoTime *timeseries.TimeSeries
}
type Rds ¶
type Rds struct {
Status LabelLastValue
Engine LabelLastValue
EngineVersion LabelLastValue
MultiAz LabelLastValue
LifeSpan *timeseries.TimeSeries
}
func (*Rds) ApplicationType ¶ added in v1.3.0
func (r *Rds) ApplicationType() ApplicationType
type Redis ¶
type Redis struct {
InternalExporter bool
Up *timeseries.TimeSeries
Error LabelLastValue
Version LabelLastValue
Role LabelLastValue
Calls map[string]*timeseries.TimeSeries
CallsTime map[string]*timeseries.TimeSeries
}
type ReplicaSet ¶
type ReplicaSet struct {
}
type RouterLink ¶
type RouterLink struct {
Title string `json:"title"`
Route string `json:"name,omitempty"`
Params map[string]any `json:"params,omitempty"`
Args map[string]any `json:"query,omitempty"`
Hash string `json:"hash,omitempty"`
}
func NewRouterLink ¶
func NewRouterLink(title string, route string) *RouterLink
func (*RouterLink) SetArg ¶
func (l *RouterLink) SetArg(k string, v any) *RouterLink
func (*RouterLink) SetHash ¶
func (l *RouterLink) SetHash(v string) *RouterLink
func (*RouterLink) SetParam ¶
func (l *RouterLink) SetParam(k string, v any) *RouterLink
type Series ¶
type Series struct {
Name string `json:"name"`
Title string `json:"title,omitempty"`
Color string `json:"color,omitempty"`
Fill bool `json:"fill,omitempty"`
Threshold string `json:"threshold,omitempty"`
Data SeriesData `json:"data"`
Value string `json:"value"`
}
func HistogramSeries ¶
func HistogramSeries(buckets []HistogramBucket, objectiveBucket, objectivePercentage float32) []Series
type SeriesData ¶
type SeriesData interface {
IsEmpty() bool
Get() *timeseries.TimeSeries
Reduce(timeseries.F) float32
}
type SeriesList ¶
type SeriesList struct {
// contains filtered or unexported fields
}
func (SeriesList) IsEmpty ¶ added in v0.17.12
func (sl SeriesList) IsEmpty() bool
func (SeriesList) MarshalJSON ¶
func (sl SeriesList) MarshalJSON() ([]byte, error)
type Service ¶
type Service struct {
Name string
Namespace string
ClusterIP string
Connections []*Connection
}
func (*Service) GetDestinationApplication ¶ added in v1.5.0
func (svc *Service) GetDestinationApplication() *Application
type StatefulSet ¶
type StatefulSet struct {
ReplicasDesired *timeseries.TimeSeries
ReplicasUpdated *timeseries.TimeSeries
}
type Table ¶
type TableCell ¶
type TableCell struct {
Icon *Icon `json:"icon"`
Value string `json:"value"`
ShortValue string `json:"short_value"`
Values []string `json:"values"`
Tags []string `json:"tags"`
Unit string `json:"unit"`
Status *Status `json:"status"`
Link *RouterLink `json:"link"`
Progress *Progress `json:"progress"`
Bandwidth *Bandwidth `json:"bandwidth"`
Chart *timeseries.TimeSeries `json:"chart"`
IsStub bool `json:"is_stub"`
MaxWidth int `json:"max_width"`
DeploymentSummaries []ApplicationDeploymentSummary `json:"deployment_summaries"`
}
func NewTableCell ¶
func (*TableCell) SetChart ¶
func (c *TableCell) SetChart(ts *timeseries.TimeSeries) *TableCell
func (*TableCell) SetEventsCount ¶ added in v1.1.0
func (*TableCell) SetMaxWidth ¶ added in v0.25.0
func (*TableCell) SetProgress ¶
func (*TableCell) SetShortValue ¶
func (*TableCell) UpdateStatus ¶
type TraceErrorsStat ¶ added in v1.0.0
type TraceSource ¶ added in v0.27.0
type TraceSource string
const ( TraceSourceOtel TraceSource = "otel" TraceSourceAgent TraceSource = "agent" )
type TraceSpan ¶ added in v0.27.0
type TraceSpan struct {
Timestamp time.Time
Name string
TraceId string
SpanId string
ParentSpanId string
ServiceName string
Duration time.Duration
StatusCode string
StatusMessage string
ResourceAttributes map[string]string
SpanAttributes map[string]string
Events []TraceSpanEvent
}
func (*TraceSpan) Details ¶ added in v1.0.0
func (s *TraceSpan) Details() TraceSpanDetails
func (*TraceSpan) ErrorMessage ¶ added in v1.0.0
func (*TraceSpan) Status ¶ added in v1.0.0
func (s *TraceSpan) Status() TraceSpanStatus
type TraceSpanAttrStats ¶ added in v1.0.0
type TraceSpanAttrStats struct {
Name string `json:"name"`
Values []*TraceSpanAttrStatsValue `json:"values"`
}
type TraceSpanAttrStatsValue ¶ added in v1.0.0
type TraceSpanDetails ¶ added in v1.0.0
type TraceSpanEvent ¶ added in v0.27.0
type TraceSpanStats ¶ added in v1.0.0
type TraceSpanStatus ¶ added in v1.0.0
type TraceSpanSummary ¶ added in v1.0.0
type TraceSpanSummary struct {
Stats []TraceSpanStats `json:"stats"`
Overall TraceSpanStats `json:"overall"`
}
type Tracing ¶
type Tracing struct {
ApplicationId ApplicationId `json:"application_id"`
}
type Volume ¶
type Volume struct {
Name LabelLastValue
Device LabelLastValue
MountPoint string
EBS *EBS
CapacityBytes *timeseries.TimeSeries
UsedBytes *timeseries.TimeSeries
}
type Widget ¶
type Widget struct {
Chart *Chart `json:"chart,omitempty"`
ChartGroup *ChartGroup `json:"chart_group,omitempty"`
Table *Table `json:"table,omitempty"`
DependencyMap *DependencyMap `json:"dependency_map,omitempty"`
Heatmap *Heatmap `json:"heatmap,omitempty"`
Logs *Logs `json:"logs,omitempty"`
Profiling *Profiling `json:"profiling,omitempty"`
Tracing *Tracing `json:"tracing,omitempty"`
Width string `json:"width,omitempty"`
DocLink *DocLink `json:"doc_link,omitempty"`
}
func (*Widget) AddAnnotation ¶
func (w *Widget) AddAnnotation(annotations ...Annotation)
type World ¶
type World struct {
Ctx timeseries.Context
CustomApplications map[string]CustomApplication
Categories []ApplicationCategory
CheckConfigs CheckConfigs
Nodes []*Node
Applications map[ApplicationId]*Application
AWS AWS
IntegrationStatus IntegrationStatus
// contains filtered or unexported fields
}
func NewWorld ¶
func NewWorld(from, to timeseries.Time, step, rawStep timeseries.Duration) *World
func (*World) GetApplication ¶
func (w *World) GetApplication(id ApplicationId) *Application
func (*World) GetApplicationByNsAndName ¶ added in v0.25.1
func (w *World) GetApplicationByNsAndName(ns, name string) *Application
func (*World) GetOrCreateApplication ¶
func (w *World) GetOrCreateApplication(id ApplicationId, custom bool) *Application
Source Files
¶
- alert.go
- application.go
- application_category.go
- application_deployment.go
- application_event.go
- application_id.go
- application_incident.go
- application_settings.go
- application_types.go
- audit_report.go
- aws.go
- chart.go
- check.go
- config.go
- connection.go
- container.go
- costs.go
- custom_application.go
- dependency_map.go
- dotnet.go
- instance.go
- jvm.go
- kubernetes.go
- labels.go
- log.go
- memcached.go
- mongodb.go
- mysql.go
- node.go
- pod.go
- postgres.go
- profile.go
- python.go
- redis.go
- sli.go
- status.go
- table.go
- trace.go
- utils.go
- volume.go
- widget.go
- world.go
Click to show internal directories.
Click to hide internal directories.