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" )
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.