Hawkular Monitoring Support
The TIBCO OPE provides support for exposing the application bean JMX endpoints on the HTTP protocol, by using Jolokia library.
Jolokia is a third-party library released under Apache license and enables exposing application JMX information on HTTP protocol. An OpenShift monitoring application such as Hawkular uses this information to display the additional metrics as shown below.
An example of an Offer and Price Engine deployment YAML file with Jolokia configuration:
ope_openshift.yaml
================================
apiVersion: v1
kind: List
items:
- apiVersion: v1
kind: Service
metadata:
name: ope
spec:
ports:
- port: 9090
targetPort: 9090
name: jolokia
selector:
deploymentconfig: ope
- apiVersion: v1
kind: DeploymentConfig
metadata:
name: ope
annotations:
hawkular-openshift-agent: ope-jolokia
spec:
replicas: 1
selector:
deploymentconfig: ope
strategy:
# We set the type of strategy to Recreate, which means that it will be scaled down prior to being scaled up
type: Recreate
template:
metadata:
labels:
deploymentconfig: ope
spec:
containers:
- image: tibco/ope:5.0
name: ope
ports:
- name: jolokia
containerPort: 9090
- name: http
containerPort: 9090
env:
- name: CONSOLE_LEVEL
value: INFO
- name: CONSUL_HOST
value: 10.97.97.34
- name: CONSUL_PORT
value: '8500'
volumes:
- name: hawkular-openshift-agent
configMap:
name: ope-jolokia
readinessProbe:
failureThreshold: 3
httpGet:
path: /actuator/ready
port: 9090
scheme: HTTP
periodSeconds: 300
successThreshold: 1
timeoutSeconds: 3
livenessProbe:
failureThreshold: 3
httpGet:
path: /actuator/health
port: 9090
scheme: HTTP
periodSeconds: 300
successThreshold: 1
timeoutSeconds: 3
resources:
limits:
cpu: '2'
memory: 2Gi
requests:
cpu: '1'
memory: 1Gi
- apiVersion: v1
kind: ConfigMap
metadata:
name: ope-jolokia
labels:
name: ope-jolokia
data:
hawkular-openshift-agent: |
endpoints:
- type: jolokia
protocol: http
port: 9090
path: /actuator/jolokia/
collection_interval: 15s
metrics:
# int data value
- name: java.lang:type=Memory#ObjectPendingFinalizationCount
type: gauge
description: Object Pending Finalization Count
# long data value
- name: java.lang:type=OperatingSystem#OpenFileDescriptorCount
type: gauge
description: Open File Descriptor Count
# double data value
- name: java.lang:type=OperatingSystem#ProcessCpuLoad
type: gauge
description: Process CPU Load
# composite data value
- name: java.lang:type=Memory#HeapMemoryUsage#used
type: gauge
description: Heap Memory Used
units: B
# boolean value
- name: java.lang:type=Memory#Verbose
type: gauge
description: Memory Verbose Mode
- apiVersion: v1
kind: Route
metadata:
name: ope
spec:
to:
kind: Service
name: ope
- apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: ope
spec:
scaleTargetRef:
kind: DeploymentConfig
name: ope
apiVersion: v1
subresource: scale
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 5
Copyright © Cloud Software Group, Inc. All rights reserved.
