diff --git a/Dockerfile b/Dockerfile index 1b2cd28..676ba12 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,6 @@ EXPOSE 9999 WORKDIR /usr/src/app -COPY app/requirements.txt . +COPY app/* /usr/src/app/ -RUN pip install --no-cache-dir -r requirements.txt \ No newline at end of file +RUN pip install --no-cache-dir -r requirements.txt diff --git a/app/metrics b/app/metrics new file mode 100644 index 0000000..8ed826d --- /dev/null +++ b/app/metrics @@ -0,0 +1,22 @@ +vpg_storage_used_in_mb{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 45753 +vpg_actual_rpo{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 6 +vpg_throughput_in_mb{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 0.828125 +vpg_iops{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 16 +vpg_provisioned_storage_in_mb{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 122966 +vpg_vms_count{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 1 +vpg_configured_rpo_seconds{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 300 +vpg_actual_history_in_minutes{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 1064 +vpg_configured_history_in_minutes{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 1440 +vm_actualrpo{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 6 +vm_throughput_in_mb{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 0.0 +vm_iops{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 16 +vm_journal_hard_limit{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 153600 +vm_journal_used_storage_mb{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 7036 +vm_outgoing_bandwidth_in_mbps{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 0.2041015625 +vm_IoOperationsCounter{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 136594 +vm_WriteCounterInMBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 19129 +vm_SyncCounterInMBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 118784 +vm_NetworkTrafficCounterInMBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 11503 +vm_SampleTime{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 2022-11-21T21:57:06.590Z +vm_EncryptedDataInLBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 11427300 +vm_UnencryptedDataInLBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 6271800 diff --git a/app/metrics.txt b/app/metrics.txt index 0616652..f8d55b3 100644 --- a/app/metrics.txt +++ b/app/metrics.txt @@ -1,14 +1,22 @@ -vpg_storage_used_in_mb{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 20560 -vpg_actual_rpo{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 6 -vpg_throughput_in_mb{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 0.0 -vpg_iops{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 0 -vpg_provisioned_storage_in_mb{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 20560 -vpg_vms_count{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 1 -vpg_configured_rpo_seconds{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 300 -vpg_actual_history_in_minutes{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 660 -vpg_configured_history_in_minutes{VpgIdentifier="6c3ec8f0-bf40-4ac7-ae11-0c8a12756e05",VpgName="Loca-Rep"} 1440 -vm_actualrpo{VmIdentifier="51331084-8a37-4250-b8ef-0f3c8b4f8d6a.vm-56",VmName="Ansible"} 6 -vm_throughput_in_mb{VmIdentifier="51331084-8a37-4250-b8ef-0f3c8b4f8d6a.vm-56",VmName="Ansible"} 0.0 -vm_iops{VmIdentifier="51331084-8a37-4250-b8ef-0f3c8b4f8d6a.vm-56",VmName="Ansible"} 0 -vm_journal_used_storage_mb{VmIdentifier="51331084-8a37-4250-b8ef-0f3c8b4f8d6a.vm-56",VmName="Ansible"} 625 -vm_outgoing_bandwidth_in_mbps{VmIdentifier="51331084-8a37-4250-b8ef-0f3c8b4f8d6a.vm-56",VmName="Ansible"} 0.0 +vpg_storage_used_in_mb{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 45751 +vpg_actual_rpo{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 9 +vpg_throughput_in_mb{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 0.03955078125 +vpg_iops{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 6 +vpg_provisioned_storage_in_mb{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 122966 +vpg_vms_count{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 1 +vpg_configured_rpo_seconds{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 300 +vpg_actual_history_in_minutes{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 1057 +vpg_configured_history_in_minutes{VpgIdentifier="0c956d5b-f142-42e5-bb58-04e2fe7cc685",VpgName="RansomTest"} 1440 +vm_actualrpo{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 9 +vm_throughput_in_mb{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 0.0 +vm_iops{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 6 +vm_journal_hard_limit{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 153600 +vm_journal_used_storage_mb{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 7031 +vm_outgoing_bandwidth_in_mbps{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18",VmName="cmh-linux-1"} 0.00634765625 +vm_IoOperationsCounter{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 132857 +vm_WriteCounterInMBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 19021 +vm_SyncCounterInMBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 118784 +vm_NetworkTrafficCounterInMBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 11464 +vm_SampleTime{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 2022-11-21T21:49:46.529Z +vm_EncryptedDataInLBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 11426400 +vm_UnencryptedDataInLBs{VmIdentifier="5da9d183-f3f9-4ea9-bf46-eca5c06aec73.vm-18"} 6051600 diff --git a/app/python-node-exporter.py b/app/python-node-exporter.py index 82f9e07..1df132f 100644 --- a/app/python-node-exporter.py +++ b/app/python-node-exporter.py @@ -59,7 +59,7 @@ def GetDataFunc(): metricsDictionary["vm_actualrpo{VmIdentifier=\"" + vm['VmIdentifier'] + "\",VmName=\"" + vm['VmName'] + "\"}"] = vm["ActualRPO"] metricsDictionary["vm_throughput_in_mb{VmIdentifier=\"" + vm['VmIdentifier'] + "\",VmName=\"" + vm['VmName'] + "\"}"] = vm["ThroughputInMB"] metricsDictionary["vm_iops{VmIdentifier=\"" + vm['VmIdentifier'] + "\",VmName=\"" + vm['VmName'] + "\"}"] = vm["IOPs"] - metricsDictionary["vm_journal_hard_limit{VmIdentifier=\"" + vm['VmIdentifier'] + "\",VmName=\"" + vm['VmName'] + "\"}"] = vm["journalHardLimit"]["limitValue"] + metricsDictionary["vm_journal_hard_limit{VmIdentifier=\"" + vm['VmIdentifier'] + "\",VmName=\"" + vm['VmName'] + "\"}"] = vm["JournalHardLimit"]["LimitValue"] metricsDictionary["vm_journal_used_storage_mb{VmIdentifier=\"" + vm['VmIdentifier'] + "\",VmName=\"" + vm['VmName'] + "\"}"] = vm["JournalUsedStorageMb"] metricsDictionary["vm_outgoing_bandwidth_in_mbps{VmIdentifier=\"" + vm['VmIdentifier'] + "\",VmName=\"" + vm['VmName'] + "\"}"] = vm["OutgoingBandWidthInMbps"] #metricsDictionary["vm_actual_rpo{VmName=\"" + vpg['VmName'] + "\"}"] = vm["actualRPO"] @@ -69,13 +69,13 @@ def GetDataFunc(): statsapi_json = statsapi.json() for vm in statsapi_json : - metricsDictionary["vm_IoOperationsCounter{VmIdentifier=\"" + vm['VmIdentifier' + "\"}"] = vm["IoOperationsCounter"] + metricsDictionary["vm_IoOperationsCounter{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["IoOperationsCounter"] metricsDictionary["vm_WriteCounterInMBs{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["WriteCounterInMBs"] metricsDictionary["vm_SyncCounterInMBs{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["SyncCounterInMBs"] - metricsDictionary["vm_journal_hard_limit{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["NetworkTrafficCounterInMBs"] - metricsDictionary["vm_journal_used_storage_mb{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["SampleTime"] - metricsDictionary["vm_outgoing_bandwidth_in_mbps{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["EncryptionStatistics"]["EncryptedDataInLBs"] - metricsDictionary["vm_outgoing_bandwidth_in_mbps{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["EncryptionStatistics"]["UnencryptedDataInLBs"] + metricsDictionary["vm_NetworkTrafficCounterInMBs{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["NetworkTrafficCounterInMBs"] + #metricsDictionary["vm_SampleTime{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["SampleTime"] + metricsDictionary["vm_EncryptedDataInLBs{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["EncryptionStatistics"]["EncryptedDataInLBs"] + metricsDictionary["vm_UnencryptedDataInLBs{VmIdentifier=\"" + vm['VmIdentifier'] + "\"}"] = vm["EncryptionStatistics"]["UnencryptedDataInLBs"] uri = "https://" + zvm_url + ":" + zvm_port + "/v1/volumes?volumeType=scratch" volapi = requests.get(url=uri, timeout=5, headers=h2, verify=verifySSL) @@ -98,7 +98,7 @@ def GetDataFunc(): time.sleep(5) # open file to write new data - file_object = open('metrics.txt', 'w') + file_object = open('metrics', 'w') for item in metricsDictionary : file_object.write(item) file_object.write(" ") @@ -123,4 +123,4 @@ def WebServer(): # run WebServer func in the background background_thread = Thread(target = WebServer) -background_thread.start() \ No newline at end of file +background_thread.start()