8 Commits

Author SHA1 Message Date
Michael Panzlaff
238b49bc21 add cc-slurm-adapter examples 2026-03-04 17:25:26 +01:00
Michael Panzlaff
59aa0a09bb cc-metric-collector: update woody 2026-03-04 17:13:34 +01:00
Michael Panzlaff
ae65147c77 cc-metric-collector: update tinygpu 2026-03-04 17:13:28 +01:00
Michael Panzlaff
e28a9aafd5 cc-metric-collector: update tinyfat 2026-03-04 17:13:17 +01:00
Michael Panzlaff
95d1f1d5e9 cc-metric-collector: update fritz.spr 2026-03-04 17:01:41 +01:00
Michael Panzlaff
771d7964df cc-metric-collector: update fritz 2026-03-04 16:57:28 +01:00
Michael Panzlaff
7d0f09ecb9 cc-metric-collector: update alex 2026-03-04 16:48:30 +01:00
Jan Eitzinger
bd22bfe5e6 Update config for v1.5.0 2026-03-04 14:57:11 +01:00
57 changed files with 5920 additions and 7451 deletions

View File

@@ -9,25 +9,15 @@ You can find an overview about all clusters
Some systems run with job exclusive nodes, others have node sharing enabled. Some systems run with job exclusive nodes, others have node sharing enabled.
There are CPU systems (Fritz, Meggie, Woody, TinyFat) as well as GPU accelerated There are CPU systems (Fritz, Meggie, Woody, TinyFat) as well as GPU accelerated
clusters (Alex, TinyGPU). clusters (Alex, Helma, TinyGPU).
NHR@FAU uses the following stack: NHR@FAU uses the following stack:
* `cc-metric-collector` as node agent * `cc-metric-collector`
* `cc-metric-store` as temporal metric time series cache. We use one instance
for all clusters.
* `cc-backend` * `cc-backend`
* A homegrown python script running on the management nodes for providing job * `cc-slurm-adapter`
meta data from Slurm
* Builtin sqlite database for job meta and user data (currently 50GB large)
* Job Archive without retention using compressed data.json files (around 700GB)
Currently all API use regular HTTP protocol, but we plan to switch to NATS for We use the following server with Ubuntu Linux:
all communication.
We also push the metric data to an InfluxDB instance for debugging purposes.
The backend and metric store run on the same dedicated Dell server running
Ubuntu Linux:
* Two Intel Xeon(R) Platinum 8352Y with 32 cores each * Two Intel Xeon(R) Platinum 8352Y with 32 cores each
* 512 GB Main memory capacity * 512 GB Main memory capacity

View File

@@ -1,17 +1,19 @@
[Unit] [Unit]
Description=ClusterCockpit Web Server Description=ClusterCockpit Backend
Documentation=https://clustercockpit.org Documentation=https://github.com/ClusterCockpit/cc-backend
Wants=network-online.target Wants=network-online.target
After=network-online.target After=network-online.target
After=mariadb.service mysql.service
[Service] [Service]
WorkingDirectory=/opt/monitoring/cc-backend WorkingDirectory=/opt/monitoring/cc-backend
Type=notify Type=notify
User=clustercockpit
Group=clustercockpit
NotifyAccess=all NotifyAccess=all
Restart=on-failure Restart=on-failure
RestartSec=30 RestartSec=30
TimeoutStopSec=100 TimeoutStartSec=200
TimeoutStopSec=200
ExecStart=/opt/monitoring/cc-backend/cc-backend -loglevel info -server -config ./config.json ExecStart=/opt/monitoring/cc-backend/cc-backend -loglevel info -server -config ./config.json
[Install] [Install]

View File

@@ -1,26 +1,65 @@
{ {
"addr": "0.0.0.0:443", "main": {
"addr": "127.0.0.1:8050",
"api-allowed-ips": ["*"],
"stop-jobs-exceeding-walltime":288000, "stop-jobs-exceeding-walltime":288000,
"short-running-jobs-duration": 300, "short-running-jobs-duration": 300,
"resampling": {
"minimum-points": 600,
"trigger": 180,
"resolutions": [240, 60]
},
"nodestate-retention": {
"policy": "move",
"target-kind": "file",
"target-path": "/opt/monitoring/cc-backend/var/nodestate-archive/"
},
"emission-constant": 317,
"enable-job-taggers": true
},
"cron": {
"commit-job-worker": "1m",
"duration-worker": "5m",
"footprint-worker": "10m"
},
"archive": {
"kind": "file",
"path": "./var/job-archive"
},
"auth": {
"ldap": { "ldap": {
"url": "ldaps://hpcldap.rrze.uni-erlangen.de", "url": "ldaps://hpcldap.rrze.uni-erlangen.de",
"user_base": "ou=people,ou=hpc,dc=rrze,dc=uni-erlangen,dc=de", "user-base": "ou=people,ou=hpc,dc=rrze,dc=uni-erlangen,dc=de",
"search_dn": "cn=hpcmonitoring,ou=roadm,ou=profile,ou=hpc,dc=rrze,dc=uni-erlangen,dc=de", "search-dn": "cn=hpcmonitoring,ou=roadm,ou=profile,ou=hpc,dc=rrze,dc=uni-erlangen,dc=de",
"user_bind": "uid={username},ou=people,ou=hpc,dc=rrze,dc=uni-erlangen,dc=de", "user-bind": "uid={username},ou=people,ou=hpc,dc=rrze,dc=uni-erlangen,dc=de",
"user_filter": "(&(objectclass=posixAccount))", "user-filter": "(&(objectclass=posixAccount))",
"sync_interval": "24h" "sync-interval": "24h"
}, },
"jwts": { "jwts": {
"syncUserOnLogin": true, "sync-user-on-login": true,
"updateUserOnLogin": true, "update-user-on-login": true,
"trustedIssuer": "https://portal.hpc.fau.de/", "validate-user": false,
"validateUser": false, "max-age": "1h",
"max-age": "168h" "trusted-issuer": "https://portal.hpc.fau.de/"
}
},
"metric-store": {
"checkpoints": {
"file-format": "wal",
"directory": "./var/metric-checkpoints"
},
"cleanup": {
"mode": "archive",
"directory": "./var/metric-archive"
},
"nats-subscriptions": [
{
"subscribe-to": "ccmetrics.>"
}
],
"retention-in-memory": "24h",
"memory-cap": 200
}, },
"https-cert-file": "/etc/letsencrypt/live/monitoring.nhr.fau.de/fullchain.pem",
"https-key-file": "/etc/letsencrypt/live/monitoring.nhr.fau.de/privkey.pem",
"user": "clustercockpit",
"group": "clustercockpit",
"archive": { "archive": {
"kind": "file", "kind": "file",
"path": "./var/job-archive", "path": "./var/job-archive",
@@ -29,213 +68,10 @@
"policy": "none" "policy": "none"
} }
}, },
"enable-resampling": { "nats": {
"trigger": 30, "address": "nats://monitoring.nhr.fau.de:4222",
"resolutions": [ "username": "metricstore",
600, "password": "XXX"
300,
120,
60
]
}, },
"emission-constant": 317, "ui-file": "uiConfig.json"
"ui-defaults": {
"analysis_view_histogramMetrics": [
"flops_any",
"mem_bw",
"mem_used"
],
"analysis_view_scatterPlotMetrics": [
[
"flops_any",
"mem_bw"
],
[
"flops_any",
"cpu_load"
],
[
"cpu_load",
"mem_bw"
]
],
"job_view_nodestats_selectedMetrics": [
"flops_any",
"mem_bw",
"mem_used"
],
"job_view_polarPlotMetrics": [
"flops_any",
"mem_bw",
"mem_used"
],
"job_view_selectedMetrics": [
"flops_any",
"mem_bw",
"mem_used"
],
"job_view_showFootprint": true,
"job_list_usePaging": false,
"plot_general_colorBackground": true,
"plot_general_colorscheme": [
"#00bfff",
"#0000ff",
"#ff00ff",
"#ff0000",
"#ff8000",
"#ffff00",
"#80ff00"
],
"plot_general_lineWidth": 3,
"plot_list_jobsPerPage": 10,
"plot_list_selectedMetrics": [
"cpu_load",
"mem_used",
"flops_any",
"mem_bw"
],
"plot_view_plotsPerRow": 3,
"plot_view_showPolarplot": true,
"plot_view_showRoofline": true,
"plot_view_showStatTable": true,
"system_view_selectedMetric": "cpu_load",
"analysis_view_selectedTopEntity": "user",
"analysis_view_selectedTopCategory": "totalWalltime",
"status_view_selectedTopUserCategory": "totalJobs",
"status_view_selectedTopProjectCategory": "totalJobs"
},
"clusters": [
{
"name": "fritz",
"metricDataRepository": {
"kind": "cc-metric-store",
"url": "http://localhost:8082",
"token": "-"
},
"filterRanges": {
"numNodes": {
"from": 1,
"to": 64
},
"duration": {
"from": 0,
"to": 86400
},
"startTime": {
"from": "2022-01-01T00:00:00Z",
"to": null
}
}
},
{
"name": "alex",
"metricDataRepository": {
"kind": "cc-metric-store",
"url": "http://localhost:8082",
"token": "-"
},
"filterRanges": {
"numNodes": {
"from": 1,
"to": 64
},
"duration": {
"from": 0,
"to": 86400
},
"startTime": {
"from": "2022-01-01T00:00:00Z",
"to": null
}
}
},
{
"name": "woody",
"metricDataRepository": {
"kind": "cc-metric-store",
"url": "http://localhost:8082",
"token": "-"
},
"filterRanges": {
"numNodes": {
"from": 1,
"to": 1
},
"duration": {
"from": 0,
"to": 172800
},
"startTime": {
"from": "2020-01-01T00:00:00Z",
"to": null
}
}
},
{
"name": "tinyfat",
"metricDataRepository": {
"kind": "cc-metric-store",
"url": "http://localhost:8082",
"token": "-"
},
"filterRanges": {
"numNodes": {
"from": 1,
"to": 1
},
"duration": {
"from": 0,
"to": 172800
},
"startTime": {
"from": "2020-01-01T00:00:00Z",
"to": null
}
}
},
{
"name": "tinygpu",
"metricDataRepository": {
"kind": "cc-metric-store",
"url": "http://localhost:8082",
"token": "-"
},
"filterRanges": {
"numNodes": {
"from": 1,
"to": 1
},
"duration": {
"from": 0,
"to": 172800
},
"startTime": {
"from": "2020-01-01T00:00:00Z",
"to": null
}
}
},
{
"name": "meggie",
"metricDataRepository": {
"kind": "cc-metric-store",
"url": "http://localhost:8082",
"token": "-"
},
"filterRanges": {
"numNodes": {
"from": 1,
"to": 64
},
"duration": {
"from": 0,
"to": 86400
},
"startTime": {
"from": "2018-01-01T00:00:00Z",
"to": null
}
}
}
]
} }

View File

