tensor.sources¶
tensor.sources.network¶
- class tensor.sources.network.HTTP(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Performs an HTTP request
Configuration arguments:
Parameters: - method (str.) – HTTP request method to use
- match (str.) – A text string to match in the document when it is correct
- useragent (str.) – User-Agent header to use
Metrics:
(service name).latency: Time to complete request
- class tensor.sources.network.Ping(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Performs an Ping checks against a destination
This is a horrible implementation which forks to ping
Configuration arguments:
Parameters: destination (str.) – Host name or IP address to ping Metrics:
(service name).latency: Ping latency (service name).loss: Packet loss You can also override the hostname argument to make it match metrics from that host.
tensor.sources.nginx¶
- class tensor.sources.nginx.Nginx(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Reads Nginx stub_status
Configuration arguments:
Parameters: stats_url (str.) – URL to fetch stub_status from Metrics:
(service name).active: Active connections at this time (service name).accepts: Accepted connections (service name).handled: Handled connections (service name).requests: Total client requests (service name).reading: Reading requests (service name).writing: Writing responses (service name).waiting: Waiting connections
- class tensor.sources.nginx.NginxLogMetrics(*a)[source]¶
Bases: tensor.objects.Source
Tails Nginx log files, parses them and returns metrics for data usage and requests against other fields.
Configuration arguments:
Parameters: - log_format (str.) – Log format passed to parser, same as the config definition
- file (str.) – Log file
- max_lines (int.) – Maximum number of log lines to read per interval to prevent overwhelming Tensor when reading large logs (default 2000)
- resolution (int.) – Aggregate bucket resolution in seconds (default 10)
Metrics:
(service name).total_bytes: Bytes total for all requests (service name).total_requests: Total request count (service name).stats.(code).(requests|bytes): Metrics by status code (service name).user-agent.(agent).(requests|bytes): Metrics by user agent (service name).client.(ip).(requests|bytes): Metrics by client IP (service name).request.(request path).(requests|bytes): Metrics by request path
tensor.sources.munin¶
- class tensor.sources.munin.MuninNode(*a, **kw)[source]¶
Bases: tensor.objects.Source
Connects to munin-node and retrieves all metrics
Configuration arguments:
Parameters: - host (str.) – munin-node hostname (probably localhost)
- port (int.) – munin-node port (probably 4949)
Metrics:
(service name).(plugin name).(keys...): A dot separated tree of munin plugin keys
tensor.sources.riak¶
- class tensor.sources.riak.RiakStats(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Returns GET/PUT rates for a Riak node
Configuration arguments:
Parameters: - url (str.) – Riak stats URL
- useragent (str.) – User-Agent header to use
Metrics:
(service name).latency: Time to complete request
tensor.sources.rabbitmq¶
- class tensor.sources.rabbitmq.Queues(*a, **kw)[source]¶
Bases: tensor.objects.Source
Returns Queue information for a particular vhost
Configuration arguments:
Parameters: vhost (str.) – Vhost name Metrics:
(service_name).(queue).ready: Ready messages for queue (service_name).(queue).unack: Unacknowledged messages for queue (service_name).(queue).ready_rate: Ready rate of change per second (service_name).(queue).unack_rate: Unacknowledge rate of change per second
tensor.sources.linux¶
tensor.sources.linux.basic¶
- class tensor.sources.linux.basic.CPU(*a)[source]¶
Bases: tensor.objects.Source
Reports system CPU utilisation as a percentage/100
Metrics:
(service name): Percentage CPU utilisation (service name).(type): Percentage CPU utilisation by type
- class tensor.sources.linux.basic.DiskFree(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Returns the free space for all mounted filesystems
Metrics:
(service name).(device): Used space (%)
- class tensor.sources.linux.basic.LoadAverage(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Reports system load average for the current host
Metrics:
(service name): Load average
- class tensor.sources.linux.basic.Memory(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Reports system memory utilisation as a percentage/100
Metrics:
(service name): Percentage memory utilisation
- class tensor.sources.linux.basic.Network(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Returns all network interface statistics
Metrics:
(service name).(device).tx_bytes: Bytes transmitted (service name).(device).tx_packets: Packets transmitted (service name).(device).tx_errors: Errors (service name).(device).rx_bytes: Bytes received (service name).(device).rx_packets: Packets received (service name).(device).rx_errors: Errors
tensor.sources.linux.process¶
- class tensor.sources.linux.process.ProcessCount(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Returns the ps count on the system
Metrics:
(service name): Number of processes
- class tensor.sources.linux.process.ProcessStats(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Returns memory used by each active parent process
Metrics:
(service name).proc.(process name).cpu: Per process CPU usage (service name).proc.(process name).memory: Per process memory use (service name).proc.(process name).age: Per process age (service name).user.(user name).cpu: Per user CPU usage (service name).user.(user name).memory: Per user memory use
tensor.sources.media¶
tensor.sources.media.libav¶
- class tensor.sources.media.libav.DarwinRTSP(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Makes avprobe requests of a Darwin RTSP sample stream (sample_100kbit.mp4)
Configuration arguments:
Parameters: destination – Host name or IP address to check Metrics: :(service name): Time to complete request
You can also override the hostname argument to make it match metrics from that host.
tensor.sources.sflow¶
- class tensor.sources.sflow.sFlow(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Provides an sFlow server Source
Configuration arguments:
Parameters: - port (int.) – UDP port to listen on
- dnslookup (bool.) – Enable reverse DNS lookup for device IPs (default: True)
Metrics:
Metrics are published using the key patterns (device).(service name).(interface).(in|out)Octets (device).(service name).(interface).ip (device).(service name).(interface).port
- class tensor.sources.sflow.sFlowReceiver(source)[source]¶
Bases: tensor.protocol.sflow.server.DatagramReceiver
sFlow datagram protocol
tensor.sources.snmp¶
- class tensor.sources.snmp.SNMP(*a, **kw)[source]¶
Bases: tensor.objects.Source
Connects to an SNMP agent and retrieves OIDs
Configuration arguments:
Parameters: - ip (str.) – SNMP agent host (default: 127.0.0.1)
- port (int.) – SNMP port (default: 161)
- community (str.) – SNMP read community
- class tensor.sources.snmp.SNMPCisco837(*a, **kw)[source]¶
Bases: tensor.sources.snmp.SNMP
Connects to a Cisco 837 and makes metrics
Configuration arguments:
Parameters: - ip (str.) – SNMP agent host (default: 127.0.0.1)
- port (int.) – SNMP port (default: 161)
- community (str.) – SNMP read community