Documentation ¶
Overview ¶
Package acceptor provides marshaling structs for Instana serverless acceptor API
Index ¶
- Variables
- func NewHTTPClient(timeout time.Duration) (*http.Client, error)
- type AWSContainerLimits
- type DockerBlockIOStatsDelta
- type DockerCPUStatsDelta
- type DockerData
- type DockerMemoryStatsUpdate
- type DockerNetworkAggregatedStatsDelta
- type DockerNetworkStatsDelta
- type ECSContainerData
- type ECSTaskData
- type GCRServiceRevisionInstanceData
- type GoProcessData
- type MemoryStats
- type Metrics
- type PluginPayload
- func NewAWSLambdaPluginPayload(entityID string) PluginPayload
- func NewDockerPluginPayload(entityID string, data DockerData) PluginPayload
- func NewECSContainerPluginPayload(entityID string, data ECSContainerData) PluginPayload
- func NewECSTaskPluginPayload(entityID string, data ECSTaskData) PluginPayload
- func NewGCRServiceRevisionInstancePluginPayload(entityID string, data GCRServiceRevisionInstanceData) PluginPayload
- func NewGoProcessPluginPayload(data GoProcessData) PluginPayload
- func NewProcessPluginPayload(entityID string, data ProcessData) PluginPayload
- type ProcessCPUStatsDelta
- type ProcessData
- type ProcessMemoryStatsUpdate
- type ProcessOpenFilesStatsUpdate
- type RuntimeInfo
Constants ¶
This section is empty.
Variables ¶
var ErrMalformedProxyURL = errors.New("malformed URL value found in INSTANA_ENDPOINT_PROXY, ignoring")
ErrMalformedProxyURL is returned by NewHTTPClient() when the INSTANA_ENDPOINT_PROXY= env var contains a malformed URL string
Functions ¶
func NewHTTPClient ¶ added in v1.20.0
NewHTTPClient returns an http.Client configured for sending requests to the Instana serverless acceptor. If INSTANA_ENDPOINT_PROXY= env var is populated with a vaild URL, the returned client will use it as an HTTP proxy. If the value is malformed, this setting is ignored and ErrMalformedProxyURL error is returned. The returned http.Client instance in this case is usable, but does not use a proxy to connect to the acceptor.
Types ¶
type AWSContainerLimits ¶
AWSContainerLimits is used to send container limits (CPU, memory) to the acceptor plugin
type DockerBlockIOStatsDelta ¶ added in v1.19.0
type DockerBlockIOStatsDelta struct { Read int `json:"blk_read,omitempty"` Write int `json:"blk_write,omitempty"` }
DockerBlockIOStatsDelta represents the difference between two block I/O usage stats
func NewDockerBlockIOStatsDelta ¶ added in v1.19.0
func NewDockerBlockIOStatsDelta(prev, next docker.ContainerBlockIOStats) *DockerBlockIOStatsDelta
NewDockerBlockIOStatsDelta sums up block I/O reads and writes and calculates the difference between two stat snapshots. It returns nil if aggregated stats are equal.
func (DockerBlockIOStatsDelta) IsZero ¶ added in v1.19.0
func (d DockerBlockIOStatsDelta) IsZero() bool
IsZero returns true if both usage stats are equal
type DockerCPUStatsDelta ¶ added in v1.19.0
type DockerCPUStatsDelta struct { Total float64 `json:"total_usage,omitempty"` User float64 `json:"user_usage,omitempty"` System float64 `json:"system_usage,omitempty"` ThrottlingCount int `json:"throttling_count,omitempty"` ThrottlingTime int `json:"throttling_time,omitempty"` }
DockerCPUStatsDelta represents the difference between two CPU usage stats
func NewDockerCPUStatsDelta ¶ added in v1.19.0
func NewDockerCPUStatsDelta(prev, next docker.ContainerCPUStats) *DockerCPUStatsDelta
NewDockerCPUStatsDelta calculates the difference between two CPU usage stats. It returns nil if stats are equal.
type DockerData ¶
type DockerData struct { ID string `json:"Id"` Command string `json:"Command"` CreatedAt time.Time `json:"Created"` StartedAt time.Time `json:"Started"` Image string `json:"Image"` Labels aws.ContainerLabels `json:"Labels,omitempty"` Ports string `json:"Ports,omitempty"` PortBindings string `json:"PortBindings,omitempty"` Names []string `json:"Names,omitempty"` NetworkMode string `json:"NetworkMode,omitempty"` StorageDriver string `json:"StorageDriver,omitempty"` DockerVersion string `json:"docker_version,omitempty"` DockerAPIVersion string `json:"docker_api_version,omitempty"` Network *DockerNetworkAggregatedStatsDelta `json:"network,omitempty"` CPU *DockerCPUStatsDelta `json:"cpu,omitempty"` Memory *DockerMemoryStatsUpdate `json:"memory,omitempty"` BlockIO *DockerBlockIOStatsDelta `json:"blkio,omitempty"` }
DockerData is a representation of a Docker container for com.instana.plugin.docker plugin
type DockerMemoryStatsUpdate ¶ added in v1.19.0
type DockerMemoryStatsUpdate struct { ActiveAnon *int `json:"active_anon,omitempty"` ActiveFile *int `json:"active_file,omitempty"` InactiveAnon *int `json:"inactive_anon,omitempty"` InactiveFile *int `json:"inactive_file,omitempty"` TotalCache *int `json:"total_cache,omitempty"` TotalRss *int `json:"total_rss,omitempty"` Usage *int `json:"usage,omitempty"` MaxUsage *int `json:"max_usage,omitempty"` Limit *int `json:"limit,omitempty"` }
DockerMemoryStatsUpdate represents the memory stats that have changed since the last measurement
func NewDockerMemoryStatsUpdate ¶ added in v1.19.0
func NewDockerMemoryStatsUpdate(prev, next docker.ContainerMemoryStats) *DockerMemoryStatsUpdate
NewDockerMemoryStatsUpdate returns the fields that have been updated since the last measurement. It returns nil if nothing has changed.
type DockerNetworkAggregatedStatsDelta ¶ added in v1.19.0
type DockerNetworkAggregatedStatsDelta struct { Rx *DockerNetworkStatsDelta `json:"rx,omitempty"` Tx *DockerNetworkStatsDelta `json:"tx,omitempty"` }
DockerNetworkAggregatedStatsDelta represents the difference between two network interface stats
func NewDockerNetworkAggregatedStatsDelta ¶ added in v1.19.0
func NewDockerNetworkAggregatedStatsDelta(prev, next map[string]docker.ContainerNetworkStats) *DockerNetworkAggregatedStatsDelta
NewDockerNetworkAggregatedStatsDelta calculates the aggregated difference between two snapshots of network interface stats. It returns nil if aggregated stats for both snapshots are equal.
type DockerNetworkStatsDelta ¶ added in v1.19.0
type DockerNetworkStatsDelta struct { Bytes int `json:"bytes,omitempty"` Packets int `json:"packets,omitempty"` Dropped int `json:"dropped,omitempty"` Errors int `json:"errors,omitempty"` }
DockerNetworkStatsDelta represents the difference between two network interface stats
func (DockerNetworkStatsDelta) IsZero ¶ added in v1.19.0
func (d DockerNetworkStatsDelta) IsZero() bool
IsZero returns true is there is no difference between interface stats
type ECSContainerData ¶
type ECSContainerData struct { Runtime string `json:"runtime"` Instrumented bool `json:"instrumented,omitempty"` DockerID string `json:"dockerId"` DockerName string `json:"dockerName"` ContainerName string `json:"containerName"` Image string `json:"image"` ImageID string `json:"imageId"` TaskARN string `json:"taskArn"` TaskDefinition string `json:"taskDefinition"` TaskDefinitionVersion string `json:"taskDefinitionVersion"` ClusterARN string `json:"clusterArn"` DesiredStatus string `json:"desiredStatus"` KnownStatus string `json:"knownStatus"` Limits AWSContainerLimits `json:"limits"` CreatedAt time.Time `json:"createdAt"` StartedAt time.Time `json:"startedAt"` Type string `json:"type"` }
ECSContainerData is a representation of an ECS container for com.instana.plugin.aws.ecs.container plugin
type ECSTaskData ¶
type ECSTaskData struct { TaskARN string `json:"taskArn"` ClusterARN string `json:"clusterArn"` AvailabilityZone string `json:"availabilityZone,omitempty"` InstanaZone string `json:"instanaZone,omitempty"` TaskDefinition string `json:"taskDefinition"` TaskDefinitionVersion string `json:"taskDefinitionVersion"` DesiredStatus string `json:"desiredStatus"` KnownStatus string `json:"knownStatus"` Limits AWSContainerLimits `json:"limits"` PullStartedAt time.Time `json:"pullStartedAt"` PullStoppedAt time.Time `json:"pullStoppedAt"` Tags map[string]interface{} `json:"tags,omitempty"` }
ECSTaskData is a representation of an ECS task for com.instana.plugin.aws.ecs.task plugin
type GCRServiceRevisionInstanceData ¶ added in v1.22.0
type GCRServiceRevisionInstanceData struct { Runtime string `json:"runtime,omitempty"` Region string `json:"region"` Service string `json:"service"` Configuration string `json:"configuration,omitempty"` Revision string `json:"revision"` InstanceID string `json:"instanceId"` Port string `json:"port,omitempty"` NumericProjectID int `json:"numericProjectId"` ProjectID string `json:"projectId,omitempty"` }
GCRServiceRevisionInstanceData is a representation of a Google Cloud Run service revision instance for com.instana.plugin.gcp.run.revision.instance plugin
type GoProcessData ¶
type GoProcessData struct { PID int `json:"pid"` Snapshot *RuntimeInfo `json:"snapshot,omitempty"` Metrics Metrics `json:"metrics"` }
GoProcessData is a representation of a Go process for com.instana.plugin.golang plugin
type MemoryStats ¶
type MemoryStats struct { Alloc uint64 `json:"alloc"` TotalAlloc uint64 `json:"total_alloc"` Sys uint64 `json:"sys"` Lookups uint64 `json:"lookups"` Mallocs uint64 `json:"mallocs"` Frees uint64 `json:"frees"` HeapAlloc uint64 `json:"heap_alloc"` HeapSys uint64 `json:"heap_sys"` HeapIdle uint64 `json:"heap_idle"` HeapInuse uint64 `json:"heap_in_use"` HeapReleased uint64 `json:"heap_released"` HeapObjects uint64 `json:"heap_objects"` PauseTotalNs uint64 `json:"pause_total_ns"` PauseNs uint64 `json:"pause_ns"` NumGC uint32 `json:"num_gc"` GCCPUFraction float64 `json:"gc_cpu_fraction"` }
MemoryStats represents Go runtime memory stats to be sent to com.insana.plugin.golang
type Metrics ¶
type Metrics struct { CgoCall int64 `json:"cgo_call"` Goroutine int `json:"goroutine"` MemoryStats `json:"memory"` }
Metrics represents Go process metrics to be sent to com.insana.plugin.golang
type PluginPayload ¶
type PluginPayload struct { Name string `json:"name"` EntityID string `json:"entityId"` Data interface{} `json:"data"` }
PluginPayload represents the Instana acceptor message envelope containing plugin name and entity ID
func NewAWSLambdaPluginPayload ¶ added in v1.23.0
func NewAWSLambdaPluginPayload(entityID string) PluginPayload
NewAWSLambdaPluginPayload returns payload for the AWS Lambda plugin of Instana acceptor
func NewDockerPluginPayload ¶
func NewDockerPluginPayload(entityID string, data DockerData) PluginPayload
NewDockerPluginPayload returns payload for the Docker plugin of Instana acceptor
func NewECSContainerPluginPayload ¶
func NewECSContainerPluginPayload(entityID string, data ECSContainerData) PluginPayload
NewECSContainerPluginPayload returns payload for the ECS container plugin of Instana acceptor
func NewECSTaskPluginPayload ¶
func NewECSTaskPluginPayload(entityID string, data ECSTaskData) PluginPayload
NewECSTaskPluginPayload returns payload for the ECS task plugin of Instana acceptor
func NewGCRServiceRevisionInstancePluginPayload ¶ added in v1.22.0
func NewGCRServiceRevisionInstancePluginPayload(entityID string, data GCRServiceRevisionInstanceData) PluginPayload
NewGCRServiceRevisionInstancePluginPayload returns payload for the GCR service revision instance plugin of Instana acceptor
func NewGoProcessPluginPayload ¶
func NewGoProcessPluginPayload(data GoProcessData) PluginPayload
NewGoProcessPluginPayload returns payload for the Go process plugin of Instana acceptor
func NewProcessPluginPayload ¶
func NewProcessPluginPayload(entityID string, data ProcessData) PluginPayload
NewProcessPluginPayload returns payload for the process plugin of Instana acceptor
type ProcessCPUStatsDelta ¶ added in v1.19.0
type ProcessCPUStatsDelta struct { User float64 `json:"user,omitempty"` System float64 `json:"sys,omitempty"` }
ProcessCPUStatsDelta represents the CPU stats that have changed since the last measurement
func NewProcessCPUStatsDelta ¶ added in v1.19.0
func NewProcessCPUStatsDelta(prev, next process.CPUStats, ticksElapsed int) *ProcessCPUStatsDelta
NewProcessCPUStatsDelta calculates the difference between two CPU usage stats. It returns nil if stats are equal or if the stats were taken at the same time (ticks). The stats are considered to be equal if the change is less then 1%.
type ProcessData ¶
type ProcessData struct { PID int `json:"pid"` Exec string `json:"exec"` Args []string `json:"args,omitempty"` Env map[string]string `json:"env,omitempty"` User string `json:"user,omitempty"` Group string `json:"group,omitempty"` ContainerID string `json:"container,omitempty"` ContainerPid int `json:"containerPid,string,omitempty"` ContainerType string `json:"containerType,omitempty"` Start int64 `json:"start"` HostName string `json:"com.instana.plugin.host.name"` HostPID int `json:"com.instana.plugin.host.pid,string"` CPU *ProcessCPUStatsDelta `json:"cpu,omitempty"` Memory *ProcessMemoryStatsUpdate `json:"mem,omitempty"` OpenFiles *ProcessOpenFilesStatsUpdate `json:"openFiles,omitempty"` }
ProcessData is a representation of a running process for com.instana.plugin.process plugin
type ProcessMemoryStatsUpdate ¶ added in v1.19.0
type ProcessMemoryStatsUpdate struct { Total *int `json:"virtual,omitempty"` Rss *int `json:"resident,omitempty"` }
ProcessMemoryStatsUpdate represents the memory stats that have changed since the last measurement
func NewProcessMemoryStatsUpdate ¶ added in v1.19.0
func NewProcessMemoryStatsUpdate(prev, next process.MemStats) *ProcessMemoryStatsUpdate
NewProcessMemoryStatsUpdate returns the fields that have been updated since the last measurement. It returns nil if nothing has changed.
type ProcessOpenFilesStatsUpdate ¶ added in v1.19.0
type ProcessOpenFilesStatsUpdate struct { Current *int `json:"current,omitempty"` Max *int `json:"max,omitempty"` }
ProcessOpenFilesStatsUpdate represents the open file stats and limits that have changed since the last measurement
func NewProcessOpenFilesStatsUpdate ¶ added in v1.19.0
func NewProcessOpenFilesStatsUpdate(prev, next process.ResourceLimits) *ProcessOpenFilesStatsUpdate
NewProcessOpenFilesStatsUpdate returns the (process.ResourceLimits).OpenFiles fields that have been updated since the last measurement. It returns nil if nothing has changed.
type RuntimeInfo ¶
type RuntimeInfo struct { Name string `json:"name"` Version string `json:"version"` Root string `json:"goroot"` MaxProcs int `json:"maxprocs"` Compiler string `json:"compiler"` NumCPU int `json:"cpu"` SensorVersion string `json:"iv,omitempty"` }
RuntimeInfo represents Go runtime info to be sent to com.insana.plugin.golang