@@ -0,0 +1,59 @@
{
"job-view": {
"show-polar-plot":true,
"show-footprint": true,
"show-roofline": true,
"show-stat-table": true
},
"metric-config": {
"job-list-metrics": ["cpu_load", "flops_any", "mem_bw", "mem_used"],
"job-view-plot-metrics": ["cpu_load", "cpu_user", "flops_any", "mem_bw", "mem_used", "clock", "ipc", "cpu_power", "nfs4_total"],
"job-view-table-metrics": ["mem_bw", "flops_any", "mem_used"],
"clusters": [
{
"name": "fritz",
"job-view-plot-metrics": ["cpu_load", "cpu_user", "flops_any", "vectorization_ratio", "mem_bw", "mem_used", "flops_dp", "flops_sp", "ib_recv", "ib_xmit", "clock", "ipc", "cpu_power", "mem_power", "nfs4_total"]
},
{
"name": "alex",
"job-list-metrics": ["acc_utilization", "acc_mem_used", "cpu_load", "flops_any", "mem_bw", "mem_used"],
"job-view-plot-metrics": ["acc_utilization", "nv_mem_util", "acc_mem_used", "acc_power", "nv_sm_clock", "nv_temp", "cpu_load", "cpu_user", "flops_any", "mem_bw", "mem_used", "clock", "ipc", "cpu_power", "nfs4_total"],
"job-view-table-metrics": ["acc_utilization", "mem_bw", "flops_any", "mem_used"]
},
{
"name": "tinygpu",
"job-list-metrics": ["acc_utilization", "acc_mem_used", "cpu_load", "flops_any", "mem_bw", "mem_used"],
"job-view-plot-metrics": ["acc_utilization", "nv_mem_util", "acc_mem_used", "acc_power", "nv_sm_clock", "nv_temp", "cpu_load", "cpu_user", "flops_any", "mem_bw", "mem_used", "clock", "ipc", "cpu_power", "nfs4_total"],
"job-view-table-metrics": ["acc_utilization", "mem_bw", "flops_any", "mem_used"]
},
{
"name": "helma",
"job-list-metrics": ["acc_utilization", "acc_mem_used", "cpu_load", "flops_any", "mem_bw", "mem_used"],
"job-view-plot-metrics": ["acc_utilization", "nv_mem_util", "acc_mem_used", "acc_power", "nv_sm_clock", "nv_temp", "cpu_load", "cpu_user", "flops_any", "mem_bw", "mem_used", "clock", "ipc", "cpu_power", "ib_recv", "ib_xmit", "nfs4_total"],
"job-view-table-metrics": ["acc_utilization", "mem_bw", "flops_any", "mem_used"],
"sub-clusters": [
{
"name": "cpu",
"job-list-metrics": ["cpu_load", "flops_any", "mem_bw", "mem_used"],
"job-view-plot-metrics": [ "cpu_load", "cpu_user", "flops_any", "mem_bw", "mem_used", "clock", "ipc", "cpu_power", "flops_dp", "flops_sp", "ib_recv", "ib_xmit", "nfs4_total"],
"job-view-table-metrics": ["mem_bw", "flops_any", "mem_used"]
}
]
}
]
},
"plot-configuration": {
"plots-per-row": 3,
"color-background": true,
"line-width": 3,
"color-scheme": [
"#00bfff",
"#0000ff",
"#ff00ff",
"#ff0000",
"#ff8000",
"#ffff00",
"#80ff00"
]
}
}

View File

@@ -27,15 +27,11 @@
"send_derived_values": true "send_derived_values": true
}, },
"diskstat" : {}, "diskstat" : {},
"iostat" : {}, "nfsiostat" : {},
"ibstat" : { "ibstat" : {
"send_abs_values": true, "send_abs_values": true,
"send_derived_values": true "send_derived_values": true
}, },
"ipmistat" : {
"send_abs_values": true,
"send_derived_values": true
},
"tempstat" : { "tempstat" : {
"tag_override" : { "tag_override" : {
"hwmon0" : { "hwmon0" : {

View File

@@ -1,8 +1,10 @@
{ {
"sinks": "/etc/cc-metric-collector/sinks.json", "sinks-file": "/etc/cc-metric-collector/sinks.json",
"collectors" : "/etc/cc-metric-collector/collectors.json", "collectors-file" : "/etc/cc-metric-collector/collectors.json",
"receivers" : "/etc/cc-metric-collector/receivers.json", "receivers-file" : "/etc/cc-metric-collector/receivers.json",
"router" : "/etc/cc-metric-collector/router.json", "router-file" : "/etc/cc-metric-collector/router.json",
"main" : {
"interval": "60s", "interval": "60s",
"duration": "10s" "duration": "10s"
} }
}

View File

@@ -1,12 +1,6 @@
{ {
"add_tags" : [ "process_messages" : {
{ "rename_messages" : {
"key" : "cluster",
"value" : "alex",
"if" : "*"
}
],
"rename_metrics" : {
"load_one" : "cpu_load", "load_one" : "cpu_load",
"cpu_load_core" : "cpu_load", "cpu_load_core" : "cpu_load",
"net_bytes_in_bw" : "net_bytes_in", "net_bytes_in_bw" : "net_bytes_in",
@@ -31,7 +25,14 @@
"nv_fb_mem_used" : "acc_mem_used", "nv_fb_mem_used" : "acc_mem_used",
"nv_power_usage" : "acc_power" "nv_power_usage" : "acc_power"
}, },
"drop_metrics" : [ "add_tags_if" : [
{
"key" : "cluster",
"value" : "alex",
"if" : "true"
}
],
"drop_messages" : [
"net_bytes_in", "net_bytes_in",
"net_bytes_out", "net_bytes_out",
"ib_recv", "ib_recv",
@@ -45,14 +46,15 @@
"lustre_write_bytes", "lustre_write_bytes",
"lustre_write_requests" "lustre_write_requests"
], ],
"interval_timestamp" : false,
"num_cache_intervals" : 0,
"change_unit_prefix": { "change_unit_prefix": {
"mem_used": "G", "name == 'mem_used'": "G",
"swap_used": "G", "name == 'swap_used'": "G",
"mem_total": "G", "name == 'mem_total'": "G",
"swap_total": "G", "name == 'swap_total'": "G",
"cpufreq": "M" "name == 'cpufreq'": "M"
}, },
"normalize_metrics" : true "normalize_metrics" : true
},
"interval_timestamp" : false,
"num_cache_intervals" : 0
} }

View File

@@ -5,7 +5,7 @@
"port": "8086", "port": "8086",
"organization" : "ClusterCockpit", "organization" : "ClusterCockpit",
"database" : "alex", "database" : "alex",
"password": "XYZ", "password": "XYX",
"ssl": true, "ssl": true,
"meta_as_tags" : [ "meta_as_tags" : [
"unit" "unit"
@@ -21,6 +21,7 @@
"idle_connection_timeout" : "60s", "idle_connection_timeout" : "60s",
"flush_delay" : "2s", "flush_delay" : "2s",
"max_retries" : 1, "max_retries" : 1,
"timeout": "10s" "timeout" : "10s",
"precision": "s"
} }
} }

View File

@@ -10,21 +10,24 @@
"host": "monitoring-test.nhr.uni-erlangen.de", "host": "monitoring-test.nhr.uni-erlangen.de",
"port": "8086", "port": "8086",
"organization" : "ClusterCockpit", "organization" : "ClusterCockpit",
"database": "fritz_neu", "database" : "alex",
"password": "XZY", "password": "XYZ",
"ssl": true, "ssl": true,
"meta_as_tags" : [ "meta_as_tags" : [
"unit" "unit"
] ]
}, },
"fritzstore": { "alexstore" : {
"type" : "http", "type" : "http",
"url": "http://monitoring.nhr.fau.de:8082/api/write?cluster=fritz", "url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=alex",
"jwt": "XZY", "jwt": "XYZ",
"meta_as_tags" : [ "meta_as_tags" : [
"unit" "unit"
], ],
"idle_connection_timeout": "60s" "idle_connection_timeout" : "60s",
"flush_delay" : "2s",
"max_retries" : 1,
"timeout" : "10s"
}, },
"debugstdout" : { "debugstdout" : {
"type": "stdout", "type": "stdout",

View File

@@ -38,6 +38,177 @@
} }
} }
}, },
"cpufreq_cpuinfo": {}, "nfsiostat": {},
"nfsiostat": {} "likwid": {
"force_overwrite" : true,
"invalid_to_zero" : true,
"access_mode" : "accessdaemon",
"accessdaemon_path" : "/apps/likwid/5.3.0-spr/sbin",
"liblikwid_path": "/apps/likwid/5.3.0-spr/lib/liblikwid.so",
"eventsets": [
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"MBOX0C0": "CAS_COUNT_RD",
"MBOX0C1": "CAS_COUNT_WR",
"MBOX1C0": "CAS_COUNT_RD",
"MBOX1C1": "CAS_COUNT_WR",
"MBOX2C0": "CAS_COUNT_RD",
"MBOX2C1": "CAS_COUNT_WR",
"MBOX3C0": "CAS_COUNT_RD",
"MBOX3C1": "CAS_COUNT_WR",
"MBOX4C0": "CAS_COUNT_RD",
"MBOX4C1": "CAS_COUNT_WR",
"MBOX5C0": "CAS_COUNT_RD",
"MBOX5C1": "CAS_COUNT_WR",
"MBOX6C0": "CAS_COUNT_RD",
"MBOX6C1": "CAS_COUNT_WR",
"MBOX7C0": "CAS_COUNT_RD",
"MBOX7C1": "CAS_COUNT_WR",
"MBOX8C0": "CAS_COUNT_RD",
"MBOX8C1": "CAS_COUNT_WR",
"MBOX9C0": "CAS_COUNT_RD",
"MBOX9C1": "CAS_COUNT_WR",
"MBOX10C0": "CAS_COUNT_RD",
"MBOX10C1": "CAS_COUNT_WR",
"MBOX11C0": "CAS_COUNT_RD",
"MBOX11C1": "CAS_COUNT_WR",
"MBOX12C0": "CAS_COUNT_RD",
"MBOX12C1": "CAS_COUNT_WR",
"MBOX13C0": "CAS_COUNT_RD",
"MBOX13C1": "CAS_COUNT_WR",
"MBOX14C0": "CAS_COUNT_RD",
"MBOX14C1": "CAS_COUNT_WR",
"MBOX15C0": "CAS_COUNT_RD",
"MBOX15C1": "CAS_COUNT_WR",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_DOUBLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_DOUBLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_DOUBLE",
"PMC3": "FP_ARITH_INST_RETIRED_512B_PACKED_DOUBLE",
"PWR0": "PWR_PKG_ENERGY",
"PWR3": "PWR_DRAM_ENERGY"
},
"metrics": [
{
"calc": "0.000001*(FIXC1/FIXC2)/inverseClock",
"name": "clock",
"publish": true,
"unit": "MHz",
"type": "hwthread"
},
{
"calc": "FIXC0/FIXC1",
"name": "ipc",
"publish": true,
"type": "hwthread"
},
{
"calc": "PWR0/time",
"name": "cpu_power",
"publish": true,
"unit": "Watt",
"type": "socket"
},
{
"calc": "PWR0",
"name": "cpu_energy",
"publish": true,
"unit": "Joules",
"type": "socket"
},
{
"calc": "PWR3/time",
"name": "mem_power",
"unit": "Watt",
"publish": true,
"type": "socket"
},
{
"calc": "PWR3",
"name": "mem_energy",
"publish": true,
"unit": "Joules",
"type": "socket"
},
{
"calc": "1E-9*(PMC0*2.0+PMC1+PMC2*4.0+PMC3*8.0)/time",
"name": "flops_dp",
"unit": "GFlops/s",
"publish": true,
"type": "hwthread"
},
{
"calc": "1E-9*(MBOX0C0+MBOX1C0+MBOX2C0+MBOX3C0+MBOX4C0+MBOX5C0+MBOX6C0+MBOX7C0+MBOX8C0+MBOX9C0+MBOX10C0+MBOX11C0+MBOX12C0+MBOX13C0+MBOX14C0+MBOX15C0+MBOX0C1+MBOX1C1+MBOX2C1+MBOX3C1+MBOX4C1+MBOX5C1+MBOX6C1+MBOX7C1+MBOX8C1+MBOX9C1+MBOX10C1+MBOX11C1+MBOX12C1+MBOX13C1+MBOX14C1+MBOX15C1)*64.0/time",
"name": "mem_bw",
"unit": "GBytes/s",
"publish": true,
"type": "socket"
},
{
"calc": "PMC0+PMC2+PMC3",
"name": "dp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2+PMC3",
"name": "dp_fp_ins",
"type": "hwthread",
"publish": false
}
]
},
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"FIXC3": "TOPDOWN_SLOTS",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_SINGLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_SINGLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_SINGLE",
"PMC3": "FP_ARITH_INST_RETIRED_512B_PACKED_SINGLE"
},
"metrics": [
{
"calc": "1E-9*(PMC0*4.0+PMC1+PMC2*8.0+PMC3*16.0)/time",
"name": "flops_sp",
"unit": "GFlops/s",
"publish": true,
"type": "hwthread"
},
{
"calc": "PMC0+PMC2+PMC3",
"name": "sp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2+PMC3",
"name": "sp_fp_ins",
"type": "hwthread",
"publish": false
}
]
}
],
"globalmetrics": [
{
"calc": "100*((sp_vec_ins+dp_vec_ins)/(sp_fp_ins+dp_fp_ins))",
"name": "vectorization_ratio",
"unit": "%",
"type": "hwthread",
"publish": true
},
{
"calc": "(flops_dp * 2) + flops_sp",
"name": "flops_any",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
}
]
}
} }

