Anuket Project

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

 

The tables and lists of questions have been created by Sridhar Rao <Sridhar.Rao@spirent.com>

 

There are numerous opensource monitoring solutions available, with varying approaches and architectures. In this study, we compare only the 'agent' component of the monitoring solution, and will not consider the server-side component(s). Because, there can be multiple implementation options of the 'server' - for example, with collectd, it could be simple collectd-web or a timeseries database such as Influxdb, telemetry system based on Apache Kafka, etc. - and considering all the options would be extremely difficult. Typically the server side components could include some or all of the following (a) Metric collection infrastructure - raw-metric receiver, message-queues, etc. (b) Metric Modifier - add contexts, perform-aggregation, filter, etc. (c) Storage solution (d) Alarm/Alerting System (e) Visualization/Graphing - dashboards. (f)  Publishing.

 

Terminology Definition

TermWhat we mean by that?
MetricA Measurement of a particular characteristic.
Ex: %ge of CPU used, Amount of Bandwidth used, etc. Complete definition can be found here
EventA record of something that has happened - A simple immutable fact.
Example: Link has gone down. A packet from a flow is dropped, etc. Complete definition can be found here 
AgentSoftware that runs on a node/system that needs to be monitored.
Client NodeA node that is monitored (Node on which agent runs)
Server NodeA node that collects metrics and events from the client node.
Sampling IntervalHow frequently the metrics are sent.
Push ModeFetching of events by subscribing
Poll ModeFetching of events via polling.
Writing of Metrics/eventssending/outputting of metrics or events.
Reading of Metrics/eventsreceiving/reading of measurements
Logging of Metrics/eventsLogging of monitored/received metric or event
Metric Types (data source types)

Guage: Value stored as-is
Derive: Derivative - Change of the value (rate)
Counter: Similar to Derive - but it is NEVER negative (due to wrap-around)
Absolute: 

 

 

Parameter Table

 

Parameters\Tools

Collectd

Ceilometer

Polling agent.

MonascaSNAPnode-exporter and other exporterssensu client: metric collection pluginsmunintelegrafNPRE + PluginsdiamondcentreonicingaOpenNMSNSClient++Elastic BeatsReimannNote:
1. For some parameters the answer could be just YES/NO,
2. Whereas, for some we may have to provide a description/details
3. For some we may have to choose from the list [], whereas for some we may append a value to the list.
4. For some parameters, please provide the number of 'actual metrics' provided under that category. For example, collectd would provide 12 metrics for Processes-category

Use NA - If Not applicable.
Use NK - If it is Not Known

Lowest Sampling Interval -

(for transmitting over network)

can go down to a nano second resolution

(1-sec)

               
CPU metricsidle, system, wait, stolen, user (% & time), util, vcpusidle, system, wait, stolen, user (% & time), util, vcpusidle, system, wait, stolen, user (% & time) idle, system, wait, stolen, user (% & time), util, vcpusidle, system, wait, stolen, user (% & time), util, vcpus Same as ceilometer or monasca idle, system, wait, user, nice      
Disk IO metricsRead and write (bytes, rate, time, sectors)read and write (bytes, rate, req)read and write (bytes, rate, req) read and write (bytes, rate, req)Read and write (bytes, rate, time, sectors) Same as ceilometer or monasca read and write (bytes, rate, req)      
Memory metrics usage, bandwidthfree, swap, total, used free, swap, total, usedfree, swap, total, used (Mb and percentages) Same as ceilometer or monasca free, total, swap, active, dirty, inactive, buffers.      
Process metricsI/O, memory, CPU-Usage, count.NONO Same as collectd.status, thread-count, uptime. IO, memory, cpu-usage. connections. Cpu and memory. btime, ctxt, processes, blocked, running      
Network Interface MetricsInterface plugin: Standard 4 fields of rx/tx (octets, packets, errors, dropped).
Netlink plugin: uses netlink sockets and covers others
Standard 4 fields of rx/tx (octets, packets, errors, dropped).Standard 4 fields of rx/tx (octets, packets, errors, dropped). Standard 4 fields of rx/tx (octets, packets, errors, dropped).Standard 4 fields of rx/tx (octets, packets, errors, dropped). Also includes, fifo, compressed, and frame stats. Same as ceilometer or monasca 

Rx and Tx.

MBs

      
Libvirt MetricsYES - YESYES YESNO NO YES      
Container resource usage MonitoringYESNONO DockerDocker Docker Docker      
Databases Monitoring : [Influxdb, MongoDb,  MySql, PostgreSql, Carbon(graphite),  Prometheus, RRDCache,Redis, TSDB]YES for all

MySql, PostgreSql, MongoDb

Influxdb, Vertica, MySql, PostgreSql, Cassandra  

ALL (4)

All

 

All.

 All      
Publish metrics to databases - (influxdb, mysql, TSDB, Postgresql, MongoDb, Carbon, Elasticsearch)YES for allNONOYES for all.NONO (1) Yes for all        
Encryption SupportYESNONO NONO NO YES      
Extensibility - multilanguage support [Python, Java, Golang, C/C++, Lua]YES for allJavaJava Java, Python, RubyGo, Python. None.        
Interoperability [with other monitoring solutions]Sensu, statsd, telegraf?

