The 'libvirt_type' and 'libvirt_uri' options are currently set by oslo configuration library.
However, in 'monasca_agent/collector/virt/libvirt/inspector.py' file these options cannot be
provided by a configuration file. Changing this to retrieve both options from
'conf.d/libvirt.yaml' file.
Change-Id: I1918fda471e951f42db0d302e371108b664e936c
A powerful metric to watch for a swift cluster is the
number of handoff partitions on a drive on a storage node.
A build up of handoff nodes on a particular server could
indicate a disk problem somewhere in the cluster. A bottleneck
somewhere. Or better, when would be a good time to rebalance
the ring (as you'd want to do it when existing backend data
movement is at a minimum.
So it turns out to be a great visualisation of the health of
a cluster.
That's what this check plugin does. Each instance check takes
the following values:
ring: <path to a Swift ring file>
devices: <path to the directory of mountpoints>
granularity: <either server or device>
To be able to determine primary vs handoff partitions on a drive
the swift ring needs to be consulted. If a storage node stores
more then 1 ring, and an instance would be defined for each.
You give swift a bunch of disks. These disks are placed in what
swift calls the 'devices' location. That is a directory where a
mount point for each mounted swift drive is located.
Finally, you can decide on the granularity, which defaults to
`server` if not defined. Only 2 metrics are created from this
check:
swift.partitions.primary_count
swift.partitions.handoff_count
But with the hostname dimension a ring dimension will also be set.
Allowing the graphing of the handoff vs partitions of each ring.
When the granularity is set to device, then an additional
dimension to the metric is added, the device name (the name of
the devices mount point). This allows the graphing and monitoring
of each device in a server if a finer granularity is required.
Because we need to consult the Swift ring there is a runtime
requirement on the Python Swift module being installed. But
this isn't required for the unit tests. Making it a runtime
dependency means when the check is loaded it'll log an error
and then exit if it can't import the swift module.
This is the second of two Swift check plugins I've been working on.
For more details see my blog post[1]
[1] - https://oliver.net.au/?p=358
Change-Id: Ie91add9af39f2ab0e5b575390c0c6355563c0bfc
Swift outputs alot of statsd metrics that you can point directly
at monasca-agents. However there is another swift endpoint,
recon, that is used to gather more metrics.
The Swift recon (or reconnaissance) API is an endpoint each of the
storage node servers make available via a REST API. This API can
either be hit manually or via the swift-recon tool.
This patch adds a check plugin that hits the recon REST API and
and send metrics to monasca.
This is the first of two Swift check plugins I'm working on.
For more details see my blog post[1]
[1] - https://oliver.net.au/?p=358
Change-Id: I503d74936f6f37fb261c1592845968319695475a
Now the user will be able to configure one, default Keystone for all
services in `http_check.yml` instead of providing them one by one for
every instance.
Setting Keystone config in every instance is marked as depreciated.
Story: 2001843
Task: 12610
Change-Id: If52b52efab6cc14a7df583b1dc2596b04e6813bc
LXC plugin throw up a exception when try collect cpu metrics. This
patch fix it (tests are passing) and add swap collector.
Change-Id: I3b12ac6ce199006bc1e024d2b2626657519e4f0b
Story: 2001563
Task: 6507
In monasca_agent/collector/checks_d/rabbitmq.py QUEUE_TYPE is defined
as 'queues'. In conf.d/rabbitmq.yaml.example the whitelist stores the
permitted queues in the list 'queue'. This should be 'queues'. If the
documentation is followed the user specified white list is ignored.
The same looks to be the case for exchanges and nodes.
Story: 2001290
Change-Id: I3e70a888f5c0db27951e619da8bc17ae9eaf9da9
nsfs was accidentally removed in the last change here but
is not automatically blacklisted because it is not listed
as nodev in /proc/filesystems. Add it back to avoid
that neutron network namespaces get collected as local disks
in monasca
Change-Id: I6c6df857aa3cae38563d920a58aa5b464b9d6bac
An agent that provides LXC cgroup data. This agent does not require sudo.
Story: 2001242
Task: 5772
Change-Id: Ia20889f91d1c1bfad98745c2ddd61b40f610a838
Need "project_name" under "keystone_config" if user wants to use
another Keystone. Add "project_name" to the http_check.yaml example.
Change-Id: I642fdf8cc2789d2c2ba8bcb10adbd8b30b9bc91a
Some of parameters which can be configured for Libvirt monitoring are
missing from the template file and example of documentation.
This commit adds the parameter examples.
Change-Id: I98e9a928179d22373c658894a82d64df9dc7d043
Story: 2001137
Task: 4853
This plugin will add a vm.status for vcenter, this is kept
separate from the original plugin to allow different timing
between the two types of data or to consume fewer resources
for smaller environments.
Change-Id: I014a2ceafd3a819abe37ef581bc8d6a17a6c1606
This change adds a ceph plugin to collect metrics regarding
ceph clusters. Includes documentation, detection and tests.
Change-Id: Ia4b61e751f0f8087fc9ab3adff889734b8afc2d6
This change removes a line that set the dimension to be None. In
that way, the dimensions of the measurement can be set through the
plugin configuration file.
Change-Id: I038ee56f58426a79c27f65427de6d58ca4d0952e
The plugin can be configured two ways:
Scrape metrics from a configured set of endpoints that were set up
via prometheus client libraries.
Attempt to autodetect running endpoints we should be monitoring in
a kubernetes environment by either looking at running services or
pods and evaluate their annotations to see if it is set for scraping.
Change-Id: I6d174daa705aff23fbfece9de759a1718a91050f
Before submitting metrics, we want to check with the white list to
see what are the metrics we want to report and what are the dimension
we want in these metrics. If the key under "metrics" section is not
in the default dimension, the corresponding value specified in white
list will be used to update the dimension. If there is no key value
pairs under "metrics" section, then check and use the key value pairs
under "dimensions" section.
Change-Id: Ic81cc4c393112eb50f700655cefa839e454354db
Plugin that connects to the Kubernetes API to gather metrics
about the Kubernetes environment.
Taken from original review https://review.openstack.org/#/c/391559/
Change-Id: Ifff9285e9a2ac06d59383b986619ee62c59c712e
The blacklist wasn't really accurate on any recent system anymore
because many more additional filesystems are being implemented these
days (examples: mqueue, binfmt_misc, systemd-1, ...). Instead of
hardcoding all of them, simply ignore all nodev filesystems.
Change-Id: I1fc42ae700475d51e1daf1ed79c6e223532da1d9
Use white list in init_config to control what are the metrics
to report. If there is no white_list section in the init_config,
then report all the metrics.
Change-Id: Ia5d9bed47748af83bbc27575f992449584364479
Monitors containers and pods by querying kubelet for metadata and
cadvisor for metrics
Taken from original review https://review.openstack.org/#/c/391559/
Change-Id: I77fa1ec4056e79ecdb49627d9a8abdc71a9732d2
Queries a given cAdvisor instance for host metrics. This is useful
when the agent in running in a container and does not have access
to all host level metrics
Taken from original review https://review.openstack.org/#/c/391559/
Change-Id: Ifc3d514e5256bdbc6089ec653065348a488f7c57
This patch adds a plugin that reads metrics from JSON files. This
makes it very easy to integrate with Monasca -- instead of writing
a new plugin, simply write your metrics to a file.
The advantage of this mechanism is that:
- It's simple and easy to understand
- It is asynchronous with Monasca Agent. There are two technical
advantages to this:
- Your check does not need to run at same frequency as
the agent.
- If your check blocks, this does not affect other checks
in the agent because the agent is not blocked.
- You can create the metrics as a side effect of doing other
stuff. For example, a server process can write the JSON
file while it is processing requests. With the normal plugin
architecture, you need to write code that talks to your
server process to access the metrics.
- You can write the check code in any language.
Change-Id: I1e998fa677e16cc04d46edd46d0e6433131825e7
Rewrote the plugin to look at the cgroups and docker api to
generate metrics for docker containers
Added using the docker python library to connect to
docker
Added the ability to set kubernetes specific dimensions if
running in a kubernetes cluster
Change-Id: I322e1d983c3ec554732fbfe0e14ccb9e6b3b29f5
Co-Authored-By: Tim Buckley <timothy.jas.buckley@hpe.com>
This is useful in dashboards where we display libvirt and ovs
metrics for a physical host, it will elimnate the step of translating
vm and tenant ids if needing to investigate project usage.
The libvirt plugin metadata config array will now support
'vm_name' and 'tenant_name', and the ovs plugin will now
support the metadata config value for 'tenant_name'.
Change-Id: If76418b83119a12b8534fb7f7cb224339f357be8
To enable customer VMs to use auto-scaling feature of Heat, the customer
metrics must include the scale_group. This change enables the monasca
agent to include scale group dimension with customer metrics.
Change-Id: I058557e6987888ff38d1bc7d21a26aa738b242a6
kafka_consumer is able to figure
out partitions on its own, there is
no need to specify them here.
Change-Id: I9f97d95bf49b7b89a4eccfa119e07cb30e4f37b1
The collector now checks the yaml configuration file for a variable
called collect_period.
If collect_period is specified, the collector will skip calling the
plugin and collecting metrics for the plugin until the specified
number of seconds has passed.
Change-Id: I423b1f14d4b0580e625e5f57c729c4a6c9923a93
This adds a very basic plugin that monitors SolidFire storage clusters. The
plugin provides cluster fault and usage metrics. This uses a stripped down
version of the Cinder volume driver to provide connectivity to the cluster.
Change-Id: Ibd0d577b6bf45747a0daaec2c5c3479741ae0937
Added two new flags in ovs.yaml to avoid posting huge metrics
in scale environment.
i) use_rate_metrics- This flag decides whether rate metrics is
required or not for publishing metrics
ii) use_health_metrics - This flag decides whether health related
metrics like errors,
dropped and collisions are required for metric collection
Co-Authored-By: Gandharva <gandharvas@hpe.com>
Change-Id: I78188c4f5b68718b01a0e19eaf612dd02b8e85fe
This plugin detects the ovs exsistance and writes the configurations to
ovs.yaml in conf.d directory. The configurations will be fetched from the
neutron configuration file.
Change-Id: I0b469276231764f6c854a6b0149cd3a4269ac4a2
Adding the metrics to monitor resource pools, resources
and projections per a node.
Metrics for Vertica are now:
vertica.connection_status
vertica.node_status
vertica.projection.ros_count
vertica.projection.tuple_mover_mergeouts
vertica.projection.tuple_mover_moveouts
vertica.projection.wos_used_bytes
vertica.resource.disk_space_rejections
vertica.resource.pool.memory_inuse_kb
vertica.resource.pool.memory_size_actual_kb
vertica.resource.pool.rejection_count
vertica.resource.pool.running_query_count
vertica.resource.request_queue_depth
vertica.resource.resource_rejections
vertica.resource.wos_used_bytes
Change-Id: I6e30d524ca77f900f231b9a626bfa853e31dbeb1
Ignore freezer backups in metrics.
Fixes problem with disk usage alarms flapping
for /var/freezer directory which may or may not
exist.
Change-Id: I562bdd71f43e9ca14735954727e4e8837d3b8e92
Fix to enable instance scale_group metadata dimension in libvirt
plugin to support monasca based autoscaling.
Change-Id: Ia7c51091c6a07105f6d9e295957ad7bf724e004e