View File

@@ -1,8 +1,10 @@
{ {
"sinks": "/home/hpc/unrz/unrz139/Work/cc-metric-collector/configs/fritz.spr2/sinks2.json", "sinks-file": "/etc/cc-metric-collector/sinks.json",
"collectors" : "/home/hpc/unrz/unrz139/Work/cc-metric-collector/configs/fritz.spr2/collectors.json", "collectors-file" : "/etc/cc-metric-collector/collectors.json",
"receivers" : "/home/hpc/unrz/unrz139/Work/cc-metric-collector/configs/fritz.spr2/receivers.json", "receivers-file" : "/etc/cc-metric-collector/receivers.json",
"router" : "/home/hpc/unrz/unrz139/Work/cc-metric-collector/configs/fritz.spr2/router.json", "router-file" : "/etc/cc-metric-collector/router.json",
"main" : {
"interval": "60s", "interval": "60s",
"duration": "10s" "duration": "10s"
} }
}

View File

@@ -1,12 +1,6 @@
{ {
"add_tags" : [ "process_messages": {
{ "rename_messages" : {
"key" : "cluster",
"value" : "fritz",
"if" : "*"
}
],
"rename_metrics" : {
"load_one" : "cpu_load", "load_one" : "cpu_load",
"net_bytes_in_bw" : "net_bytes_in", "net_bytes_in_bw" : "net_bytes_in",
"net_bytes_out_bw" : "net_bytes_out", "net_bytes_out_bw" : "net_bytes_out",
@@ -28,7 +22,14 @@
"lustre_inode_permission_diff" : "lustre_inode_permission", "lustre_inode_permission_diff" : "lustre_inode_permission",
"cpufreq" : "clock" "cpufreq" : "clock"
}, },
"drop_metrics" : [ "add_tags_if" : [
{
"key" : "cluster",
"value" : "fritz",
"if" : "true"
}
],
"drop_messages" : [
"net_bytes_in", "net_bytes_in",
"net_bytes_out", "net_bytes_out",
"ib_recv", "ib_recv",
@@ -42,13 +43,14 @@
"lustre_write_bytes", "lustre_write_bytes",
"lustre_write_requests" "lustre_write_requests"
], ],
"interval_timestamp" : false,
"num_cache_intervals" : 0,
"change_unit_prefix": { "change_unit_prefix": {
"mem_used": "G", "name == 'mem_used'": "G",
"swap_used": "G", "name == 'swap_used'": "G",
"mem_total": "G", "name == 'mem_total'": "G",
"swap_total": "G" "name == 'swap_total'": "G"
}, },
"normalize_metrics" : true "normalize_metrics" : true
},
"interval_timestamp" : false,
"num_cache_intervals" : 0
} }

View File

@@ -1,17 +1,11 @@
{ {
"fritzganglia": {
"type": "libganglia",
"gmond_config": "/etc/ganglia/gmond.conf",
"libganglia_path": "libganglia.so.0",
"add_ganglia_group": true
},
"nhrinflux" : { "nhrinflux" : {
"type" : "influxasync", "type" : "influxasync",
"host": "monitoring-test.nhr.uni-erlangen.de", "host": "monitoring-test.nhr.uni-erlangen.de",
"port": "8086", "port": "8086",
"organization" : "ClusterCockpit", "organization" : "ClusterCockpit",
"database" : "fritz_neu", "database" : "fritz_neu",
"password": "XZY", "password": "XYZ",
"ssl": true, "ssl": true,
"meta_as_tags" : [ "meta_as_tags" : [
"unit" "unit"
@@ -20,13 +14,14 @@
"fritzstore" : { "fritzstore" : {
"type" : "http", "type" : "http",
"url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=fritz", "url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=fritz",
"jwt": "XZY", "jwt": "XYZ",
"meta_as_tags" : [ "meta_as_tags" : [
"unit" "unit"
], ],
"idle_connection_timeout": "60s", "idle_connection_timeout": "60s",
"flush_delay" : "2s", "flush_delay" : "2s",
"max_retries" : 1, "max_retries" : 1,
"timeout": "10s" "timeout" : "10s",
"precision": "s"
} }
} }

View File

@@ -1,8 +1,10 @@
{ {
"sinks": "/etc/cc-metric-collector/sinks.json", "sinks-file": "/etc/cc-metric-collector/sinks.json",
"collectors" : "/etc/cc-metric-collector/collectors.json", "collectors-file" : "/etc/cc-metric-collector/collectors.json",
"receivers" : "/etc/cc-metric-collector/receivers.json", "receivers-file" : "/etc/cc-metric-collector/receivers.json",
"router" : "/etc/cc-metric-collector/router.json", "router-file" : "/etc/cc-metric-collector/router.json",
"main" : {
"interval": "60s", "interval": "60s",
"duration": "10s" "duration": "10s"
} }
}

View File

@@ -1,12 +1,6 @@
{ {
"add_tags" : [ "process_messages": {
{ "rename_messages" : {
"key" : "cluster",
"value" : "fritz",
"if" : "*"
}
],
"rename_metrics" : {
"load_one" : "cpu_load", "load_one" : "cpu_load",
"net_bytes_in_bw" : "net_bytes_in", "net_bytes_in_bw" : "net_bytes_in",
"net_bytes_out_bw" : "net_bytes_out", "net_bytes_out_bw" : "net_bytes_out",
@@ -27,7 +21,14 @@
"lustre_statfs_diff": "lustre_statfs", "lustre_statfs_diff": "lustre_statfs",
"lustre_inode_permission_diff" : "lustre_inode_permission" "lustre_inode_permission_diff" : "lustre_inode_permission"
}, },
"drop_metrics" : [ "add_tags_if" : [
{
"key" : "cluster",
"value" : "fritz",
"if" : "true"
}
],
"drop_messages" : [
"net_bytes_in", "net_bytes_in",
"net_bytes_out", "net_bytes_out",
"ib_recv", "ib_recv",
@@ -41,13 +42,14 @@
"lustre_write_bytes", "lustre_write_bytes",
"lustre_write_requests" "lustre_write_requests"
], ],
"interval_timestamp" : false,
"num_cache_intervals" : 0,
"change_unit_prefix": { "change_unit_prefix": {
"mem_used": "G", "name == 'mem_used'": "G",
"swap_used": "G", "name == 'swap_used'": "G",
"mem_total": "G", "name == 'mem_total'": "G",
"swap_total": "G" "name == 'swap_total'": "G"
}, },
"normalize_metrics" : true "normalize_metrics" : true
},
"interval_timestamp" : false,
"num_cache_intervals" : 0
} }

View File

@@ -1,10 +1,4 @@
{ {
"fritzganglia": {
"type": "libganglia",
"gmond_config": "/etc/ganglia/gmond.conf",
"libganglia_path": "libganglia.so.0",
"add_ganglia_group": true
},
"nhrinflux" : { "nhrinflux" : {
"type" : "influxasync", "type" : "influxasync",
"host": "monitoring-test.nhr.uni-erlangen.de", "host": "monitoring-test.nhr.uni-erlangen.de",
@@ -27,6 +21,7 @@
"idle_connection_timeout": "60s", "idle_connection_timeout": "60s",
"flush_delay" : "2s", "flush_delay" : "2s",
"max_retries" : 1, "max_retries" : 1,
"timeout": "10s" "timeout" : "10s",
"precision": "s"
} }
} }

View File

@@ -1,33 +0,0 @@
{
"fritzganglia": {
"type": "libganglia",
"gmond_config": "/etc/ganglia/gmond.conf",
"libganglia_path": "libganglia.so.0",
"add_ganglia_group": true
},
"nhrinflux": {
"type": "influxasync",
"host": "monitoring-test.nhr.uni-erlangen.de",
"port": "8086",
"organization": "ClusterCockpit",
"database": "fritz_neu",
"password": "XZY",
"ssl": true,
"meta_as_tags": [
"unit"
]
},
"fritzstore": {
"type": "http",
"url": "http://monitoring.nhr.fau.de:8082/api/write?cluster=fritz",
"jwt": "XZY",
"meta_as_tags": [
"unit"
],
"idle_connection_timeout": "60s"
},
"debugstdout": {
"type": "stdout",
"output_file": "/tmp/debug.log"
}
}

View File

@@ -0,0 +1 @@
collectors.bw512.json

View File

@@ -0,0 +1,169 @@
{
"nfs4stat" : {},
"memstat" : {
"numa_stats": true,
"node_stats": true
},
"cpustat" : {},
"loadavg" : {},
"schedstat": {},
"netstat" : {
"include_devices" : [
"eth0",
"eth1",
"eth2",
"enp3s0"
],
"send_abs_values": true,
"send_derived_values": true
},
"diskstat" : {},
"iostat" : {},
"nfsiostat" : {},
"tempstat" : {
"tag_override" : {
"hwmon2" : {
"type" : "socket",
"type-id" : "0"
},
"hwmon3" : {
"type" : "socket",
"type-id" : "1"
}
}
},
"likwid": {
"force_overwrite" : true,
"invalid_to_zero" : true,
"access_mode" : "accessdaemon",
"accessdaemon_path" : "/apps/likwid/system/sbin",
"liblikwid_path": "/apps/likwid/system/lib/liblikwid.so",
"eventsets": [
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"MBOX0C0": "CAS_COUNT_RD",
"MBOX0C1": "CAS_COUNT_WR",
"MBOX1C0": "CAS_COUNT_RD",
"MBOX1C1": "CAS_COUNT_WR",
"MBOX2C0": "CAS_COUNT_RD",
"MBOX2C1": "CAS_COUNT_WR",
"MBOX3C0": "CAS_COUNT_RD",
"MBOX3C1": "CAS_COUNT_WR",
"MBOX4C0": "CAS_COUNT_RD",
"MBOX4C1": "CAS_COUNT_WR",
"MBOX5C0": "CAS_COUNT_RD",
"MBOX5C1": "CAS_COUNT_WR",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_DOUBLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_DOUBLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_DOUBLE",
"PWR0": "PWR_PKG_ENERGY",
"PWR3": "PWR_DRAM_ENERGY"
},
"metrics": [
{
"calc": "1E-6*(FIXC1/FIXC2)/inverseClock",
"name": "clock",
"publish": true,
"unit": "MHz",
"type": "hwthread"
},
{
"calc": "FIXC0/FIXC1",
"name": "ipc",
"publish": true,
"type": "hwthread"
},
{
"calc": "PWR0/time",
"name": "pwr_pkg",
"publish": true,
"unit": "Watt",
"type": "socket"
},
{
"calc": "PWR3/time",
"name": "pwr_dram",
"publish": true,
"unit": "Watt",
"type": "socket"
},
{
"calc": "1E-9*(PMC0*2.0+PMC1+PMC2*4.0)/time",
"name": "flops_dp",
"publish": true,
"unit": "GFlops/s",
"type": "hwthread"
},
{
"calc": "1E-9*(MBOX0C0+MBOX1C0+MBOX2C0+MBOX3C0+MBOX4C0+MBOX5C0+MBOX0C1+MBOX1C1+MBOX2C1+MBOX3C1+MBOX4C1+MBOX5C1)*64.0/time",
"name": "mem_bw",
"publish": true,
"unit": "GBytes/s",
"type": "socket"
},
{
"calc": "PMC0+PMC2",
"name": "dp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2",
"name": "dp_fp_ins",
"type": "hwthread",
"publish": false
}
]
},
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_SINGLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_SINGLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_SINGLE"
},
"metrics": [
{
"calc": "1E-9*(PMC0*4.0+PMC1+PMC2*8.0)/time",
"name": "flops_sp",
"publish": true,
"unit": "GFlops/s",
"type": "hwthread"
},
{
"calc": "PMC0+PMC2",
"name": "sp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2",
"name": "sp_fp_ins",
"type": "hwthread",
"publish": false
}
]
}
],
"globalmetrics": [
{
"calc": "100*((sp_vec_ins+dp_vec_ins)/(sp_fp_ins+dp_fp_ins))",
"name": "vectorization_ratio",
"type": "hwthread",
"publish": true
},
{
"calc": "(flops_dp * 2) + flops_sp",
"name": "flops_any",
"type": "hwthread",
"unit": "GFlops/s",
"publish": true
}
]
}
}