Nagios zabbix

ceilometer CollectdNagios, Zabbix. Reimann Nagios      
Write to Message Queues and protocols (AMQP, Kafka, MQTT, NSQ)YES for ALLAMQPKafka NOAMQP 

kafka,

MQTT,

NSQ

        

Metrics Pub/sub Mode Support

(Metrics push/pull mode support ?)

YESYESYES YESYES YES        
Metrics Req/Resp Mode Support NONONO NOYES NO        
Support for Events (polling, Pushing)YesNO (1)NO (1) NOYES YES        
Notification SupportYESNO (1)NO (1) NO (1)YES NO        
Logging Support YESYESYES YESYES YES        
Hypervisor metricsYESNONO YESYES (XenTop) NO        
Log-File AnalysisYESNONO YES (mtail)NO YES        
Other Writing (output) Support:
[CSV, HTTP, RRD, UnixSocket, Multicast]
ALL that are listed.NONO HTTPNO Socket,        
Transport ProtocolDepends on the end point it's communicating with.TCP*TCP* TCP, UDP. (5)TCP 

TCP, UDP

        
 Data-Format
[XML, JSON, etc]
JSON, Custom, XMLJSON XMLJSON JSON ?JSON Custom        
Data-modelCustomKVPKVP KVPKVP Custom        
Hardware:
IPMI, Battery, Sensors, 
YES for allIPMIIPMI YES for allYES - IPMI IPMI sensors        
Metric Types: Guage, Derive, Counter, absoluteYES for allGauge cumulative delta  Gauge, Counter, Histogram, summaryGauge, Counter, derive. Gauge, Counter.        
Language (written)CPythonPython GoRuby Go        
Last-Updated201720172017 Varies (5)Varies (5) 2017        
Commercial Versions?NONO? NOYES No        
Resource consumption by the agent

Binary: 617Kb

 

               
LicenseMIT/GPL v2 or laterApache License, Version 2.0 Apache License, Version 2.0  Multiple (5)MIT MIT        
Webserver monitoring
[Nginix, Apache]
YES for allApacheApache Nginix, Apache, Passenger varnishApache, Nginix, Unicorn. Yes for all        
Platforms - OS?Supports windows, linux, freebsd, etc.LinuxLinux 

Linux

Windows(3)

Linux, Windows, Linux        
Configuration Tool support [Puppet, Chef, Ansible, Salt]YES for allPuppet ChefPuppet, Chef, Ansible, 

Yes for all.

YES for all Yes for All.        
Deployments: servers, VMs, containers,ALLALLALL ALLALL. All        
Openstack ModulesNONOALL.Neutron, NovaNONO NO        
Intel PCM and SSDs SMART metricsNONONOYESNONO NO        

Cluster Mgmt.

(Kubernetes, Mesos, Swarm)

NONONOKubernetes and MesosKubernetes and mesosKubernetes and mesos Kubernetes and Mesos        

Modifiers - (filtering, threshold, tags, contexts)

Filtering and threshold - yes.

Tags - YES.

Contexts - No. (1)

NOYES Tags, Filtering and threshold.NO(1) Tagging        
Dynamic Loading of plugins.NONONO YESYES. NO        

Other Services monitoring:

(DHCP, DNS, FTP, NTP, HAProxy, Consul)

NONOHAProxy, NTP. DHCP, HAproxy, NTP, Consul.YES for all. HAproxy, NTP, Consul, DNS,          

Legends

(1) This aspect is realized either as a server-side component or by a 'customized' agent.

(2) Custom solution exist, and may not be part of main distribution.

(3) Support with strong dependency on additional tool/library.

(4) Supports more-options than the ones provided in column-1 

(5) A single value cannot be entered due development of logically-independent modules by different community groups.

Inference Questions

The Questions The Answer
Lowest Interval: Which agent supports the lowest sampling interval, and what is the value? 
Interoperability: Which agent is 'most interoperable'?  (Work with maximum of 'servers' (collection node) 
Large-scale deployment: Which agent is ideal for large-scale monitoring (Provide description in a separate page, if needed) 
Low-footprint: Which agent has the lowest footprint (memory and CPU)? 
Metrics: Which agent supports maximum number of metrics? 
Gaps: Are there any metrics that are not supported by any of the agent and that are relavant to NFV? 
Which agent is ideal for realtime analytics?- [Support for maximum scalable datastores, visualization tools and Analytics engines?] 
Is any of the agents been used in large-scale real-world deployments? If so, please provide the details on the performance. 
Which agent has the least/maximum dependency - Libraries, OS/Kernel versions, etc.? 
Which agent provides maximum 'freedom' w.r.t. Licenses (core agent + plugins)? 
Which agent is best for the following datastores: Influxdb, Graphite, ElasticSearch? 
Which agent support dynamic configuration? 
  
  
  
  
  
  
  
  • No labels