Documentation ¶
Overview ¶
Copyright The OpenTelemetry Authors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFactory ¶
NewFactory creates a new receiver factory for SNMP
Types ¶
type Attribute ¶
type Attribute struct { // Name is required and should match the key for an AttributeConfig Name string `mapstructure:"name"` // Value is optional and is only needed for a matched AttributeConfig's with enum value. // Value should match one of the AttributeConfig's enum values in this case Value string `mapstructure:"value"` }
Attribute is a connection between a metric configuration and an AttributeConfig
type AttributeConfig ¶
type AttributeConfig struct { // Value is optional, and will allow for a different attribute key other than the attribute name Value string `mapstructure:"value"` // Description is optional and describes what the attribute represents Description string `mapstructure:"description"` // Enum is required only if OID and IndexedValuePrefix are not defined. // This contains a list of possible values that can be associated with this attribute Enum []string `mapstructure:"enum"` // OID is required only if Enum and IndexedValuePrefix are not defined. // This is the column OID which will provide indexed values to be uased for this attribute (alongside a metric with ColumnOIDs) OID string `mapstructure:"oid"` // IndexedValuePrefix is required only if Enum and OID are not defined. // This is used alongside metrics with ColumnOIDs to assign attribute values using this prefix + the OID index of the metric value IndexedValuePrefix string `mapstructure:"indexed_value_prefix"` }
AttributeConfig contains config info about all of the metric attributes that will be used by this receiver.
type ColumnOID ¶
type ColumnOID struct { // OID is required and is the column OID that is associated with a metric OID string `mapstructure:"oid"` // ResourceAttributes is required only if there are no Attributes associated with non enum // AttributeConfigs defined here. Valid values are ResourceAttributeConfig names that will // be used to differentiate the indexed values for the column OID ResourceAttributes []string `mapstructure:"resource_attributes"` // Attributes is required only if there are no ResourceAttributes associated defined here. // Valid values are non enum AttributeConfig names that will be used to differentiate the // indexed values for the column OID Attributes []Attribute `mapstructure:"attributes"` }
ColumnOID holds OID info for an indexed metric as well as any attributes or resource attributes that are attached to it
type Config ¶
type Config struct { scraperhelper.ScraperControllerSettings `mapstructure:",squash"` // Endpoint is the SNMP target to request data from. Must be formatted as [udp|tcp|][4|6|]://{host}:{port}. // Default: udp://localhost:161 // If no scheme is given, udp4 is assumed. // If no port is given, 161 is assumed. Endpoint string `mapstructure:"endpoint"` // Version is the version of SNMP to use for this connection. // Valid options: v1, v2c, v3. // Default: v2c Version string `mapstructure:"version"` // Community is the SNMP community string to use. // Only valid for versions "v1" and "v2c" // Default: public Community string `mapstructure:"community"` // User is the SNMP User for this connection. // Only valid for version “v3” User string `mapstructure:"user"` // SecurityLevel is the security level to use for this SNMP connection. // Only valid for version “v3” // Valid options: “no_auth_no_priv”, “auth_no_priv”, “auth_priv” // Default: "no_auth_no_priv" SecurityLevel string `mapstructure:"security_level"` // AuthType is the type of authentication protocol to use for this SNMP connection. // Only valid for version “v3” and if “no_auth_no_priv” is not selected for SecurityLevel // Valid options: “md5”, “sha”, “sha224”, “sha256”, “sha384”, “sha512” // Default: "md5" AuthType string `mapstructure:"auth_type"` // AuthPassword is the authentication password used for this SNMP connection. // Only valid for version "v3" and if "no_auth_no_priv" is not selected for SecurityLevel AuthPassword string `mapstructure:"auth_password"` // PrivacyType is the type of privacy protocol to use for this SNMP connection. // Only valid for version “v3” and if "auth_priv" is selected for SecurityLevel // Valid options: “des”, “aes”, “aes192”, “aes256”, “aes192c”, “aes256c” // Default: "des" PrivacyType string `mapstructure:"privacy_type"` // PrivacyPassword is the authentication password used for this SNMP connection. // Only valid for version “v3” and if "auth_priv" is selected for SecurityLevel PrivacyPassword string `mapstructure:"privacy_password"` // ResourceAttributes defines what resource attributes will be used for this receiver and is composed // of resource attribute names along with their resource attribute configurations ResourceAttributes map[string]*ResourceAttributeConfig `mapstructure:"resource_attributes"` // Attributes defines what attributes will be used on metrics for this receiver and is composed of // attribute names along with their attribute configurations Attributes map[string]*AttributeConfig `mapstructure:"attributes"` // Metrics defines what SNMP metrics will be collected for this receiver and is composed of metric // names along with their metric configurations Metrics map[string]*MetricConfig `mapstructure:"metrics"` }
Config defines the configuration for the various elements of the receiver.
type GaugeMetric ¶
type GaugeMetric struct { // ValueType is required can can be either int or double ValueType string `mapstructure:"value_type"` }
GaugeMetric contains info about the value of the gauge metric
type MetricConfig ¶
type MetricConfig struct { // Description is optional and describes what this metric represents Description string `mapstructure:"description"` // Unit is required Unit string `mapstructure:"unit"` // Either Gauge or Sum config is required Gauge *GaugeMetric `mapstructure:"gauge"` Sum *SumMetric `mapstructure:"sum"` // Either ScalarOIDs or ColumnOIDs is required. // ScalarOIDs is used if one or more scalar OID values is used for this metric. // ColumnOIDs is used if one or more column OID indexed set of values is used // for this metric. ScalarOIDs []ScalarOID `mapstructure:"scalar_oids"` ColumnOIDs []ColumnOID `mapstructure:"column_oids"` }
MetricConfig contains config info about a given metric
type ResourceAttributeConfig ¶
type ResourceAttributeConfig struct { // Description is optional and describes what the resource attribute represents Description string `mapstructure:"description"` // OID is required only if IndexedValuePrefix is not defined. // This is the column OID which will provide indexed values to be used for this resource attribute. These indexed values // will ultimately each be associated with a different "resource" as an attribute on that resource. Indexed metric values // will then be used to associate metric datapoints to the matching "resource" (based on matching indexes). OID string `mapstructure:"oid"` // IndexedValuePrefix is required only if OID is not defined. // This will be used alongside indexed metric values for this resource attribute. The prefix value concatenated with // specific indexes of metric indexed values (Ex: prefix.1.2) will ultimately each be associated with a different "resource" // as an attribute on that resource. The related indexed metric values will then be used to associate metric datapoints to // those resources. IndexedValuePrefix string `mapstructure:"indexed_value_prefix"` // required and valid if no oid field }
ResourceAttributeConfig contains config info about all of the resource attributes that will be used by this receiver.
type SNMPData ¶ added in v0.63.0
type SNMPData struct {
// contains filtered or unexported fields
}
SNMPData used for processFunc and is a simpler version of gosnmp.SnmpPDU
type ScalarOID ¶
type ScalarOID struct { // OID is required and is the scalar OID that is associated with a metric OID string `mapstructure:"oid"` // Attributes is optional and may contain names and values associated with enum // AttributeConfigs to associate with the value of the scalar OID Attributes []Attribute `mapstructure:"attributes"` }
ScalarOID holds OID info for a scalar metric as well as any attributes that are attached to it
type SumMetric ¶
type SumMetric struct { // Aggregation is required and can be cumulative or delta Aggregation string `mapstructure:"aggregation"` // Monotonic is required and can be true or false Monotonic bool `mapstructure:"monotonic"` // ValueType is required can can be either int or double ValueType string `mapstructure:"value_type"` }
SumMetric contains info about the value of the sum metric