Prometheus Metrics to StackDriver Monitoring - monitoring

We need to monitor the Neo4j hosted in GCP VM's instance for which we are using Prometheus. Neo4j Natively supports sending metrics to Prometheus.
Now we need to create a dashboard using the stack driver monitoring with the exposed prometheus metrics.
Any suggestions/help will be useful.
Thanks in advance !!

Well, I tried to find something elaborated about this particular scenario but all I found was related with GKE and prometheus as a sidecar. However, the configuration must be similar and probably you will find this documentation useful. This guide will also lead you to this official documentation.
Also found another user of neo4j trying to do something similar and there is an answer that maybe you should check. For logging neo4j to Stackdriver Logging, see this.

Related

Measuring total number of active (HTTP) connections with Metrics in Dropwizard application

I have a Dropwizard application I am working with where I need to be able to monitor for active HTTP connections. I know Metrics provides classes for Instrumenting Jetty, and of interest to me is measuring total number of active connections....however the javadoc doesn't help me much, and I can't find any examples of how this specific functionality is implemented. Does anyone have any examples they can share?
I'm not sure what your exact use-case is but if you just need to be able to see active connections I think the simplest solutions are just using monitoring solutions like JMX, Datadog, New Relic, or Appdynamics. If you need it in the code I think you'd need to manually implement something. I'd recommend StatsD or Redis is that's the path you go down.

Zabbix integration with prometheus

We are currently monitoring our network devices with Zabbix but now we want to use Zabbix along with Prometheus for real-time monitoring and powerful alerting of Prometheus.
How can I integrate my existing Zabbix solution with Prometheus?
There seems to be a Zabbix to Prometheus exporter that may achieve what you want, but please note that I wouldn't recommend that.
Apart from some temporary migration scenarios I see little use in polling one monitoring system from the other. You're probably better off deploying the appropriate Prometheus exporters (e.g. SNMP, if your talking about network devices) and use Prometheus for the whole monitoring setup.
Of course you can still keep your Zabbix setup running side by side, if you need to.

Stackdriver - monitor multiple JMX

I'm trying to configure google stackdriver to monitor multiple JVM instances on same machine by using this plugin: https://cloud.google.com/monitoring/agent/plugins/jvm
I created two block with different ServiceURL ports (for different JMXs) and different InstancePrefix ("jvm" and "jvm2") like it described here: https://collectd.org/wiki/index.php/Plugin:GenericJMX
But I still don't see second jvm in metrics-explorer.
Unfortunately, this kind of configuration is not currently supported by the Stackdriver monitoring agent. The suggested workaround is to use Custom Metrics.

Docker and service clusters

We are looking into using Docker plus either Mesos/Marathon or Kubernetes for hosting a cluster. However, the one issue that we haven't really seen any answers for is how to allow clustered services to connect to each other correctly. All of the ones that I have seen need to know about at least one other node before they can join the cluster. Some need to know about every node. However, in Kubernetes and Mesos, there's no way to know what those IP addresses are ahead of time.
So, are there any best practices for this? If it helps, some technologies we're looking into deploying as containers are ElasticSearch, ActiveMQ, and MongoDB. There may be others.
However, the one issue that we haven't really seen any answers for is how to allow clustered services to connect to each other correctly.
I think you're talking about HA/replicated/sharded apps here.
At the moment, in kubernetes, you can accomplish this by making an api call listing all the "endpoints" of the service; that will tell you where your peers are running.
We'd eventually like to support the use case you describe in a more first-class manner.
I filed https://github.com/GoogleCloudPlatform/kubernetes/issues/3419 to maybe get something more standardized started here.
I also wanted to setup an ElasticSearch cluster using Mesos/Marathon. As the existing "solutions" either were merely undocumented, or not working/outdated, I set up my own container.
If you like, have a look at https://github.com/tobilg/docker-elasticsearch-marathon
If you have a running Marathon installation (I use v0.8.1), then setting up an ElasticSearch cluster should be a matter of a few minutes.
UPDATE:
The container now uses Elasticsearch v1.5.2 and is able to run on the latest Marathon v0.8.2.
As for Kubernetes, it currently does require kube-controllers-manager to start with --machines argument given a list of minion IPs or hostnames.
I don't see any easy way how to handle this correctly in Kubernetes now. Yes, you could make a call to the API that returns list of endpoints but you must watch for changes and take an action when endpoints change...
I would prefer to use Mesos/Marathon that is well prepared for this scenario. You should implement custom Framework for Mesos. There is already Framework for ElasticSearch prepared: http://mesos.apache.org/documentation/latest/mesos-frameworks/

Graphite Network interface monitoring

I'm trying to monitor my network usage with Graphite but I can't figure out how to do this, could you help me please?
In addition to this, I would like to monitor some other services, as nginx, mysql, etc,..
Thanks for your help!
Best.
Ofcourse there are multiple solutions possible. The solution I'm using is collectd. With collectd you can collect statistic data from plugins in rrd files. It has a lot of plugins like network, nginx and mysql.
It does not generate graphs by itself, but there are multiple ways to generate graphs. One of them is to send the collected data to graphite with the graphite plugin.

Resources