gguttikonda / janusgraph-prometheus

Prometheus setup for JanusGraph
18 stars 9 forks source link

JanusGraph/Janusgraph image JMX is disabled by default #3

Open winaterion opened 4 years ago

winaterion commented 4 years ago

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
gguttikonda commented 4 years ago

Hi @winaterion , I used prometheus-operator, which internally uses the ServiceMonitor CRD to scrape for metrics and registers to prometheus.