Documentation
¶
Overview ¶
Package appinsights provides an interface to submit telemetry to Application Insights. See more at https://azure.microsoft.com/en-us/services/application-insights/
Index ¶
- Constants
- type BaseTelemetry
- type CloudContext
- type ComponentContext
- type ContextTagKeys
- type DataPoint
- type DataPointType
- type DeviceContext
- type DiagnosticsMessageListener
- type DiagnosticsMessageProcessor
- type DiagnosticsMessageWriter
- type Domain
- type EventTelemetry
- type InMemoryChannel
- func (channel *InMemoryChannel) Close(timeout ...time.Duration) <-chan struct{}
- func (channel *InMemoryChannel) EndpointAddress() string
- func (channel *InMemoryChannel) Flush()
- func (channel *InMemoryChannel) IsThrottled() bool
- func (channel *InMemoryChannel) Send(item Telemetry)
- func (channel *InMemoryChannel) Stop()
- type LocationContext
- type MetricTelemetry
- type OperationContext
- type RequestTelemetry
- type SessionContext
- type SeverityLevel
- type Telemetry
- type TelemetryBufferItems
- type TelemetryChannel
- type TelemetryClient
- type TelemetryConfiguration
- type TelemetryContext
- type TraceTelemetry
- type UserContext
Constants ¶
View Source
const ( ApplicationVersion ContextTagKeys = "ai.application.ver" ApplicationBuild = "ai.application.build" CloudRole = "ai.cloud.role" CloudRoleInstance = "ai.cloud.roleInstance" DeviceId = "ai.device.id" DeviceIp = "ai.device.ip" DeviceLanguage = "ai.device.language" DeviceLocale = "ai.device.locale" DeviceModel = "ai.device.model" DeviceNetwork = "ai.device.network" DeviceOEMName = "ai.device.oemName" DeviceOS = "ai.device.os" DeviceOSVersion = "ai.device.osVersion" DeviceRoleInstance = "ai.device.roleInstance" DeviceRoleName = "ai.device.roleName" DeviceScreenResolution = "ai.device.screenResolution" DeviceType = "ai.device.type" DeviceMachineName = "ai.device.machineName" LocationIp = "ai.location.ip" OperationCorrelationVector = "ai.operation.correlationVector" OperationId = "ai.operation.id" OperationName = "ai.operation.name" OperationParentId = "ai.operation.parentId" OperationRootId = "ai.operation.rootId" OperationSyntheticSource = "ai.operation.syntheticSource" OperationIsSynthetic = "ai.operation.isSynthetic" SessionId = "ai.session.id" SessionIsFirst = "ai.session.isFirst" SessionIsNew = "ai.session.isNew" UserAccountAcquisitionDate = "ai.user.accountAcquisitionDate" UserAccountId = "ai.user.accountId" UserAgent = "ai.user.userAgent" UserAuthUserId = "ai.user.authUserId" UserId = "ai.user.id" UserStoreRegion = "ai.user.storeRegion" SampleRate = "ai.sample.sampleRate" InternalSdkVersion = "ai.internal.sdkVersion" InternalAgentVersion = "ai.internal.agentVersion" )
View Source
const (
Version = "0.3.1"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseTelemetry ¶
type BaseTelemetry struct {
// contains filtered or unexported fields
}
type CloudContext ¶
type ComponentContext ¶
type ContextTagKeys ¶
type ContextTagKeys string
type DataPoint ¶
type DataPoint struct {
Name string `json:"name"`
Kind DataPointType `json:"kind"`
Value float32 `json:"value"`
Count int `json:"count"`
// contains filtered or unexported fields
}
type DeviceContext ¶
type DeviceContext interface {
GetType() string
SetType(string)
GetId() string
SetId(string)
GetOperatingSystem() string
SetOperatingSystem(string)
GetOemName() string
SetOemName(string)
GetModel() string
SetModel(string)
GetNetworkType() string
SetNetworkType(string)
GetScreenResolution() string
SetScreenResolution(string)
GetLanguage() string
SetLanguage(string)
}
type DiagnosticsMessageListener ¶
type DiagnosticsMessageListener interface {
ProcessMessages(DiagnosticsMessageProcessor)
}
func NewDiagnosticsMessageListener ¶
func NewDiagnosticsMessageListener() DiagnosticsMessageListener
type DiagnosticsMessageProcessor ¶
type DiagnosticsMessageProcessor func(string)
type DiagnosticsMessageWriter ¶
type DiagnosticsMessageWriter interface {
Write(string)
// contains filtered or unexported methods
}
type EventTelemetry ¶
type EventTelemetry struct {
BaseTelemetry
// contains filtered or unexported fields
}
func NewEventTelemetry ¶
func NewEventTelemetry(name string) *EventTelemetry
func (*EventTelemetry) Context ¶
func (item *EventTelemetry) Context() TelemetryContext
func (*EventTelemetry) SetProperty ¶
func (item *EventTelemetry) SetProperty(key, value string)
func (*EventTelemetry) Timestamp ¶
func (item *EventTelemetry) Timestamp() time.Time
type InMemoryChannel ¶
type InMemoryChannel struct {
// contains filtered or unexported fields
}
func NewInMemoryChannel ¶
func NewInMemoryChannel(config *TelemetryConfiguration) *InMemoryChannel
func (*InMemoryChannel) Close ¶
func (channel *InMemoryChannel) Close(timeout ...time.Duration) <-chan struct{}
func (*InMemoryChannel) EndpointAddress ¶
func (channel *InMemoryChannel) EndpointAddress() string
func (*InMemoryChannel) Flush ¶
func (channel *InMemoryChannel) Flush()
func (*InMemoryChannel) IsThrottled ¶
func (channel *InMemoryChannel) IsThrottled() bool
func (*InMemoryChannel) Send ¶
func (channel *InMemoryChannel) Send(item Telemetry)
func (*InMemoryChannel) Stop ¶
func (channel *InMemoryChannel) Stop()
type LocationContext ¶
type MetricTelemetry ¶
type MetricTelemetry struct {
BaseTelemetry
// contains filtered or unexported fields
}
func NewMetricTelemetry ¶
func NewMetricTelemetry(name string, value float32) *MetricTelemetry
func (*MetricTelemetry) Context ¶
func (item *MetricTelemetry) Context() TelemetryContext
func (*MetricTelemetry) SetProperty ¶
func (item *MetricTelemetry) SetProperty(key, value string)
func (*MetricTelemetry) Timestamp ¶
func (item *MetricTelemetry) Timestamp() time.Time
type OperationContext ¶
type RequestTelemetry ¶
type RequestTelemetry struct {
BaseTelemetry
// contains filtered or unexported fields
}
func NewRequestTelemetry ¶
func (*RequestTelemetry) Context ¶
func (item *RequestTelemetry) Context() TelemetryContext
func (*RequestTelemetry) SetProperty ¶
func (item *RequestTelemetry) SetProperty(key, value string)
func (*RequestTelemetry) Timestamp ¶
func (item *RequestTelemetry) Timestamp() time.Time
type SessionContext ¶
type SeverityLevel ¶
type SeverityLevel int
const ( Verbose SeverityLevel = iota Information Warning Error Critical )
type Telemetry ¶
type Telemetry interface {
Timestamp() time.Time
Context() TelemetryContext
SetProperty(string, string)
// contains filtered or unexported methods
}
type TelemetryBufferItems ¶
type TelemetryBufferItems []Telemetry
type TelemetryChannel ¶
type TelemetryChannel interface {
// The address of the endpoint to which telemetry is sent
EndpointAddress() string
// Queues a single telemetry item
Send(Telemetry)
// Forces the current queue to be sent
Flush()
// Tears down the submission goroutines, closes internal channels.
// Any telemetry waiting to be sent is discarded. Further calls to
// Send() have undefined behavior. This is a more abrupt version of
// Close().
Stop()
// Returns true if this channel has been throttled by the data
// collector.
IsThrottled() bool
// Flushes and tears down the submission goroutine and closes
// internal channels. Returns a channel that is closed when all
// pending telemetry items have been submitted and it is safe to
// shut down without losing telemetry.
//
// If retryTimeout is specified and non-zero, then failed
// submissions will be retried until one succeeds or the timeout
// expires, whichever occurs first. A retryTimeout of zero
// indicates that failed submissions will be retried as usual. An
// omitted retryTimeout indicates that submissions should not be
// retried if they fail.
//
// Note that the returned channel may not be closed before
// retryTimeout even if it is specified. This is because
// retryTimeout only applies to the latest telemetry buffer. This
// may be typical for applications that submit a large amount of
// telemetry or are prone to being throttled. When exiting, you
// should select on the result channel and your own timer to avoid
// long delays.
Close(retryTimeout ...time.Duration) <-chan struct{}
}
Implementations of TelemetryChannel are responsible for queueing and periodically submitting telemetry items.
type TelemetryClient ¶
type TelemetryClient interface {
Context() TelemetryContext
InstrumentationKey() string
Channel() TelemetryChannel
IsEnabled() bool
SetIsEnabled(bool)
Track(Telemetry)
TrackEvent(string)
TrackEventTelemetry(*EventTelemetry)
TrackMetric(string, float32)
TrackMetricTelemetry(*MetricTelemetry)
TrackTrace(string)
TrackTraceTelemetry(*TraceTelemetry)
TrackRequest(string, string, string, time.Time, time.Duration, string, bool)
TrackRequestTelemetry(*RequestTelemetry)
}
func NewTelemetryClient ¶
func NewTelemetryClient(iKey string) TelemetryClient
func NewTelemetryClientFromConfig ¶
func NewTelemetryClientFromConfig(config *TelemetryConfiguration) TelemetryClient
type TelemetryConfiguration ¶
type TelemetryConfiguration struct {
InstrumentationKey string
EndpointUrl string
MaxBatchSize int
MaxBatchInterval time.Duration
}
func NewTelemetryConfiguration ¶
func NewTelemetryConfiguration(instrumentationKey string) *TelemetryConfiguration
type TelemetryContext ¶
type TelemetryContext interface {
InstrumentationKey() string
Component() ComponentContext
Device() DeviceContext
Cloud() CloudContext
Session() SessionContext
User() UserContext
Operation() OperationContext
Location() LocationContext
// contains filtered or unexported methods
}
func NewClientTelemetryContext ¶
func NewClientTelemetryContext() TelemetryContext
func NewItemTelemetryContext ¶
func NewItemTelemetryContext() TelemetryContext
type TraceTelemetry ¶
type TraceTelemetry struct {
BaseTelemetry
// contains filtered or unexported fields
}
func NewTraceTelemetry ¶
func NewTraceTelemetry(message string, severityLevel SeverityLevel) *TraceTelemetry
func (*TraceTelemetry) Context ¶
func (item *TraceTelemetry) Context() TelemetryContext
func (*TraceTelemetry) SetProperty ¶
func (item *TraceTelemetry) SetProperty(key, value string)
func (*TraceTelemetry) Timestamp ¶
func (item *TraceTelemetry) Timestamp() time.Time
Click to show internal directories.
Click to hide internal directories.