View File

@@ -11,13 +11,15 @@
"include_devices" : [ "include_devices" : [
"eth0", "eth0",
"eth1", "eth1",
"eth2" "eth2",
"enp1s0f0"
], ],
"send_abs_values": true, "send_abs_values": true,
"send_derived_values": true "send_derived_values": true
}, },
"diskstat" : {}, "diskstat" : {},
"iostat" : {}, "iostat" : {},
"nfsiostat" : {},
"tempstat" : { "tempstat" : {
"tag_override" : { "tag_override" : {
"hwmon1" : { "hwmon1" : {
@@ -45,8 +47,8 @@
"PMC1": "CPU_CLOCKS_UNHALTED", "PMC1": "CPU_CLOCKS_UNHALTED",
"PMC2": "RETIRED_SSE_AVX_FLOPS_ALL", "PMC2": "RETIRED_SSE_AVX_FLOPS_ALL",
"PMC3": "MERGE", "PMC3": "MERGE",
"DFC0": "DATA_FROM_LOCAL_DRAM_CHANNEL", "DFC0": "DRAM_CHANNEL_0",
"DFC1": "DATA_TO_LOCAL_DRAM_CHANNEL", "DFC1": "DRAM_CHANNEL_1",
"PWR0": "RAPL_CORE_ENERGY", "PWR0": "RAPL_CORE_ENERGY",
"PWR1": "RAPL_PKG_ENERGY" "PWR1": "RAPL_PKG_ENERGY"
}, },
@@ -87,7 +89,7 @@
}, },
{ {
"name": "mem_bw", "name": "mem_bw",
"calc": "1E-9*(DFC0+DFC1)*64.0/time", "calc": "1E-9*(DFC0+DFC1)*(4.0/(8/4))*64.0/time",
"unit": "Gbyte/s", "unit": "Gbyte/s",
"type": "socket", "type": "socket",
"publish": true "publish": true

View File

@@ -1,8 +1,10 @@
{ {
"sinks": "/etc/cc-metric-collector/sinks.json", "sinks-file": "/etc/cc-metric-collector/sinks.json",
"collectors" : "/etc/cc-metric-collector/collectors.json", "collectors-file" : "/etc/cc-metric-collector/collectors.json",
"receivers" : "/etc/cc-metric-collector/receivers.json", "receivers-file" : "/etc/cc-metric-collector/receivers.json",
"router" : "/etc/cc-metric-collector/router.json", "router-file" : "/etc/cc-metric-collector/router.json",
"main" : {
"interval": "60s", "interval": "60s",
"duration": "10s" "duration": "10s"
} }
}

View File

@@ -1,12 +1,6 @@
{ {
"add_tags" : [ "process_messages": {
{ "rename_messages" : {
"key" : "cluster",
"value" : "tinyfat",
"if" : "*"
}
],
"rename_metrics" : {
"load_one" : "cpu_load", "load_one" : "cpu_load",
"cpu_load_core" : "cpu_load", "cpu_load_core" : "cpu_load",
"net_bytes_in_bw" : "net_bytes_in", "net_bytes_in_bw" : "net_bytes_in",
@@ -30,7 +24,14 @@
"pwr_pkg": "cpu_power", "pwr_pkg": "cpu_power",
"pwr_dram": "mem_power" "pwr_dram": "mem_power"
}, },
"drop_metrics" : [ "add_tags_if" : [
{
"key" : "cluster",
"value" : "tinyfat",
"if" : "true"
}
],
"drop_messages" : [
"net_bytes_in", "net_bytes_in",
"net_bytes_out", "net_bytes_out",
"ib_recv", "ib_recv",
@@ -44,6 +45,14 @@
"lustre_write_bytes", "lustre_write_bytes",
"lustre_write_requests" "lustre_write_requests"
], ],
"change_unit_prefix": {
"name == 'mem_used'": "G",
"name == 'swap_used'": "G",
"name == 'mem_total'": "G",
"name == 'swap_total'": "G"
},
"normalize_messages" : true
},
"interval_timestamp" : false, "interval_timestamp" : false,
"num_cache_intervals" : 0 "num_cache_intervals" : 0
} }

View File

@@ -5,22 +5,49 @@
"port": "8086", "port": "8086",
"organization" : "ClusterCockpit", "organization" : "ClusterCockpit",
"database" : "tinyfat", "database" : "tinyfat",
"password": "XZY", "password": "XYZ",
"ssl": true, "ssl": true,
"meta_as_tags": [ "process_messages": {
"unit" "move_meta_to_tag_if": [
{
"key": "unit",
"if": "true"
}
] ]
}
}, },
"metricstore" : { "metricstore" : {
"type" : "http", "type" : "http",
"url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=tinyfat", "url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=tinyfat",
"jwt": "XYZ", "jwt": "XYZ",
"meta_as_tags": [
"unit"
],
"idle_connection_timeout": "60s", "idle_connection_timeout": "60s",
"flush_delay" : "2s", "flush_delay" : "2s",
"max_retries" : 1, "max_retries" : 1,
"timeout": "10s" "timeout" : "10s",
"precision": "s",
"process_messages": {
"move_meta_to_tag_if": [
{
"key": "unit",
"if": "true"
}
]
}
},
"tinyfatnats": {
"type": "nats",
"host": "monitoring.nhr.fau.de",
"database": "tinyfat",
"nkey_file": "/etc/cc-metric-collector/nats.nkey",
"flush_delay": "1s",
"precision": "s",
"process_messages": {
"move_meta_to_tag_if": [
{
"key": "unit",
"if": "true"
}
]
}
} }
} }

View File

@@ -1,30 +0,0 @@
{
"influx": {
"type": "influxasync",
"host": "monitoring-test.nhr.uni-erlangen.de",
"port": "8086",
"organization": "ClusterCockpit",
"database": "tinyfat",
"password": "XZY",
"ssl": true,
"meta_as_tags": [
"unit"
]
},
"metricstore": {
"type": "http",
"url": "http://monitoring.nhr.fau.de:8082/api/write?cluster=tinyfat",
"jwt": "XZY",
"meta_as_tags": [
"unit"
],
"idle_connection_timeout": "60s",
"flush_delay": "2s",
"max_retries": 1,
"timeout": "10s"
},
"debugstdout": {
"type": "stdout",
"output_file": "/tmp/debug.log"
}
}

View File

