tensor.sources¶
tensor.sources.database.postgresql¶
- class tensor.sources.database.postgresql.PostgreSQL(*a, **kw)[source]¶
Bases: tensor.objects.Source
Reads PostgreSQL metrics
Configuration arguments:
Parameters: - host (str.) – Database host
- port (int.) – Database port
- user (str.) – Username
- password (str.) – Password
Metrics:
(service name).(database name).(metrics): Metrics from pg_stat_database
tensor.sources.database.elasticsearch¶
- class tensor.sources.database.elasticsearch.ElasticSearch(*a, **kw)[source]¶
Bases: tensor.objects.Source
Reads elasticsearch metrics
Configuration arguments:
Parameters: - url (str.) – Elasticsearch base URL (default: http://localhost:9200)
- user (str.) – Basic auth username
- password (str.) – Password
Metrics:
(service name).cluster.status: Cluster status (Red=0, Yellow=1, Green=2) (service name).cluster.nodes: Cluster node count (service name).indices: Total indices in cluster (service name).shards.total: Total number of shards (service name).shards.primary: Number of primary shards (service name).documents.total: Total documents (service name).documents.rate: Documents per second (service name).documents.size: Size of document store in bytes
tensor.sources.database.memcache¶
- class tensor.sources.database.memcache.Memcache(*a, **kw)[source]¶
Bases: tensor.objects.Source
Reads memcache metrics
Configuration arguments:
Parameters: - host (str.) – Database host (default localhost)
- port (int.) – Database port (default 11211)
Metrics:
(service name).(metrics): Metrics from memcached
tensor.sources.haproxy¶
- class tensor.sources.haproxy.HAProxy(*a, **kw)[source]¶
Bases: tensor.objects.Source
Reads Nginx stub_status
Configuration arguments:
Parameters: - url (str.) – URL to fetch stats from
- user (str.) – Username
- password (str.) – Password
Metrics:
(service name).(backend|frontend|nodes).(stats): Various statistics
tensor.sources.generator¶
- class tensor.sources.generator.Function(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Produces an arbitrary function
Functions can contain the functions sin, cos, sinh, cosh, tan, tanh, asin, acos, atan, asinh, acosh, atanh, log(n, [base|e]), abs
Or the constants e, pi, and variable x
Configuration arguments:
Parameters: - dx (float.) – Resolution with time (steps of x)
- function (string.) – Function to produce
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 (%) (service name).(device).bytes: Used space (kbytes) (service name).(device).free: Free space (kbytes)
- class tensor.sources.linux.basic.DiskIO(*a, **kw)[source]¶
Bases: tensor.objects.Source
Reports disk IO statistics per device
Metrics:
(service name).(device name).reads: Number of completed reads (service name).(device name).read_bytes: Bytes read per second (service name).(device name).read_latency: Disk read latency (service name).(device name).writes: Number of completed writes (service name).(device name).write_bytes: Bytes written per second (service name).(device name).write_latency: Disk write latency
- 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.munin¶
- class tensor.sources.munin.MuninNode(config, queueBack, tensor)[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.network¶
- class tensor.sources.network.HTTP(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Performs an HTTP request
Configuration arguments:
Parameters: - url (str.) – HTTP URL
- method (str.) – HTTP request method to use (default GET)
- match (str.) – A text string to match in the document when it is correct
- useragent (str.) – User-Agent header to use
- timeout (int.) – Timeout for connection (default 60s)
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
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.NginxLog(*a)[source]¶
Bases: tensor.objects.Source
Tails Nginx log files, parses them and returns log events for outputs which support them.
Configuration arguments:
Parameters: - log_format (str.) – Log format passed to parser, same as the config definition (default: combined)
- 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)
- 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)
- history (bool.) – Read the entire file from scratch if we’ve never seen it (default false)
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.python¶
tensor.sources.python.uwsgi¶
- class tensor.sources.python.uwsgi.Emperor(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Connects to UWSGI Emperor stats and creates useful metrics
Configuration arguments:
Parameters: - host (str.) – Hostname (default localhost)
- port (int.) – Port
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.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.riemann¶
- class tensor.sources.riemann.RiemannTCP(config, queueBack, tensor)[source]¶
Bases: tensor.objects.Source
Provides a listening server which accepts Riemann metrics and proxies them to our queue.
Configuration arguments:
Parameters: port (int.) – Port to listen on (default 5555)
- class tensor.sources.riemann.RiemannTCPServer(source)[source]¶
Bases: tensor.protocol.riemann.RiemannProtocol
Server implementation of the Riemann protocol
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