JanusGraph/Janusgraph image JMX is disabled by default
Hi, I'm trying to take your code as an example to adding only the jmx exporter into an existing Janusgraph statefull set in kubernetes. with an already existing Prometheuos and Graphana. In janus graph JMX metrics documentation, it seems like JMX is disabled by default. and you need to provide:
metrics.enabled = true
# Required
metrics.jmx.enabled = true
I don't see those parameters anywhere in the files you provided, and was wondering how is it still works?
In addition, do you have any tips on what should I do to make it work on existing Prometheus pods which was deployed by helm?
my janus graph is deployed as follows: (Thanks BTW, your files was helpful in any case ;) )
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: janusgraph
labels:
app: janusgraph
spec:
serviceName: janusgraph-service
replicas: 1
selector:
matchLabels:
app: janusgraph
template:
metadata:
labels:
app: janusgraph
spec:
containers:
- name: janusgraph
image: janusgraph/janusgraph:latest
env:
- name: janusgraph.query.force-index
value: "true"
- name: janusgraph.storage.read-only
value: "true"
- name: janusgraph.storage.berkeleyje.lock-mode
value: "LockMode.READ_UNCOMMITTED"
- name: gremlinserver.channelizer
value: "org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer"
- name: gremlinserver.maxContentLength
value: "1048576"
- name: gremlinserver.writeBufferHighWaterMark
value: "1048576"
command:
- /bin/bash
- "-c"
- |
set -ex
if [[ ! -d /var/lib/janusgraph/data ]]; then
mkdir /var/lib/janusgraph/data
mkdir /var/lib/janusgraph/index
tar -xzf /mnt/kb-data/janusgraph-be.tar.gz -C /var/lib/janusgraph
fi
sed -i 's/consoleReporter: {enabled: true/consoleReporter: {enabled: false/' /opt/janusgraph/conf/gremlin-server/gremlin-server.yaml
sed -i 's/csvReporter: {enabled: true/csvReporter: {enabled: false/' /opt/janusgraph/conf/gremlin-server/gremlin-server.yaml
sed -i 's/slf4jReporter: {enabled: true/slf4jReporter: {enabled: false/' /opt/janusgraph/conf/gremlin-server/gremlin-server.yaml
sed -i 's/jmxReporter: {enabled: true/jmxReporter: {enabled: false/' /opt/janusgraph/conf/gremlin-server/gremlin-server.yaml
bin/gremlin-server.sh install com.codahale.metrics metrics-graphite 3.0.2
rm -f /opt/janusgraph/lib/metrics-core-3.0.2.jar
docker-entrypoint.sh janusgraph
ports:
- containerPort: 8182
volumeMounts:
- name: data
mountPath: /var/lib/janusgraph
- name: kb-data
mountPath: /mnt/kb-data
livenessProbe:
httpGet:
port: 8182
path: ?gremlin=g.V(123).count()
initialDelaySeconds: 120
periodSeconds: 10
volumes:
- name: kb-data
azureFile:
secretName: kb-data-secret
shareName: kb-data
readOnly: true
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "default"
resources:
requests:
storage: 7Gi
---
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/azure-dns-label-name: myServiceDnsPrefix
name: janusgraph-service
spec:
type: LoadBalancer
selector:
app: janusgraph
ports:
- port: 8182
name: janusgraph
Hi @winaterion , I used prometheus-operator, which internally uses the ServiceMonitor CRD to scrape for metrics and registers to prometheus.