@@ -0,0 +1,220 @@
{
"nfs4stat" : {},
"memstat" : {
"numa_stats": true,
"node_stats": true
},
"cpustat" : {},
"loadavg" : {},
"schedstat": {},
"netstat" : {
"include_devices" : [
"eth0"
],
"send_abs_values": true,
"send_derived_values": true
},
"diskstat" : {},
"iostat" : {},
"nfsiostat" : {},
"tempstat" : {
"tag_override" : {
"hwmon0" : {
"type" : "socket",
"type-id" : "0"
},
"hwmon1" : {
"type" : "socket",
"type-id" : "1"
}
}
},
"nvidia" : {
"use_pci_info_as_type_id": true,
"process_mig_devices": true
},
"likwid": {
"force_overwrite" : true,
"invalid_to_zero" : true,
"access_mode" : "accessdaemon",
"accessdaemon_path" : "/apps/likwid/system/sbin",
"liblikwid_path": "/apps/likwid/system/lib/liblikwid.so",
"eventsets": [
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"MBOX0C0": "CAS_COUNT_RD",
"MBOX0C1": "CAS_COUNT_WR",
"MBOX1C0": "CAS_COUNT_RD",
"MBOX1C1": "CAS_COUNT_WR",
"MBOX2C0": "CAS_COUNT_RD",
"MBOX2C1": "CAS_COUNT_WR",
"MBOX3C0": "CAS_COUNT_RD",
"MBOX3C1": "CAS_COUNT_WR",
"MBOX4C0": "CAS_COUNT_RD",
"MBOX4C1": "CAS_COUNT_WR",
"MBOX5C0": "CAS_COUNT_RD",
"MBOX5C1": "CAS_COUNT_WR",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_DOUBLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_DOUBLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_DOUBLE",
"PWR0": "PWR_PKG_ENERGY",
"PWR3": "PWR_DRAM_ENERGY"
},
"metrics": [
{
"calc": "0.000001*(FIXC1/FIXC2)/inverseClock",
"name": "clock",
"publish": true,
"unit": "MHz",
"type": "hwthread"
},
{
"calc": "FIXC0/FIXC1",
"name": "ipc",
"publish": true,
"type": "hwthread"
},
{
"calc": "PWR0/time",
"name": "cpu_power",
"publish": true,
"unit": "Watt",
"type": "socket"
},
{
"calc": "PWR3/time",
"name": "mem_power",
"unit": "Watt",
"publish": true,
"type": "socket"
},
{
"calc": "1E-9*(PMC0*2.0+PMC1+PMC2*4.0)/time",
"name": "flops_dp1",
"unit": "GFlops/s",
"publish": false,
"type": "hwthread"
},
{
"calc": "1E-9*(MBOX0C0+MBOX1C0+MBOX2C0+MBOX3C0+MBOX4C0+MBOX5C0+MBOX0C1+MBOX1C1+MBOX2C1+MBOX3C1+MBOX4C1+MBOX5C1)*64.0/time",
"name": "mem_bw",
"unit": "GBytes/s",
"publish": true,
"type": "socket"
},
{
"calc": "PMC0+PMC2",
"name": "dp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2",
"name": "dp_fp_ins",
"type": "hwthread",
"publish": false
}
]
},
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_SINGLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_SINGLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_SINGLE"
},
"metrics": [
{
"calc": "1E-9*(PMC0*4.0+PMC1+PMC2*8.0)/time",
"name": "flops_sp1",
"publish": false,
"type": "hwthread"
},
{
"calc": "PMC0+PMC2",
"name": "sp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2",
"name": "sp_fp_ins",
"type": "hwthread",
"publish": false
}
]
},
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"PMC0": "FP_ARITH_INST_RETIRED_512B_PACKED_DOUBLE",
"PMC1": "FP_ARITH_INST_RETIRED_512B_PACKED_SINGLE"
},
"metrics": [
{
"calc": "PMC0",
"name": "dp_avx_512_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "1E-9*(PMC0*8.0)/time",
"name": "flops_dp2",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC1",
"name": "sp_avx_512_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "1E-9*(PMC1*16.0)/time",
"name": "flops_sp2",
"type": "hwthread",
"publish": false
}
]
}
],
"globalmetrics": [
{
"calc": "100*((sp_vec_ins+dp_vec_ins+dp_avx_512_ins+sp_avx_512_ins)/(sp_fp_ins+dp_fp_ins+dp_avx_512_ins+sp_avx_512_ins))",
"name": "vectorization_ratio",
"unit": "%",
"type": "hwthread",
"publish": true
},
{
"calc": "(flops_sp1+flops_sp2)",
"name": "flops_sp",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
},
{
"calc": "(flops_dp1+flops_dp2)",
"name": "flops_dp",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
},
{
"calc": "((flops_dp1+flops_dp2) * 2) + (flops_sp1+flops_sp2)",
"name": "flops_any",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
}
]
}
}

View File

@@ -0,0 +1,180 @@
{
"nfs4stat" : {},
"memstat" : {
"numa_stats": true,
"node_stats": true
},
"cpustat" : {},
"loadavg" : {},
"schedstat": {},
"netstat" : {
"include_devices" : [
"eth0",
"eth1",
"eth2"
],
"send_abs_values": true,
"send_derived_values": true
},
"diskstat" : {},
"iostat" : {},
"nfsiostat" : {},
"tempstat" : {
"tag_override" : {
"hwmon1" : {
"type" : "socket",
"type-id" : "0"
},
"hwmon2" : {
"type" : "socket",
"type-id" : "1"
}
}
},
"ipmistat" : {
"send_abs_values": true,
"send_derived_values": true
},
"nvidia" : {
"use_pci_info_as_type_id": true,
"process_mig_devices": true
},
"likwid": {
"force_overwrite" : true,
"invalid_to_zero" : true,
"access_mode" : "accessdaemon",
"accessdaemon_path" : "/apps/likwid/system/sbin",
"liblikwid_path": "/apps/likwid/system/lib/liblikwid.so",
"eventsets": [
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"MBOX0C0": "CAS_COUNT_RD",
"MBOX0C1": "CAS_COUNT_WR",
"MBOX1C0": "CAS_COUNT_RD",
"MBOX1C1": "CAS_COUNT_WR",
"MBOX2C0": "CAS_COUNT_RD",
"MBOX2C1": "CAS_COUNT_WR",
"MBOX3C0": "CAS_COUNT_RD",
"MBOX3C1": "CAS_COUNT_WR",
"MBOX4C0": "CAS_COUNT_RD",
"MBOX4C1": "CAS_COUNT_WR",
"MBOX5C0": "CAS_COUNT_RD",
"MBOX5C1": "CAS_COUNT_WR",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_DOUBLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_DOUBLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_DOUBLE",
"PMC3": "FP_ARITH_INST_RETIRED_512B_PACKED_DOUBLE",
"PWR0": "PWR_PKG_ENERGY",
"PWR3": "PWR_DRAM_ENERGY"
},
"metrics": [
{
"calc": "0.000001*(FIXC1/FIXC2)/inverseClock",
"name": "clock",
"publish": true,
"unit": "MHz",
"type": "hwthread"
},
{
"calc": "FIXC0/FIXC1",
"name": "ipc",
"publish": true,
"type": "hwthread"
},
{
"calc": "PWR0/time",
"name": "cpu_power",
"publish": true,
"unit": "Watt",
"type": "socket"
},
{
"calc": "PWR3/time",
"name": "mem_power",
"unit": "Watt",
"publish": true,
"type": "socket"
},
{
"calc": "1E-9*(PMC0*2.0+PMC1+PMC2*4.0+PMC3*8.0)/time",
"name": "flops_dp",
"unit": "GFlops/s",
"publish": true,
"type": "hwthread"
},
{
"calc": "1E-9*(MBOX0C0+MBOX1C0+MBOX2C0+MBOX3C0+MBOX4C0+MBOX5C0+MBOX0C1+MBOX1C1+MBOX2C1+MBOX3C1+MBOX4C1+MBOX5C1)*64.0/time",
"name": "mem_bw",
"unit": "GBytes/s",
"publish": true,
"type": "socket"
},
{
"calc": "PMC0+PMC2+PMC3",
"name": "dp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2+PMC3",
"name": "dp_fp_ins",
"type": "hwthread",
"publish": false
}
]
},
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_SINGLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_SINGLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_SINGLE",
"PMC3": "FP_ARITH_INST_RETIRED_512B_PACKED_SINGLE"
},
"metrics": [
{
"calc": "1E-9*(PMC0*4.0+PMC1+PMC2*8.0+PMC3*16.0)/time",
"name": "flops_sp",
"unit": "GFlops/s",
"publish": true,
"type": "hwthread"
},
{
"calc": "PMC0+PMC2+PMC3",
"name": "sp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2+PMC3",
"name": "sp_fp_ins",
"type": "hwthread",
"publish": false
}
]
}
],
"globalmetrics": [
{
"calc": "100*((sp_vec_ins+dp_vec_ins)/(sp_fp_ins+dp_fp_ins))",
"name": "vectorization_ratio",
"unit": "%",
"type": "hwthread",
"publish": true
},
{
"calc": "(flops_dp * 2) + flops_sp",
"name": "flops_any",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
}
]
}
}

View File

@@ -0,0 +1,104 @@
{
"nfs4stat" : {},
"memstat" : {
"numa_stats": true,
"node_stats": true
},
"cpustat" : {},
"loadavg" : {},
"schedstat": {},
"netstat" : {
"include_devices" : [
"eth0"
],
"send_abs_values": true,
"send_derived_values": true
},
"diskstat" : {},
"iostat" : {},
"nfsiostat" : {},
"tempstat" : {
"tag_override" : {
"hwmon0" : {
"type" : "socket",
"type-id" : "0"
},
"hwmon1" : {
"type" : "socket",
"type-id" : "1"
}
}
},
"nvidia" : {
"use_pci_info_as_type_id": true,
"process_mig_devices": true
},
"likwid": {
"force_overwrite" : true,
"invalid_to_zero" : true,
"access_mode" : "accessdaemon",
"accessdaemon_path" : "/apps/likwid/system/sbin",
"liblikwid_path": "/apps/likwid/system/lib/liblikwid.so",
"eventsets": [
{
"events": {
"FIXC1": "ACTUAL_CPU_CLOCK",
"FIXC2": "MAX_CPU_CLOCK",
"PMC0": "RETIRED_INSTRUCTIONS",
"PMC1": "CPU_CLOCKS_UNHALTED",
"PMC2": "RETIRED_SSE_AVX_FLOPS_ALL",
"PMC3": "MERGE",
"DFC0": "DATA_FROM_LOCAL_DRAM_CHANNEL",
"DFC1": "DATA_TO_LOCAL_DRAM_CHANNEL",
"PWR0": "RAPL_CORE_ENERGY",
"PWR1": "RAPL_PKG_ENERGY"
},
"metrics": [
{
"name": "ipc",
"calc": "PMC0/PMC1",
"type": "hwthread",
"publish": true
},
{
"name": "flops_any",
"calc": "1E-9*PMC2/time",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
},
{
"name": "clock",
"calc": "1E-6*(FIXC1/FIXC2)/inverseClock",
"type": "hwthread",
"unit": "MHz",
"publish": true
},
{
"name": "pwr_core",
"calc": "PWR0/time",
"unit": "Watt",
"type": "socket",
"publish": true
},
{
"name": "pwr_pkg",
"calc": "PWR1/time",
"type": "socket",
"unit": "Watt",
"publish": true
},
{
"name": "mem_bw",
"calc": "1E-9*(DFC0+DFC1)*64.0/time",
"unit": "Gbyte/s",
"type": "socket",
"publish": true
}
]
}
],
"globalmetrics": []
}
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -16,6 +16,7 @@
}, },
"diskstat" : {}, "diskstat" : {},
"iostat" : {}, "iostat" : {},
"nfsiostat" : {},
"tempstat" : { "tempstat" : {
"tag_override" : { "tag_override" : {
"hwmon0" : { "hwmon0" : {

View File

@@ -16,6 +16,7 @@
}, },
"diskstat" : {}, "diskstat" : {},
"iostat" : {}, "iostat" : {},
"nfsiostat" : {},
"tempstat" : { "tempstat" : {
"tag_override" : { "tag_override" : {
"hwmon0" : { "hwmon0" : {

View File

@@ -18,6 +18,7 @@
}, },
"diskstat" : {}, "diskstat" : {},
"iostat" : {}, "iostat" : {},
"nfsiostat" : {},
"tempstat" : { "tempstat" : {
"tag_override" : { "tag_override" : {
"hwmon1" : { "hwmon1" : {

View File

@@ -16,6 +16,7 @@
}, },
"diskstat" : {}, "diskstat" : {},
"iostat" : {}, "iostat" : {},
"nfsiostat" : {},
"tempstat" : { "tempstat" : {
"tag_override" : { "tag_override" : {
"hwmon0" : { "hwmon0" : {

View File

@@ -0,0 +1,220 @@
{
"nfs4stat" : {},
"memstat" : {
"numa_stats": true,
"node_stats": true
},
"cpustat" : {},
"loadavg" : {},
"schedstat": {},
"netstat" : {
"include_devices" : [
"eth0"
],
"send_abs_values": true,
"send_derived_values": true
},
"diskstat" : {},
"iostat" : {},
"nfsiostat" : {},
"tempstat" : {
"tag_override" : {
"hwmon0" : {
"type" : "socket",
"type-id" : "0"
},
"hwmon1" : {
"type" : "socket",
"type-id" : "1"
}
}
},
"nvidia" : {
"use_pci_info_as_type_id": true,
"process_mig_devices": true
},
"likwid": {
"force_overwrite" : true,
"invalid_to_zero" : true,
"access_mode" : "accessdaemon",
"accessdaemon_path" : "/apps/likwid/system/sbin",
"liblikwid_path": "/apps/likwid/system/lib/liblikwid.so",
"eventsets": [
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"MBOX0C0": "CAS_COUNT_RD",
"MBOX0C1": "CAS_COUNT_WR",
"MBOX1C0": "CAS_COUNT_RD",
"MBOX1C1": "CAS_COUNT_WR",
"MBOX2C0": "CAS_COUNT_RD",
"MBOX2C1": "CAS_COUNT_WR",
"MBOX3C0": "CAS_COUNT_RD",
"MBOX3C1": "CAS_COUNT_WR",
"MBOX4C0": "CAS_COUNT_RD",
"MBOX4C1": "CAS_COUNT_WR",
"MBOX5C0": "CAS_COUNT_RD",
"MBOX5C1": "CAS_COUNT_WR",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_DOUBLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_DOUBLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_DOUBLE",
"PWR0": "PWR_PKG_ENERGY",
"PWR3": "PWR_DRAM_ENERGY"
},
"metrics": [
{
"calc": "0.000001*(FIXC1/FIXC2)/inverseClock",
"name": "clock",
"publish": true,
"unit": "MHz",
"type": "hwthread"
},
{
"calc": "FIXC0/FIXC1",
"name": "ipc",
"publish": true,
"type": "hwthread"
},
{
"calc": "PWR0/time",
"name": "cpu_power",
"publish": true,
"unit": "Watt",
"type": "socket"
},
{
"calc": "PWR3/time",
"name": "mem_power",
"unit": "Watt",
"publish": true,
"type": "socket"
},
{
"calc": "1E-9*(PMC0*2.0+PMC1+PMC2*4.0)/time",
"name": "flops_dp1",
"unit": "GFlops/s",
"publish": false,
"type": "hwthread"
},
{
"calc": "1E-9*(MBOX0C0+MBOX1C0+MBOX2C0+MBOX3C0+MBOX4C0+MBOX5C0+MBOX0C1+MBOX1C1+MBOX2C1+MBOX3C1+MBOX4C1+MBOX5C1)*64.0/time",
"name": "mem_bw",
"unit": "GBytes/s",
"publish": true,
"type": "socket"
},
{
"calc": "PMC0+PMC2",
"name": "dp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2",
"name": "dp_fp_ins",
"type": "hwthread",
"publish": false
}
]
},
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"PMC0": "FP_ARITH_INST_RETIRED_128B_PACKED_SINGLE",
"PMC1": "FP_ARITH_INST_RETIRED_SCALAR_SINGLE",
"PMC2": "FP_ARITH_INST_RETIRED_256B_PACKED_SINGLE"
},
"metrics": [
{
"calc": "1E-9*(PMC0*4.0+PMC1+PMC2*8.0)/time",
"name": "flops_sp1",
"publish": false,
"type": "hwthread"
},
{
"calc": "PMC0+PMC2",
"name": "sp_vec_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC0+PMC1+PMC2",
"name": "sp_fp_ins",
"type": "hwthread",
"publish": false
}
]
},
{
"events": {
"FIXC0": "INSTR_RETIRED_ANY",
"FIXC1": "CPU_CLK_UNHALTED_CORE",
"FIXC2": "CPU_CLK_UNHALTED_REF",
"PMC0": "FP_ARITH_INST_RETIRED_512B_PACKED_DOUBLE",
"PMC1": "FP_ARITH_INST_RETIRED_512B_PACKED_SINGLE"
},
"metrics": [
{
"calc": "PMC0",
"name": "dp_avx_512_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "1E-9*(PMC0*8.0)/time",
"name": "flops_dp2",
"type": "hwthread",
"publish": false
},
{
"calc": "PMC1",
"name": "sp_avx_512_ins",
"type": "hwthread",
"publish": false
},
{
"calc": "1E-9*(PMC1*16.0)/time",
"name": "flops_sp2",
"type": "hwthread",
"publish": false
}
]
}
],
"globalmetrics": [
{
"calc": "100*((sp_vec_ins+dp_vec_ins+dp_avx_512_ins+sp_avx_512_ins)/(sp_fp_ins+dp_fp_ins+dp_avx_512_ins+sp_avx_512_ins))",
"name": "vectorization_ratio",
"unit": "%",
"type": "hwthread",
"publish": true
},
{
"calc": "(flops_sp1+flops_sp2)",
"name": "flops_sp",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
},
{
"calc": "(flops_dp1+flops_dp2)",
"name": "flops_dp",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
},
{
"calc": "((flops_dp1+flops_dp2) * 2) + (flops_sp1+flops_sp2)",
"name": "flops_any",
"unit": "GFlops/s",
"type": "hwthread",
"publish": true
}
]
}
}

View File

@@ -1,8 +1,10 @@
{ {
"sinks": "/etc/cc-metric-collector/sinks.json", "sinks-file": "/etc/cc-metric-collector/sinks.json",
"collectors" : "/etc/cc-metric-collector/collectors.json", "collectors-file" : "/etc/cc-metric-collector/collectors.json",
"receivers" : "/etc/cc-metric-collector/receivers.json", "receivers-file" : "/etc/cc-metric-collector/receivers.json",
"router" : "/etc/cc-metric-collector/router.json", "router-file" : "/etc/cc-metric-collector/router.json",
"main" : {
"interval": "60s", "interval": "60s",
"duration": "10s" "duration": "10s"
} }
}

View File

@@ -1,12 +1,6 @@
{ {
"add_tags" : [ "process_messages": {
{ "rename_messages" : {
"key" : "cluster",
"value" : "tinygpu",
"if" : "*"
}
],
"rename_metrics" : {
"load_one" : "cpu_load", "load_one" : "cpu_load",
"cpu_load_core" : "cpu_load", "cpu_load_core" : "cpu_load",
"net_bytes_in_bw" : "net_bytes_in", "net_bytes_in_bw" : "net_bytes_in",
@@ -33,7 +27,14 @@
"pwr_pkg": "cpu_power", "pwr_pkg": "cpu_power",
"pwr_dram": "mem_power" "pwr_dram": "mem_power"
}, },
"drop_metrics" : [ "add_tags_if" : [
{
"key" : "cluster",
"value" : "tinygpu",
"if" : "true"
}
],
"drop_messages" : [
"net_bytes_in", "net_bytes_in",
"net_bytes_out", "net_bytes_out",
"ib_recv", "ib_recv",
@@ -47,14 +48,15 @@
"lustre_write_bytes", "lustre_write_bytes",
"lustre_write_requests" "lustre_write_requests"
], ],
"interval_timestamp" : false,
"num_cache_intervals" : 0,
"change_unit_prefix": { "change_unit_prefix": {
"mem_used": "G", "name == 'mem_used'": "G",
"swap_used": "G", "name == 'swap_used'": "G",
"mem_total": "G", "name == 'mem_total'": "G",
"swap_total": "G", "name == 'swap_total'": "G",
"cpufreq": "M" "name == 'cpufreq'": "M"
}, },
"normalize_metrics" : true "normalize_units" : true
},
"interval_timestamp" : false,
"num_cache_intervals" : 0
} }

View File

@@ -5,22 +5,49 @@
"port": "8086", "port": "8086",
"organization" : "ClusterCockpit", "organization" : "ClusterCockpit",
"database" : "tinygpu", "database" : "tinygpu",
"password": "XZY", "password": "XYZ",
"ssl": true, "ssl": true,
"meta_as_tags": [ "process_messages": {
"unit" "move_meta_to_tag_if": [
{
"key": "unit",
"if": "true"
}
] ]
}
}, },
"metricstore" : { "metricstore" : {
"type" : "http", "type" : "http",
"url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=tinygpu", "url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=tinygpu",
"jwt": "XZY", "jwt": "XYZ",
"meta_as_tags": [
"unit"
],
"idle_connection_timeout": "60s", "idle_connection_timeout": "60s",
"flush_delay" : "2s", "flush_delay" : "2s",
"max_retries" : 1, "max_retries" : 1,
"timeout": "10s" "timeout" : "10s",
"precision": "s",
"process_messages": {
"move_meta_to_tag_if": [
{
"key": "unit",
"if": "true"
}
]
}
},
"tinygpunats": {
"type": "nats",
"host": "monitoring.nhr.fau.de",
"database": "tinygpu",
"nkey_file": "/etc/cc-metric-collector/nats.nkey",
"flush_delay": "1s",
"precision": "s",
"process_messages": {
"move_meta_to_tag_if": [
{
"key": "unit",
"if": "true"
}
]
}
} }
} }

View File

@@ -1,30 +0,0 @@
{
"influx": {
"type": "influxasync",
"host": "monitoring-test.nhr.uni-erlangen.de",
"port": "8086",
"organization": "ClusterCockpit",
"database": "tinygpu",
"password": "XZY",
"ssl": true,
"meta_as_tags": [
"unit"
]
},
"metricstore": {
"type": "http",
"url": "http://monitoring.nhr.fau.de:8082/api/write?cluster=tinygpu",
"jwt": "XZY",
"meta_as_tags": [
"unit"
],
"idle_connection_timeout": "60s",
"flush_delay": "2s",
"max_retries": 1,
"timeout": "10s"
},
"debugstdout": {
"type": "stdout",
"output_file": "/tmp/debug.log"
}
}

View File

@@ -30,6 +30,7 @@
} }
}, },
"nfs4stat" : {}, "nfs4stat" : {},
"nfsiostat" : {},
"likwid": { "likwid": {
"force_overwrite" : true, "force_overwrite" : true,
"invalid_to_zero" : true, "invalid_to_zero" : true,

View File

@@ -18,6 +18,7 @@
}, },
"tempstat" : {}, "tempstat" : {},
"nfs4stat" : {}, "nfs4stat" : {},
"nfsiostat" : {},
"likwid": { "likwid": {
"force_overwrite" : true, "force_overwrite" : true,
"invalid_to_zero" : true, "invalid_to_zero" : true,

View File

@@ -1,8 +1,10 @@
{ {
"sinks": "/etc/cc-metric-collector/sinks.json", "sinks-file": "/etc/cc-metric-collector/sinks.json",
"collectors" : "/etc/cc-metric-collector/collectors.json", "collectors-file" : "/etc/cc-metric-collector/collectors.json",
"receivers" : "/etc/cc-metric-collector/receivers.json", "receivers-file" : "/etc/cc-metric-collector/receivers.json",
"router" : "/etc/cc-metric-collector/router.json", "router-file" : "/etc/cc-metric-collector/router.json",
"main" : {
"interval": "60s", "interval": "60s",
"duration": "10s" "duration": "10s"
} }
}

View File

@@ -1,12 +1,6 @@
{ {
"add_tags" : [ "process_messages":{
{ "rename_messages" : {
"key" : "cluster",
"value" : "woodyng",
"if" : "*"
}
],
"rename_metrics" : {
"load_one" : "cpu_load", "load_one" : "cpu_load",
"cpu_load_core" : "cpu_load", "cpu_load_core" : "cpu_load",
"net_bytes_in_bw" : "net_bytes_in", "net_bytes_in_bw" : "net_bytes_in",
@@ -28,7 +22,14 @@
"lustre_statfs_diff": "lustre_statfs", "lustre_statfs_diff": "lustre_statfs",
"lustre_inode_permission_diff" : "lustre_inode_permission" "lustre_inode_permission_diff" : "lustre_inode_permission"
}, },
"drop_metrics" : [ "add_tags_if" : [
{
"key" : "cluster",
"value" : "woody",
"if" : "true"
}
],
"drop_messages" : [
"net_bytes_in", "net_bytes_in",
"net_bytes_out", "net_bytes_out",
"ib_recv", "ib_recv",
@@ -42,13 +43,14 @@
"lustre_write_bytes", "lustre_write_bytes",
"lustre_write_requests" "lustre_write_requests"
], ],
"interval_timestamp" : true,
"num_cache_intervals" : 0,
"change_unit_prefix": { "change_unit_prefix": {
"mem_used": "G", "name == 'mem_used'": "G",
"swap_used": "G", "name == 'swap_used'": "G",
"mem_total": "G", "name == 'mem_total'": "G",
"swap_total": "G" "name == 'swap_total'": "G"
}, },
"normalize_metrics" : true "normalize_metrics" : true
},
"interval_timestamp" : true,
"num_cache_intervals" : 0
} }

View File

@@ -5,16 +5,17 @@
"port": "8086", "port": "8086",
"organization" : "ClusterCockpit", "organization" : "ClusterCockpit",
"database" : "woodyng", "database" : "woodyng",
"password": "XZY", "password": "XYZ",
"ssl": true "ssl": true
}, },
"woodystore" : { "woodystore" : {
"type" : "http", "type" : "http",
"url": "http://monitoring.nhr.fau.de:8082/api/write?cluster=woodyng", "url" : "http://monitoring.nhr.fau.de:8082/api/write?cluster=woody",
"jwt": "XZY", "jwt": "XYZ",
"meta_as_tags" : [ "meta_as_tags" : [
"unit" "unit"
], ],
"idle_connection_timeout": "60s" "idle_connection_timeout": "60s",
"precision": "s"
} }
} }

View File

@@ -1,19 +0,0 @@
[Unit]
Description=ClusterCockpit In-Memory Timeseries Database for Fritz (cc-metric-store)
Documentation=https://github.com/ClusterCockpit/cc-metric-store
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=clustercockpit
Group=clustercockpit
Restart=on-failure
RestartSec=30
TimeoutStopSec=100
WorkingDirectory=/opt/monitoring/cc-metric-store/fritz
ExecStart=/opt/monitoring/cc-metric-store/repo/cc-metric-store --config ./config.json
LimitNOFILE=500000
[Install]
WantedBy=multi-user.target

View File

@@ -1,180 +0,0 @@
{
"metrics": {
"clock": {
"frequency": 60,
"aggregation": "avg"
},
"cpu_idle": {
"frequency": 60,
"aggregation": "avg"
},
"cpu_iowait": {
"frequency": 60,
"aggregation": "avg"
},
"cpu_irq": {
"frequency": 60,
"aggregation": "avg"
},
"cpu_system": {
"frequency": 60,
"aggregation": "avg"
},
"cpu_user": {
"frequency": 60,
"aggregation": "avg"
},
"nv_mem_util": {
"frequency": 60,
"aggregation": "avg"
},
"nv_temp": {
"frequency": 60,
"aggregation": "avg"
},
"nv_sm_clock": {
"frequency": 60,
"aggregation": "avg"
},
"acc_utilization": {
"frequency": 60,
"aggregation": "avg"
},
"acc_mem_used": {
"frequency": 60,
"aggregation": "sum"
},
"acc_power": {
"frequency": 60,
"aggregation": "sum"
},
"flops_any": {
"frequency": 60,
"aggregation": "sum"
},
"flops_dp": {
"frequency": 60,
"aggregation": "sum"
},
"flops_sp": {
"frequency": 60,
"aggregation": "sum"
},
"ib_recv": {
"frequency": 60,
"aggregation": "sum"
},
"ib_xmit": {
"frequency": 60,
"aggregation": "sum"
},
"ib_recv_pkts": {
"frequency": 60,
"aggregation": "sum"
},
"ib_xmit_pkts": {
"frequency": 60,
"aggregation": "sum"
},
"cpu_power": {
"frequency": 60,
"aggregation": "sum"
},
"core_power": {
"frequency": 60,
"aggregation": "sum"
},
"mem_power": {
"frequency": 60,
"aggregation": "sum"
},
"ipc": {
"frequency": 60,
"aggregation": "avg"
},
"cpu_load": {
"frequency": 60,
"aggregation": null
},
"lustre_close": {
"frequency": 60,
"aggregation": null
},
"lustre_open": {
"frequency": 60,
"aggregation": null
},
"lustre_statfs": {
"frequency": 60,
"aggregation": null
},
"lustre_read_bytes": {
"frequency": 60,
"aggregation": null
},
"lustre_write_bytes": {
"frequency": 60,
"aggregation": null
},
"net_bw": {
"frequency": 60,
"aggregation": null
},
"file_bw": {
"frequency": 60,
"aggregation": null
},
"mem_bw": {
"frequency": 60,
"aggregation": "sum"
},
"mem_cached": {
"frequency": 60,
"aggregation": null
},
"mem_used": {
"frequency": 60,
"aggregation": null
},
"net_bytes_in": {
"frequency": 60,
"aggregation": null
},
"net_bytes_out": {
"frequency": 60,
"aggregation": null
},
"nfs4_read": {
"frequency": 60,
"aggregation": null
},
"nfs4_total": {
"frequency": 60,
"aggregation": null
},
"nfs4_write": {
"frequency": 60,
"aggregation": null
},
"vectorization_ratio": {
"frequency": 60,
"aggregation": "avg"
}
},
"checkpoints": {
"interval": "12h",
"directory": "/opt/monitoring/cc-metric-store/fritz/checkpoints",
"restore": "48h"
},
"archive": {
"interval": "50h",
"directory": "/opt/monitoring/cc-metric-store/fritz/archive"
},
"http-api": {
"address": "0.0.0.0:8082",
"https-cert-file": null,
"https-key-file": null
},
"retention-in-memory": "48h",
"jwt-public-key": "-"
}

View File

@@ -0,0 +1,42 @@
{
"ccRestUrl": "https://monitoring.nhr.fau.de",
"ccRestJwt": "XYZ",
"lastRunPath": "/home.local/hpcop/last_run",
"natsServer": "monitoring.nhr.fau.de",
"natsSubject": "alex",
"natsUser": "alex",
"natsPassword": "XYZ",
"slurmPollInterval": 300,
"gpuPciAddrs": {
"^(a0[1-4]\\d\\d|a052\\d|a162\\d|a172\\d)$" : [
"00000000:01:00.0",
"00000000:25:00.0",
"00000000:41:00.0",
"00000000:61:00.0",
"00000000:81:00.0",
"00000000:A1:00.0",
"00000000:C1:00.0",
"00000000:E1:00.0"
],
"^(a0704|a0731|a0832|a0833)$" : [
"00000000:0E:00.0",
"00000000:13:00.0",
"00000000:49:00.0",
"00000000:4F:00.0",
"00000000:91:00.0",
"00000000:97:00.0",
"00000000:CD:00.0",
"00000000:D2:00.0"
],
"^(a0[6-9]\\d\\d|a053\\d)$" : [
"00000000:0E:00.0",
"00000000:13:00.0",
"00000000:49:00.0",
"00000000:4F:00.0",
"00000000:90:00.0",
"00000000:96:00.0",
"00000000:CC:00.0",
"00000000:D1:00.0"
]
}
}

View File

@@ -0,0 +1,19 @@
{
"ccRestUrl": "https://monitoring.nhr.fau.de",
"ccRestJwt": "XYZ",
"lastRunPath": "/home.local/hpcop/last_run",
"natsServer": "monitoring.nhr.fau.de",
"natsSubject": "fritz",
"natsUser": "fritz",
"natsPassword": "XYZ",
"slurmPollInterval": 300,
"ignoreHosts": "^fviz1$",
"gpuPciAddrs": {
"fviz1" : [
"00000000:CE:00.0",
"00000000:CF:00.0",
"00000000:D0:00.0",
"00000000:D1:00.0"
]
}
}

View File

@@ -0,0 +1,24 @@
{
"ccRestUrl": "https://monitoring.nhr.fau.de",
"ccRestJwt": "XYZ",
"lastRunPath": "/home.local/hpcop/last_run",
"natsServer": "monitoring.nhr.fau.de",
"natsSubject": "helma",
"natsUser": "helma-slurm-adapter",
"natsPassword": "XYZ",
"slurmPollInterval": 300,
"gpuPciAddrs": {
"h1[1-4]-[0-9][0-9]" : [
"00000000:06:00.0",
"00000000:26:00.0",
"00000000:A6:00.0",
"00000000:C6:00.0"
],
"h2[0-9]-[0-9][0-9]" : [
"00000000:06:00.0",
"00000000:26:00.0",
"00000000:A6:00.0",
"00000000:C6:00.0"
]
}
}

View File

@@ -0,0 +1,47 @@
{
"ccRestUrl": "https://monitoring.nhr.fau.de",
"ccRestJwt": "XYZ",
"lastRunPath": "/home.local/hpcop/last_run",
"natsServer": "monitoring.nhr.fau.de",
"natsSubject": "tinyx",
"natsUser": "tinyx",
"natsPassword": "XYZ",
"slurmPollInterval": 300,
"ignoreHosts": "^tg0[3-4]\\d$",
"gpuPciAddrs": {
"^tg04[0-9a-z]$" : [
"00000000:02:00.0",
"00000000:03:00.0",
"00000000:82:00.0",
"00000000:83:00.0"
],
"^tg06[0-9a-z]$" : [
"00000000:18:00.0",
"00000000:3B:00.0",
"00000000:86:00.0",
"00000000:AF:00.0"
],
"^tg07[0-9a-z]$" : [
"00000000:18:00.0",
"00000000:3B:00.0",
"00000000:86:00.0",
"00000000:AF:00.0"
],
"^tg08[0-9a-z]$" : [
"00000000:1A:00.0",
"00000000:1B:00.0",
"00000000:3D:00.0",
"00000000:3E:00.0",
"00000000:B1:00.0",
"00000000:B2:00.0",
"00000000:DA:00.0",
"00000000:DB:00.0"
],
"^tg09[0-9a-z]$" : [
"00000000:01:00.0",
"00000000:41:00.0",
"00000000:81:00.0",
"00000000:C1:00.0"
]
}
}

View File

@@ -0,0 +1,11 @@
{
"ccRestUrl": "https://monitoring.nhr.fau.de",
"ccRestJwt": "XYZ",
"lastRunPath": "/home.local/hpcop/last_run",
"natsServer": "monitoring.nhr.fau.de",
"natsSubject": "woody",
"natsUser": "woody",
"natsPassword": "XYZ",
"slurmQueryMaxSpan": 86400,
"slurmPollInterval": 300
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -73,6 +73,32 @@
"caution": 10, "caution": 10,
"alert": 2 "alert": 2
}, },
{
"name": "net_bytes_in",
"unit": {
"base": "B/s"
},
"scope": "node",
"aggregation": "sum",
"timestep": 60,
"peak": 50000000,
"normal": 10000000,
"caution": 5000,
"alert": 1000
},
{
"name": "net_bytes_out",
"unit": {
"base": "B/s"
},
"scope": "node",
"aggregation": "sum",
"timestep": 60,
"peak": 50000000,
"normal": 200000,
"caution": 5000,
"alert": 1000
},
{ {
"name": "mem_bw", "name": "mem_bw",
"unit": { "unit": {
@@ -165,9 +191,9 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 10,
"alert": 1 "alert": 1
}, },
{ {
@@ -179,10 +205,10 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 20,
"alert": 1 "alert": 5
} }
], ],
"subClusters": [ "subClusters": [
@@ -216,140 +242,18 @@
}, },
"topology": { "topology": {
"node": [ "node": [
0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19
], ],
"socket": [ "socket": [
[ [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
0, [ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ]
1,
2,
3,
4,
5,
6,
7,
8,
9
],
[
10,
11,
12,
13,
14,
15,
16,
17,
18,
19
]
], ],
"memoryDomain": [ "memoryDomain": [
[ [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
0, [ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ]
1,
2,
3,
4,
5,
6,
7,
8,
9
],
[
10,
11,
12,
13,
14,
15,
16,
17,
18,
19
]
], ],
"core": [ "core": [
[ [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ], [ 8 ], [ 9 ], [ 10 ], [ 11 ], [ 12 ], [ 13 ], [ 14 ], [ 15 ], [ 16 ], [ 17 ], [ 18 ], [ 19 ]
0
],
[
1
],
[
2
],
[
3
],
[
4
],
[
5
],
[
6
],
[
7
],
[
8
],
[
9
],
[
10
],
[
11
],
[
12
],
[
13
],
[
14
],
[
15
],
[
16
],
[
17
],
[
18
],
[
19
]
] ]
} }
} }

View File

@@ -178,9 +178,9 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 10,
"alert": 1 "alert": 1
}, },
{ {
@@ -192,9 +192,9 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 10,
"alert": 1 "alert": 1
}, },
{ {
@@ -206,10 +206,10 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 20,
"alert": 1 "alert": 5
} }
], ],
"subClusters": [ "subClusters": [

View File

@@ -86,6 +86,32 @@
"caution": 100, "caution": 100,
"alert": 50 "alert": 50
}, },
{
"name": "net_bytes_in",
"unit": {
"base": "B/s"
},
"scope": "node",
"aggregation": "sum",
"timestep": 60,
"peak": 50000000,
"normal": 10000000,
"caution": 5000,
"alert": 1000
},
{
"name": "net_bytes_out",
"unit": {
"base": "B/s"
},
"scope": "node",
"aggregation": "sum",
"timestep": 60,
"peak": 50000000,
"normal": 200000,
"caution": 5000,
"alert": 1000
},
{ {
"name": "mem_bw", "name": "mem_bw",
"unit": { "unit": {
@@ -234,6 +260,7 @@
}, },
"scope": "accelerator", "scope": "accelerator",
"aggregation": "sum", "aggregation": "sum",
"energy": "power",
"timestep": 60, "timestep": 60,
"peak": 400, "peak": 400,
"normal": 200, "normal": 200,
@@ -290,9 +317,9 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 10,
"alert": 1 "alert": 1
}, },
{ {
@@ -304,9 +331,9 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 10,
"alert": 1 "alert": 1
}, },
{ {
@@ -318,10 +345,10 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 20,
"alert": 1 "alert": 5
} }
], ],
"subClusters": [ "subClusters": [

View File

@@ -61,6 +61,7 @@
"aggregation": "sum", "aggregation": "sum",
"footprint": "max", "footprint": "max",
"timestep": 60, "timestep": 60,
"lowerIsBetter": true,
"peak": 32, "peak": 32,
"normal": 16, "normal": 16,
"caution": 28, "caution": 28,
@@ -109,10 +110,10 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 125000000, "peak": 50000000,
"normal": 125000000, "normal": 10000000,
"caution": 200, "caution": 5000,
"alert": 240 "alert": 1000
}, },
{ {
"name": "net_bytes_out", "name": "net_bytes_out",
@@ -122,10 +123,10 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 125000000, "peak": 50000000,
"normal": 125000000, "normal": 200000,
"caution": 200, "caution": 5000,
"alert": 240 "alert": 1000
}, },
{ {
"name": "flops_dp", "name": "flops_dp",
@@ -234,9 +235,9 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 10,
"alert": 1 "alert": 1
}, },
{ {
@@ -248,10 +249,10 @@
"scope": "node", "scope": "node",
"aggregation": "sum", "aggregation": "sum",
"timestep": 60, "timestep": 60,
"peak": 6, "peak": 50000,
"normal": 4, "normal": 10000,
"caution": 2, "caution": 20,
"alert": 1 "alert": 5
} }
], ],
"subClusters": [ "subClusters": [
@@ -285,40 +286,16 @@
}, },
"topology": { "topology": {
"node": [ "node": [
0, 0, 1, 2, 3
1,
2,
3
], ],
"socket": [ "socket": [
[ [ 0, 1, 2, 3 ]
0,
1,
2,
3
]
], ],
"memoryDomain": [ "memoryDomain": [
[ [ 0, 1, 2, 3 ]
0,
1,
2,
3
]
], ],
"core": [ "core": [
[ [ 0 ], [ 1 ], [ 2 ], [ 3 ]
0
],
[
1
],
[
2
],
[
3
]
] ]
} }
}, },
@@ -352,40 +329,16 @@
}, },
"topology": { "topology": {
"node": [ "node": [
0, 0, 1, 2, 3
1,
2,
3
], ],
"socket": [ "socket": [
[ [ 0, 1, 2, 3 ]
0,
1,
2,
3
]
], ],
"memoryDomain": [ "memoryDomain": [
[ [ 0, 1, 2, 3 ]
0,
1,
2,
3
]
], ],
"core": [ "core": [
[ [ 0 ], [ 1 ], [ 2 ], [ 3 ]
0
],
[
1
],
[
2
],
[
3
]
] ]
} }
}, },
@@ -419,47 +372,22 @@
}, },
"topology": { "topology": {
"node": [ "node": [
0, 0, 1, 2, 3
1,
2,
3
], ],
"socket": [ "socket": [
[ [ 0, 1, 2, 3 ]
0,
1,
2,
3
]
], ],
"memoryDomain": [ "memoryDomain": [
[ [ 0, 1, 2, 3 ]
0,
1,
2,
3
]
], ],
"core": [ "core": [
[ [ 0 ], [ 1 ], [ 2 ], [ 3 ]
0
],
[
1
],
[
2
],
[
3
]
] ]
} }
}, },
{ {
"name": "icelake", "name": "icelake",
"nodes": "w22[01-35],w23[01-35],w24[01-20],w25[01-20]", "processorType": "Intel(R) Xeon(R) Gold 6326",
"processorType": "Intel Xeon Gold 6326",
"socketsPerNode": 2, "socketsPerNode": 2,
"coresPerSocket": 16, "coresPerSocket": 16,
"threadsPerCore": 1, "threadsPerCore": 1,
@@ -468,475 +396,37 @@
"base": "F/s", "base": "F/s",
"prefix": "G" "prefix": "G"
}, },
"value": 432 "value": 78
}, },
"flopRateSimd": { "flopRateSimd": {
"unit": { "unit": {
"base": "F/s", "base": "F/s",
"prefix": "G" "prefix": "G"
}, },
"value": 9216 "value": 1448
}, },
"memoryBandwidth": { "memoryBandwidth": {
"unit": { "unit": {
"base": "B/s", "base": "B/s",
"prefix": "G" "prefix": "G"
}, },
"value": 350 "value": 274
}, },
"nodes": "w22[01-35],w23[01-35],w24[01-20],w25[01-20]",
"topology": { "topology": {
"node": [ "node": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71
],
"socket": [ "socket": [
[ [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
0, [16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35
],
[
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71
]
], ],
"memoryDomain": [ "memoryDomain": [
[ [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
0, [16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17
],
[
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35
],
[
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53
],
[
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71
]
], ],
"core": [ "core": [
[ [0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31]
0
],
[
1
],
[
2
],
[
3
],
[
4
],
[
5
],
[
6
],
[
7
],
[
8
],
[
9
],
[
10
],
[
11
],
[
12
],
[
13
],
[
14
],
[
15
],
[
16
],
[
17
],
[
18
],
[
19
],
[
20
],
[
21
],
[
22
],
[
23
],
[
24
],
[
25
],
[
26
],
[
27
],
[
28
],
[
29
],
[
30
],
[
31
],
[
32
],
[
33
],
[
34
],
[
35
],
[
36
],
[
37
],
[
38
],
[
39
],
[
40
],
[
41
],
[
42
],
[
43
],
[
44
],
[
45
],
[
46
],
[
47
],
[
48
],
[
49
],
[
50
],
[
51
],
[
52
],
[
53
],
[
54
],
[
55
],
[
56
],
[
57
],
[
58
],
[
59
],
[
60
],
[
61
],
[
62
],
[
63
],
[
64
],
[
65
],
[
66
],
[
67
],
[
68
],
[
69
],
[
70
],
[
71
]
] ]
} }
} }
] ]