Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/sonarcloud-others.yml26
-rw-r--r--.github/workflows/sonarcloud.yml10
-rw-r--r--ChangeLog108
-rw-r--r--build.xml29
-rw-r--r--configure.ac2
-rw-r--r--create/src/dashboards.tmpl3966
-rw-r--r--create/src/schema.tmpl4
-rw-r--r--create/src/templates.tmpl8628
-rw-r--r--database/postgresql/double.sql4
-rw-r--r--include/version.h4
-rw-r--r--include/zbxdb.h22
-rw-r--r--include/zbxserver.h3
-rw-r--r--include/zbxtypes.h4
-rw-r--r--sass/stylesheets/sass/base/_colors.scss1
-rw-r--r--sass/stylesheets/sass/components/_tabfilter.scss68
-rw-r--r--sass/stylesheets/sass/dark-theme.scss5
-rw-r--r--sass/stylesheets/sass/hc-dark.scss9
-rw-r--r--sass/stylesheets/sass/screen.scss2
-rw-r--r--sonar-project.properties1
-rw-r--r--src/go/conf/zabbix_agent2.d/plugins.d/postgres.conf96
-rw-r--r--src/go/go.mod5
-rw-r--r--src/go/go.sum175
-rw-r--r--src/go/internal/agent/scheduler/manager.go1
-rw-r--r--src/go/pkg/tls/tls.go47
-rw-r--r--src/go/pkg/tlsconfig/tlsconfig.go102
-rw-r--r--src/go/pkg/version/version.go6
-rw-r--r--src/go/pkg/zbxlib/checks.go5
-rw-r--r--src/go/pkg/zbxlib/eventlog_windows.go12
-rw-r--r--src/go/pkg/zbxlib/expressions.go12
-rw-r--r--src/go/pkg/zbxlib/log.go5
-rw-r--r--src/go/pkg/zbxlib/logfile.go15
-rw-r--r--src/go/pkg/zbxlib/nextcheck.go5
-rw-r--r--src/go/plugins/external/broker.go14
-rw-r--r--src/go/plugins/mysql/conn.go2
-rw-r--r--src/go/plugins/mysql/mysql.go2
-rw-r--r--src/go/plugins/net/tcp/tcp_netstat.go4
-rw-r--r--src/go/plugins/net/udp/udp_netstat.go3
-rw-r--r--src/go/plugins/plugins_darwin.go1
-rw-r--r--src/go/plugins/plugins_linux.go1
-rw-r--r--src/go/plugins/plugins_windows.go1
-rw-r--r--src/go/plugins/postgres/README.md632
-rwxr-xr-xsrc/go/plugins/postgres/config.go96
-rwxr-xr-xsrc/go/plugins/postgres/conn.go333
-rw-r--r--src/go/plugins/postgres/handler_archive.go92
-rw-r--r--src/go/plugins/postgres/handler_archive_test.go70
-rw-r--r--src/go/plugins/postgres/handler_autovacuum.go56
-rw-r--r--src/go/plugins/postgres/handler_autovacuum_test.go67
-rw-r--r--src/go/plugins/postgres/handler_bgwriter.go68
-rw-r--r--src/go/plugins/postgres/handler_bgwriter_test.go66
-rw-r--r--src/go/plugins/postgres/handler_cache_test.go67
-rw-r--r--src/go/plugins/postgres/handler_connections.go65
-rw-r--r--src/go/plugins/postgres/handler_connections_test.go67
-rw-r--r--src/go/plugins/postgres/handler_custom_query.go102
-rw-r--r--src/go/plugins/postgres/handler_database_age.go55
-rw-r--r--src/go/plugins/postgres/handler_database_age_test.go66
-rw-r--r--src/go/plugins/postgres/handler_database_size.go55
-rw-r--r--src/go/plugins/postgres/handler_database_size_test.go67
-rw-r--r--src/go/plugins/postgres/handler_databases_bloating.go55
-rw-r--r--src/go/plugins/postgres/handler_databases_bloating_test.go67
-rw-r--r--src/go/plugins/postgres/handler_databases_discovery.go55
-rw-r--r--src/go/plugins/postgres/handler_databases_discovery_test.go71
-rw-r--r--src/go/plugins/postgres/handler_dbstat.go117
-rw-r--r--src/go/plugins/postgres/handler_dbstat_test.go72
-rw-r--r--src/go/plugins/postgres/handler_locks.go97
-rw-r--r--src/go/plugins/postgres/handler_locks_test.go74
-rw-r--r--src/go/plugins/postgres/handler_oldest_xid.go53
-rw-r--r--src/go/plugins/postgres/handler_oldest_xid_test.go71
-rwxr-xr-xsrc/go/plugins/postgres/handler_ping_test.go73
-rw-r--r--src/go/plugins/postgres/handler_queries.go237
-rw-r--r--src/go/plugins/postgres/handler_queries_test.go72
-rw-r--r--src/go/plugins/postgres/handler_replication.go168
-rw-r--r--src/go/plugins/postgres/handler_replication_process_name_discovery.go55
-rw-r--r--src/go/plugins/postgres/handler_replication_test.go106
-rw-r--r--src/go/plugins/postgres/handler_uptime.go54
-rw-r--r--src/go/plugins/postgres/handler_uptime_test.go66
-rw-r--r--src/go/plugins/postgres/handler_wal.go65
-rw-r--r--src/go/plugins/postgres/handler_wal_test.go66
-rw-r--r--src/go/plugins/postgres/metrics.go291
-rwxr-xr-xsrc/go/plugins/postgres/postgres.go125
-rwxr-xr-xsrc/go/plugins/postgres/postgres_test.go145
-rw-r--r--src/go/plugins/postgres/testpool.go91
-rw-r--r--src/go/plugins/proc/proc_linux.go1
-rw-r--r--src/go/plugins/system/cpu/cpu_linux.go3
-rw-r--r--src/go/plugins/vfs/file/encoding.go7
-rw-r--r--src/go/plugins/vfs/fs/fs.go1
-rw-r--r--src/go/plugins/vfs/fs/fs_nix.go3
-rw-r--r--src/go/plugins/vfs/fs/fscaller.go25
-rw-r--r--src/libs/zbxalgo/prediction.c2
-rw-r--r--src/libs/zbxcommon/misc.c4
-rw-r--r--src/libs/zbxcommon/str.c2
-rw-r--r--src/libs/zbxdb/db.c15
-rw-r--r--src/libs/zbxdbcache/dbconfig.c128
-rw-r--r--src/libs/zbxdbcache/dbconfig.h1
-rw-r--r--src/libs/zbxdbhigh/db.c41
-rw-r--r--src/libs/zbxdbhigh/graph_linking.c12
-rw-r--r--src/libs/zbxdbhigh/proxy.c4
-rw-r--r--src/libs/zbxdbhigh/template_item.c10
-rw-r--r--src/libs/zbxdbhigh/trigger_linking.c10
-rw-r--r--src/libs/zbxdbupgrade/dbupgrade_5050.c4
-rw-r--r--src/libs/zbxdbupgrade/dbupgrade_6000.c8
-rw-r--r--src/libs/zbxmemory/memalloc.c4
-rw-r--r--src/libs/zbxserver/anomalystl.c6
-rw-r--r--src/libs/zbxserver/evalfunc.c2
-rw-r--r--src/libs/zbxsysinfo/aix/cpu.c5
-rw-r--r--src/libs/zbxsysinfo/aix/diskio.c3
-rw-r--r--src/libs/zbxsysinfo/aix/diskspace.c5
-rw-r--r--src/libs/zbxsysinfo/aix/net.c4
-rw-r--r--src/libs/zbxsysinfo/aix/proc.c4
-rw-r--r--src/libs/zbxsysinfo/aix/software.c2
-rw-r--r--src/libs/zbxsysinfo/aix/system.c2
-rw-r--r--src/libs/zbxsysinfo/aix/uptime.c4
-rw-r--r--src/libs/zbxsysinfo/freebsd/proc.c43
-rw-r--r--src/libs/zbxsysinfo/win32/wmi.cpp1
-rw-r--r--src/libs/zbxwin32/service.c13
-rw-r--r--src/zabbix_agent/listener.c2
-rw-r--r--src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java4
-rw-r--r--src/zabbix_server/alerter/alert_syncer.c2
-rw-r--r--src/zabbix_server/housekeeper/housekeeper.c104
-rw-r--r--src/zabbix_server/lld/lld_item.c4
-rw-r--r--src/zabbix_server/server.c37
-rw-r--r--templates/app/ceph_agent2/README.md130
-rw-r--r--templates/app/ceph_agent2/template_app_ceph_agent2.yaml120
-rw-r--r--templates/app/gitlab_http/README.md39
-rw-r--r--templates/app/gitlab_http/template_app_gitlab_http.yaml37
-rw-r--r--templates/app/kubernetes_http/kubernetes_state_http/README.md2
-rw-r--r--templates/app/kubernetes_http/kubernetes_state_http/template_kubernetes_state.yaml4
-rw-r--r--templates/media/discord/media_discord.yaml42
-rw-r--r--templates/media/msteams/media_msteams.yaml95
-rw-r--r--templates/media/opsgenie/README.md4
-rw-r--r--templates/media/opsgenie/media_opsgenie.yaml47
-rw-r--r--templates/module/smart_agent2/README.md9
-rw-r--r--templates/module/smart_agent2_active/README.md9
-rw-r--r--templates/module/windows_agent/README.md2
-rw-r--r--templates/module/windows_agent/template_module_windows_agent.yaml4
-rw-r--r--templates/module/windows_agent_active/README.md2
-rw-r--r--templates/module/windows_agent_active/template_module_windows_agent_active.yaml4
-rw-r--r--templates/net/f5_bigip_snmp/README.md9
-rw-r--r--templates/net/f5_bigip_snmp/template_net_f5_bigip_snmp.yaml28
-rw-r--r--templates/net/zyxel_snmp/zyxel_mgs3500-24s_snmp/README.md2
-rw-r--r--templates/os/windows_agent/README.md2
-rw-r--r--templates/os/windows_agent/template_os_windows_agent.yaml4
-rw-r--r--templates/os/windows_agent_active/README.md2
-rw-r--r--templates/os/windows_agent_active/template_os_windows_agent_active.yaml4
-rw-r--r--templates/san/hpe_msa2040_http/README.md235
-rw-r--r--templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml1203
-rw-r--r--templates/san/hpe_msa2060_http/README.md243
-rw-r--r--templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml1212
-rw-r--r--templates/san/hpe_primera_http/README.md211
-rw-r--r--templates/san/hpe_primera_http/template_san_hpe_primera_http.yaml771
-rw-r--r--templates/server/hpe_synergy_http/README.md532
-rw-r--r--templates/server/hpe_synergy_http/template_server_hpe_synergy_http.yaml2463
-rw-r--r--ui/app/controllers/CControllerAuditLogList.php24
-rw-r--r--ui/app/controllers/CControllerCharts.php39
-rw-r--r--ui/app/controllers/CControllerHost.php6
-rw-r--r--ui/app/controllers/CControllerHostView.php11
-rw-r--r--ui/app/controllers/CControllerHousekeepingEdit.php25
-rw-r--r--ui/app/controllers/CControllerHousekeepingUpdate.php15
-rw-r--r--ui/app/controllers/CControllerLatest.php4
-rw-r--r--ui/app/controllers/CControllerLatestView.php13
-rw-r--r--ui/app/controllers/CControllerPopupMedia.php2
-rw-r--r--ui/app/controllers/CControllerPopupMediatypeMessage.php4
-rw-r--r--ui/app/controllers/CControllerProblem.php68
-rw-r--r--ui/app/controllers/CControllerProblemView.php58
-rw-r--r--ui/app/controllers/CControllerProblemViewRefresh.php105
-rw-r--r--ui/app/controllers/CControllerWidgetNavTreeView.php5
-rw-r--r--ui/app/partials/administration.ha.nodes.php5
-rw-r--r--ui/app/partials/administration.system.info.php28
-rw-r--r--ui/app/partials/monitoring.problem.view.html.php75
-rw-r--r--ui/app/views/administration.authentication.edit.php5
-rw-r--r--ui/app/views/administration.housekeeping.edit.php28
-rw-r--r--ui/app/views/administration.user.edit.php4
-rw-r--r--ui/app/views/js/administration.housekeeping.edit.js.php16
-rw-r--r--ui/app/views/js/monitoring.problem.view.js.php166
-rw-r--r--ui/app/views/monitoring.problem.view.php60
-rw-r--r--ui/app/views/monitoring.problem.view.refresh.php (renamed from src/go/plugins/postgres/handler_ping.go)41
-rw-r--r--ui/app/views/popup.mediatypetest.edit.php2
-rw-r--r--ui/app/views/popup.scriptexec.php2
-rw-r--r--ui/assets/styles/blue-theme.css51
-rw-r--r--ui/assets/styles/dark-theme.css53
-rw-r--r--ui/assets/styles/hc-dark.css55
-rw-r--r--ui/assets/styles/hc-light.css51
-rw-r--r--ui/disc_prototypes.php2
-rw-r--r--ui/include/classes/api/CApiService.php65
-rw-r--r--ui/include/classes/api/services/CAuditLog.php39
-rw-r--r--ui/include/classes/api/services/CDashboard.php13
-rw-r--r--ui/include/classes/api/services/CHaNode.php6
-rw-r--r--ui/include/classes/api/services/CHistory.php45
-rw-r--r--ui/include/classes/api/services/CHostPrototype.php14
-rw-r--r--ui/include/classes/api/services/CHttpTest.php8
-rw-r--r--ui/include/classes/api/services/CModule.php11
-rw-r--r--ui/include/classes/api/services/CRegexp.php10
-rw-r--r--ui/include/classes/api/services/CReport.php13
-rw-r--r--ui/include/classes/api/services/CRole.php11
-rw-r--r--ui/include/classes/api/services/CScript.php23
-rw-r--r--ui/include/classes/api/services/CService.php12
-rw-r--r--ui/include/classes/api/services/CSla.php16
-rw-r--r--ui/include/classes/api/services/CTemplateDashboard.php13
-rw-r--r--ui/include/classes/api/services/CToken.php16
-rw-r--r--ui/include/classes/api/services/CValueMap.php10
-rw-r--r--ui/include/classes/core/Manager.php13
-rw-r--r--ui/include/classes/helpers/CHousekeepingHelper.php36
-rw-r--r--ui/include/classes/helpers/CMessageHelper.php8
-rw-r--r--ui/include/classes/helpers/CSettingsHelper.php13
-rw-r--r--ui/include/classes/helpers/CSystemInfoHelper.php15
-rw-r--r--ui/include/classes/mvc/CRouter.php2
-rw-r--r--ui/include/classes/screens/CScreenProblem.php6
-rw-r--r--ui/include/classes/services/CTabFilterProfile.php12
-rw-r--r--ui/include/classes/validators/CApiInputValidator.php105
-rw-r--r--ui/include/db.inc.php18
-rw-r--r--ui/include/defines.inc.php9
-rw-r--r--ui/include/forms.inc.php3
-rw-r--r--ui/include/func.inc.php15
-rw-r--r--ui/include/maps.inc.php68
-rw-r--r--ui/include/schema.inc.php2
-rw-r--r--ui/include/views/configuration.item.edit.php4
-rw-r--r--ui/include/views/configuration.item.prototype.edit.php2
-rw-r--r--ui/include/views/js/common.template.edit.js.php2
-rw-r--r--ui/items.php7
-rw-r--r--ui/js/class.cmap.js54
-rw-r--r--ui/js/class.cviewswitcher.js2
-rw-r--r--ui/js/class.notifications.js4
-rw-r--r--ui/js/class.tabfilter.js13
-rw-r--r--ui/js/class.tabfilteritem.js30
-rw-r--r--ui/js/flickerfreescreen.js6
-rw-r--r--ui/js/functions.js59
-rw-r--r--ui/js/menupopup.js41
-rw-r--r--ui/locale/bg/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/ca/LC_MESSAGES/frontend.po24
-rw-r--r--ui/locale/cs/LC_MESSAGES/frontend.po74
-rw-r--r--ui/locale/da/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/de/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/el/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/en/LC_MESSAGES/frontend.pot18
-rw-r--r--ui/locale/en_GB/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/es/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/fa/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/fi/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/fr/LC_MESSAGES/frontend.po26
-rw-r--r--ui/locale/he/LC_MESSAGES/frontend.po42
-rw-r--r--ui/locale/hu/LC_MESSAGES/frontend.po37
-rw-r--r--ui/locale/id/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/it/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/ja/LC_MESSAGES/frontend.po22
-rw-r--r--ui/locale/ka/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/ko/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/lt/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/lv/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/nb_NO/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/nl/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/pl/LC_MESSAGES/frontend.po24
-rw-r--r--ui/locale/pt_BR/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/pt_PT/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/ro/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/ru/LC_MESSAGES/frontend.po24
-rw-r--r--ui/locale/sk/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/sv_SE/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/tr/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/uk/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/vi/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/zh_CN/LC_MESSAGES/frontend.po18
-rw-r--r--ui/locale/zh_TW/LC_MESSAGES/frontend.po18
-rw-r--r--ui/tests/api_json/ApiJsonTests.php26
-rwxr-xr-xui/tests/api_json/common/testAuditlogCommon.php77
-rw-r--r--ui/tests/api_json/testAPIInfo.php2
-rwxr-xr-xui/tests/api_json/testAuditlogAction.php225
-rwxr-xr-x[-rw-r--r--]ui/tests/api_json/testAuditlogAutoregistration.php (renamed from src/go/plugins/postgres/handler_cache.go)44
-rwxr-xr-xui/tests/api_json/testAuditlogDashboard.php220
-rwxr-xr-xui/tests/api_json/testAuditlogEventCorrelation.php126
-rwxr-xr-xui/tests/api_json/testAuditlogIconMap.php102
-rwxr-xr-xui/tests/api_json/testAuditlogMaintenance.php166
-rwxr-xr-xui/tests/api_json/testAuditlogMediaType.php142
-rwxr-xr-xui/tests/api_json/testAuditlogProxy.php93
-rwxr-xr-xui/tests/api_json/testAuditlogScheduledReport.php188
-rwxr-xr-xui/tests/api_json/testAuditlogSettings.php124
-rwxr-xr-xui/tests/api_json/testAuditlogToken.php84
-rwxr-xr-xui/tests/api_json/testAuditlogUser.php179
-rwxr-xr-xui/tests/api_json/testAuditlogUserGroups.php89
-rw-r--r--ui/tests/api_json/testHistory.php8
-rw-r--r--ui/tests/api_json/testServices.php93
-rw-r--r--ui/tests/api_json/testToken.php28
-rw-r--r--ui/tests/api_json/testWebScenario.php25
-rw-r--r--ui/tests/include/CAPITest.php4
-rw-r--r--ui/tests/include/CIntegrationTest.php18
-rw-r--r--ui/tests/include/helpers/CAPIHelper.php3
-rw-r--r--ui/tests/include/helpers/CDBHelper.php31
-rw-r--r--ui/tests/include/web/CElement.php2
-rw-r--r--ui/tests/include/web/elements/CDashboardElement.php29
-rw-r--r--ui/tests/include/web/elements/CInputGroupElement.php16
-rw-r--r--ui/tests/include/web/elements/CMultiselectElement.php7
-rw-r--r--ui/tests/include/web/elements/CTableElement.php2
-rw-r--r--ui/tests/integration/IntegrationTests.php5
-rw-r--r--ui/tests/integration/testDataCollection.php2
-rw-r--r--ui/tests/integration/testHighAvailability.php2
-rw-r--r--ui/tests/integration/testTimescaleDb.php234
-rw-r--r--ui/tests/selenium/SeleniumTests.php16
-rw-r--r--ui/tests/selenium/common/testFormAdministrationGeneral.php4
-rw-r--r--ui/tests/selenium/common/testFormApiTokens.php2
-rw-r--r--ui/tests/selenium/common/testFormFilter.php4
-rw-r--r--ui/tests/selenium/common/testFormHost.php7
-rw-r--r--ui/tests/selenium/common/testFormMacros.php5
-rw-r--r--ui/tests/selenium/common/testSystemInformation.php18
-rw-r--r--ui/tests/selenium/dashboard/testDashboardDynamicItemWidgets.php1
-rw-r--r--ui/tests/selenium/dashboard/testDashboardFavoriteGraphsWidget.php118
-rw-r--r--ui/tests/selenium/dashboard/testDashboardFavoriteMapsWidget.php98
-rw-r--r--ui/tests/selenium/dashboard/testDashboardForm.php920
-rw-r--r--ui/tests/selenium/dashboard/testDashboardHostAvailabilityWidget.php1
-rw-r--r--ui/tests/selenium/dashboard/testDashboardPages.php7
-rw-r--r--ui/tests/selenium/dashboard/testDashboardProblemsBySeverityWidget.php1
-rw-r--r--ui/tests/selenium/dashboard/testDashboardTriggerOverviewWidget.php915
-rw-r--r--ui/tests/selenium/dashboard/testDashboardViewMode.php126
-rw-r--r--ui/tests/selenium/dashboard/testFormTemplateDashboards.php5
-rw-r--r--ui/tests/selenium/data/data_test.sql135
-rw-r--r--ui/tests/selenium/data/sources/LoginUsers.php260
-rw-r--r--ui/tests/selenium/filterTabs/testFormFilterHosts.php1
-rw-r--r--ui/tests/selenium/filterTabs/testFormFilterProblems.php6
-rw-r--r--ui/tests/selenium/items/testFormItem.php2
-rw-r--r--ui/tests/selenium/items/testFormItemHttpAgent.php11
-rw-r--r--ui/tests/selenium/items/testFormItemPrototype.php2
-rw-r--r--ui/tests/selenium/items/testFormulaCalculatedItemPrototype.php1
-rw-r--r--ui/tests/selenium/problems/testFormUpdateProblem.php619
-rw-r--r--ui/tests/selenium/problems/testPageProblems.php (renamed from ui/tests/selenium/testPageProblems.php)45
-rw-r--r--ui/tests/selenium/reports/testFormScheduledReport.php3
-rwxr-xr-x[-rw-r--r--]ui/tests/selenium/reports/testPageReportsAudit.php854
-rw-r--r--ui/tests/selenium/reports/testPageReportsNotifications.php4
-rw-r--r--ui/tests/selenium/roles/testFormUserRoles.php8
-rw-r--r--ui/tests/selenium/roles/testPageUserRoles.php6
-rw-r--r--ui/tests/selenium/roles/testUserRolesPermissions.php1
-rw-r--r--ui/tests/selenium/testFormAdministrationAuthenticationHttp.php4
-rw-r--r--ui/tests/selenium/testFormAdministrationUserGroups.php1
-rw-r--r--ui/tests/selenium/testFormApiTokensAdministrationGeneral.php1
-rw-r--r--ui/tests/selenium/testFormLogin.php45
-rw-r--r--ui/tests/selenium/testFormWeb.php126
-rw-r--r--ui/tests/selenium/testFormWebStep.php76
-rw-r--r--ui/tests/selenium/testGraphAxis.php4
-rw-r--r--ui/tests/selenium/testPageDashboard.php270
-rw-r--r--ui/tests/selenium/testPageDashboardWidgets.php36
-rw-r--r--ui/tests/selenium/testPageLatestData.php15
-rw-r--r--ui/tests/selenium/testPageMonitoringHosts.php39
-rw-r--r--ui/tests/selenium/testPageTemplates.php2
-rw-r--r--ui/tests/selenium/testTagBasedPermissions.php19
-rw-r--r--ui/tests/selenium/traits/TableTrait.php58
-rw-r--r--ui/tests/selenium/users/testFormUser.php2
-rw-r--r--ui/tests/selenium/users/testFormUserMedia.php2
-rw-r--r--ui/tests/selenium/users/testFormUserPermissions.php1
-rw-r--r--ui/tests/selenium/users/testFormUserProfile.php1
-rw-r--r--ui/tests/selenium/users/testPageUsers.php1
-rw-r--r--ui/tests/unit/include/classes/validators/CApiInputValidatorTest.php24
347 files changed, 20219 insertions, 15549 deletions
diff --git a/.github/workflows/sonarcloud-others.yml b/.github/workflows/sonarcloud-others.yml
deleted file mode 100644
index 787c918767a..00000000000
--- a/.github/workflows/sonarcloud-others.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: SonarCloud Others Build
-
-on:
- push:
- branches:
- - 'master'
- - 'release/*'
- pull_request:
- types: [opened, synchronize, reopened]
-
-jobs:
- SonarCloud-others:
- name: SonarCloud-others
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- - name: SonarCloud Scan
- uses: SonarSource/sonarcloud-github-action@master
- with:
- args: >
- -Dsonar.sources=ui/
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml
index fe2d9bc9edf..b75bb9a16e8 100644
--- a/.github/workflows/sonarcloud.yml
+++ b/.github/workflows/sonarcloud.yml
@@ -1,13 +1,17 @@
-name: SonarCloud C Build
+name: SonarCloud Build
on:
+ push:
+ branches:
+ - "master"
+ - "release/*"
schedule:
- cron: "0 0 * * *"
jobs:
- SonarCloud-C:
- name: SonarCloud-C
+ SonarCloud:
+ name: SonarCloud
runs-on: ubuntu-latest
env:
SONAR_SCANNER_VERSION: 4.7.0.2747
diff --git a/ChangeLog b/ChangeLog
index b70d78fd57f..1bebd06eae3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,67 @@
+Changes for 6.0.10rc1
+
+New features:
+.........T [ZBXNEXT-8018] added token authentication in Template GitLab by HTTP (atocko)
+..F.....S. [ZBXNEXT-7122] added detection of compressed chunks in history or trend tables, and warnings that suggest enabling housekeeping overrides accordingly (dgoloscapov, jfreibergs)
+.......PS. [ZBXNEXT-7816] added support of PostgreSQL 15 (vso)
+.......PS. [ZBXNEXT-7970] added support of TimescaleDB 2.8 (vso)
+.........T [ZBX-21672] fixed event source in mediatypes (egordymov)
+..F....... [ZBXNEXT-7567] implemented saving the state of the default filters in monitoring sections (acikuns)
+A.F.I..... [ZBXNEXT-7971] increased max length of the "URL (after login)" field (Sasha)
+
+Bug fixes:
+..F....... [ZBX-17300] fixed handling of context menu in Map builder (jfreibergs)
+.........T [ZBXNEXT-8035] added override for file system discovery trigger in f5 template (knaglis)
+..F....... [ZBX-21656] fixed clone buttons not working in Safari 16 on template editing form (averza)
+..F....... [ZBX-21449] fixed accessibility attributes (Sasha)
+.........T [ZBX-21461] fixed item "Checksum of /etc/passwd" (egordymov)
+..F....... [ZBX-20505] fixed subfilter counters displaying incorrect values in Monitoring => Graph view (rdetlavs)
+...G...... [ZBX-21452] fixed wmi.get* crash of zabbix_agentd for windows (MVekslers)
+.........T [ZBX-21673] fixed read operations per second preprocessing in Ceph by Zabbix agent 2 template (drasihov)
+..F....... [ZBX-18478] fixed LDAP test button visibility in user authentication form (gcalenko)
+.........T [ZBX-21582] optimized HPE Synergy template to spread load across preprocessing workers (vkhaliev)
+..F....... [ZBX-21708] fixed PHP TypeError when opening non-existing dashboard (dpetra)
+..F....... [ZBX-21606] fixed "Allowed hosts" field in HTTP agent item (kkuzmina)
+A......... [ZBX-19224] added ability to unset headers in web scenario (rlataria)
+........S. [ZBX-21709] fixed database upgrade patch to skip unexpected invalid service downtime instead of failing (vso)
+..F....... [ZBX-21562] fixed maps not working with elements having disabled triggers (rdetlavs)
+........S. [ZBX-21537] fixed history syncers being stuck waiting on system information being collected (vso)
+.........T [ZBX-21484] updated documentation for templates SMART by Zabbix agent 2 (atocko)
+.........T [ZBX-20296] fixed swap trigger function for windows os and modules by Zabbix agent templates (atocko)
+.........T [ZBX-20392] added close/ack/unack of events for OPSgenie media (atocko)
+...G...... [ZBX-21227] fixed Zabbix agent to log received service control commands (vso)
+...G...... [ZBX-21456] fixed net.tcp.socket.count and net.udp.socket.count problem on Zabbix agent 2 when ipv6 is disabled (dgoloscapov)
+..F....... [ZBX-21532] fixed missing inherited tags for templated triggers in edit form, tag tab (dpetra)
+..F....... [ZBX-21000] fixed possibility to update host interface on items from templates (dpetra)
+........S. [ZBX-21706] fixed double precision update patch for TimescaleDb (akozlovs)
+..F....... [ZBX-19512] fixed debug info block content refresh after changing table content in Monitoring -> Problems page (miks)
+..F....... [ZBX-21682] removed unnecessary horizontal separator from Host interface (kkuzmina)
+...G...... [ZBX-21610] fixed problem with sysctl() kern.proc.args API bug on FreeBSD <= 8.2 (ssimonenko)
+........S. [ZBX-17060] fixed unexpected interface connection mode change during autoregistration (asestakovs)
+...G...... [ZBX-21388] fixed Zabbix agent 2 plugin read error and updated plugin support dependency for Zabbix agent 2 (esneiders)
+...G...PS. [ZBX-20864] fixed format specifier definitions on AIX (jxl)
+..F....... [ZBX-21605] fixed possible PHP runtime errors in several modal popup dialogs (Sasha)
+.........T [ZBX-21580] optimized HPE MSA 2060 Storage by HTTP template to spread the load across preprocessing workers (drasihov)
+.........T [ZBX-21579] optimized HPE MSA 2040 Storage by HTTP template to spread the load across preprocessing workers (drasihov)
+.........T [ZBX-21421] fixed variable spelling in Kubernetes cluster state by HTTP template (atocko)
+...G...... [ZBX-21466] fixed race condition in Zabbix agent 2 leading to permanently stuck mount reads (arimdjonoks)
+A.F....... [ZBX-21097] fixed filtering by "Resource ID" and "Recordset ID" fields for "Audit log" page (Sasha)
+..F....... [ZBX-21544] fixed value of query field being truncated to the first "=" sign when pressing parse button (agriscenko)
+.........T [ZBX-21581] optimized HPE Primera template to spread the load across preprocessing workers (vkhaliev)
+........S. [ZBX-21009] fixed double escaping in trigger function upon host autoregistration (kprutkovs)
+
+--------------------------------------------------------------------------------
+Changes for 6.0.9
+
+6.0.9rc2 was released as 6.0.9 without any changes
+
+--------------------------------------------------------------------------------
+Changes for 6.0.9rc2
+
+Bug fixes:
+........S. [ZBX-21664] fixed Zabbix server crashing during database upgrade when converting service times and there is downtime inside uptime (vso)
+
+--------------------------------------------------------------------------------
Changes for 6.0.9rc1
New features:
@@ -2116,6 +2180,38 @@ A......... [ZBX-17955] fixed "medias" parameter named inconsistency in user.crea
.......PS. [ZBX-17548] don't store text items with history 0 in proxy history (wiper)
--------------------------------------------------------------------------------
+Changes for 5.0.29rc1
+
+New features:
+..F.....S. [ZBXNEXT-7122] added detection of compressed chunks in history or trend tables, and warnings that suggest enabling housekeeping overrides accordingly (dgoloscapov, jfreibergs)
+
+Bug fixes:
+..F....... [ZBX-17300] fixed handling of context menu in Map builder (jfreibergs)
+.........T [ZBXNEXT-8035] added override for file system discovery trigger in f5 template (knaglis)
+...G...... [ZBX-21452] fixed wmi.get* crash of zabbix_agentd for windows (MVekslers)
+.........T [ZBX-21673] fixed read operations per second preprocessing in Ceph by Zabbix agent 2 template (drasihov)
+..F....... [ZBX-18478] fixed LDAP test button visibility in user authentication form (gcalenko)
+..F....... [ZBX-21708] fixed PHP TypeError when opening non-existing dashboard (dpetra)
+A......... [ZBX-19224] added ability to unset headers in web scenario (rlataria)
+..F....... [ZBX-21562] fixed maps not working with elements having disabled triggers (rdetlavs)
+.........T [ZBX-21484] updated documentation for templates SMART by Zabbix agent 2 (atocko)
+........S. [ZBX-21537] fixed history syncers being stuck waiting on system information being collected (vso)
+.........T [ZBX-20296] fixed swap and available memory trigger functions for os templates (atocko)
+.........T [ZBX-20392] added close/ack/unack of events for OPSgenie media (atocko)
+...G...... [ZBX-21227] fixed Zabbix agent to log received service control commands (vso)
+..F....... [ZBX-21532] fixed missing inherited tags for templated triggers in edit form, tag tab (dpetra)
+..F....... [ZBX-19512] fixed debug info block content refresh after changing table content in Monitoring -> Problems page (miks)
+...G...... [ZBX-21610] fixed problem with sysctl() kern.proc.args API bug on FreeBSD <= 8.2 (ssimonenko)
+........S. [ZBX-17060] fixed unexpected interface connection mode change during autoregistration (asestakovs)
+..F....... [ZBX-21605] fixed possible PHP runtime errors in several modal popup dialogs (Sasha)
+...G...... [ZBX-21466] fixed race condition in Zabbix agent 2 leading to permanently stuck mount reads (arimdjonoks)
+
+--------------------------------------------------------------------------------
+Changes for 5.0.28
+
+5.0.28rc1 was released as 5.0.28 without any changes
+
+--------------------------------------------------------------------------------
Changes for 5.0.28rc1
New features:
@@ -4719,6 +4815,18 @@ A.F.I...S. [ZBXNEXT-4853,ZBXNEXT-517] added ability to send email messages in HT
..F.....S. [ZBXNEXT-1282,ZBXNEXT-4730] added changes to introduce regex based matching for auto-registration (vasilijs, viktors)
--------------------------------------------------------------------------------
+Changes for 4.0.45rc1
+
+New features:
+
+Bug fixes:
+
+--------------------------------------------------------------------------------
+Changes for 4.0.44
+
+4.0.44rc1 was released as 4.0.44 without any changes
+
+--------------------------------------------------------------------------------
Changes for 4.0.44rc1
Bug fixes:
diff --git a/build.xml b/build.xml
index 288aa9df468..73200469265 100644
--- a/build.xml
+++ b/build.xml
@@ -201,6 +201,29 @@
</exec>
</target>
+ <target name="create-db-tsdb" depends="create-db-postgresql">
+ <!-- Create PostgreSQL database with TimescaleDB extension-->
+ <exec executable="psql" failonerror="on">
+ <env key="PGPASSWORD" value="${dbpassword}"/>
+ <arg line="-q"/>
+ <arg line="-d '${dbname}'"/>
+ <arg line="-h '${dbhost}'"/>
+ <arg line="-p '${dbport}'"/>
+ <arg line="-U '${dbuser}'"/>
+ <arg line="--set ON_ERROR_STOP=1"/>
+ <arg line="-c 'create extension if not exists timescaledb cascade;'"/>
+ </exec>
+ <exec executable="psql" input="database/postgresql/timescaledb.sql" failonerror="on">
+ <env key="PGPASSWORD" value="${dbpassword}"/>
+ <arg line="-q"/>
+ <arg line="-h '${dbhost}'"/>
+ <arg line="-p '${dbport}'"/>
+ <arg line="-U '${dbuser}'"/>
+ <arg line="--set ON_ERROR_STOP=1"/>
+ <arg line="${dbname}"/>
+ </exec>
+ </target>
+
<target name="init-proxy-postgresql" depends="">
<!-- Create PostgreSQL database -->
<exec executable="psql" failonerror="on">
@@ -272,6 +295,9 @@
</exec>
</target>
+ <target name="init-integration-tsdb" depends="create-configs,init-integration,make-binaries-postgresql,create-db-tsdb,init-proxy-postgresql">
+ </target>
+
<target name="init-dast-postgresql" depends="create-frontend-configs,make-dbschema,create-db-postgresql"/>
<target name="make-binaries-mysql">
@@ -446,9 +472,10 @@
<target name="build-api-postgresql" depends="init-api-postgresql,test-api"/>
<target name="build-integration-mysql" depends="init-integration-mysql,test-integration"/>
<target name="build-integration-postgresql" depends="init-integration-postgresql,test-integration"/>
+ <target name="build-integration-tsdb" depends="init-integration-tsdb,test-integration"/>
<target name="build-dast-mysql" depends="init-dast-mysql"/>
<target name="build-dast-postgresql" depends="init-dast-postgresql"/>
<!-- Default target -->
- <target name="build" depends="build-phpunit,build-mysql,build-postgresql,build-integration-mysql,build-integration-postgresql"/>
+ <target name="build" depends="build-phpunit,build-mysql,build-postgresql,build-integration-mysql,build-integration-postgresql,build-integration-tsdb"/>
</project>
diff --git a/configure.ac b/configure.ac
index d1debc60c25..7f5009c9b5a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@ dnl
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([Zabbix],[6.0.9rc1])
+AC_INIT([Zabbix],[6.0.10rc1])
AC_CONFIG_SRCDIR(src/zabbix_server/server.c)
AM_INIT_AUTOMAKE([subdir-objects tar-pax])
diff --git a/create/src/dashboards.tmpl b/create/src/dashboards.tmpl
index a9e745eb036..4b0b5067646 100644
--- a/create/src/dashboards.tmpl
+++ b/create/src/dashboards.tmpl
@@ -187,161 +187,161 @@ FIELDS|dashboard_pageid|dashboardid|name|display_period|sortorder|
ROW |1 |1 | |0 |0 |
ROW |2 |2 | |0 |0 |
ROW |57 |57 | |0 |0 |
-ROW |2243 |4 | |0 |0 |
-ROW |2244 |3 | |0 |0 |
-ROW |2245 |58 | |0 |0 |
-ROW |2246 |5 | |0 |0 |
-ROW |2247 |43 | |0 |0 |
-ROW |2248 |44 | |0 |0 |
-ROW |2249 |45 | |0 |0 |
-ROW |2250 |40 | |0 |0 |
-ROW |2251 |41 | |0 |0 |
-ROW |2252 |42 | |0 |0 |
-ROW |2253 |28 | |0 |0 |
-ROW |2254 |30 | |0 |0 |
-ROW |2255 |8 | |0 |0 |
-ROW |2256 |9 | |0 |0 |
-ROW |2257 |12 | |0 |0 |
-ROW |2258 |13 | |0 |0 |
-ROW |2259 |37 | |0 |0 |
-ROW |2260 |39 | |0 |0 |
-ROW |2261 |36 | |0 |0 |
-ROW |2262 |59 | |0 |0 |
-ROW |2263 |38 | |0 |0 |
-ROW |2264 |60 | |0 |0 |
-ROW |2265 |159 | |0 |0 |
-ROW |2266 |160 | |0 |0 |
-ROW |2267 |161 | |0 |0 |
-ROW |2268 |162 | |0 |0 |
-ROW |2269 |163 | |0 |0 |
-ROW |2270 |164 | |0 |0 |
-ROW |2271 |23 | |0 |0 |
-ROW |2272 |24 | |0 |0 |
-ROW |2273 |53 | |0 |0 |
-ROW |2274 |48 | |0 |0 |
-ROW |2275 |49 | |0 |0 |
-ROW |2276 |18 | |0 |0 |
-ROW |2277 |56 | |0 |0 |
-ROW |2278 |7 | |0 |0 |
-ROW |2279 |29 | |0 |0 |
-ROW |2280 |54 | |0 |0 |
-ROW |2281 |27 | |0 |0 |
-ROW |2282 |26 | |0 |0 |
-ROW |2283 |16 | |0 |0 |
-ROW |2284 |14 | |0 |0 |
-ROW |2285 |21 | |0 |0 |
-ROW |2286 |19 | |0 |0 |
-ROW |2287 |61 | |0 |0 |
-ROW |2288 |62 | |0 |0 |
-ROW |2289 |63 | |0 |0 |
-ROW |2290 |64 | |0 |0 |
-ROW |2291 |65 | |0 |0 |
-ROW |2292 |66 | |0 |0 |
-ROW |2293 |67 | |0 |0 |
-ROW |2294 |68 | |0 |0 |
-ROW |2295 |69 | |0 |0 |
-ROW |2296 |70 | |0 |0 |
-ROW |2297 |71 | |0 |0 |
-ROW |2298 |72 | |0 |0 |
-ROW |2299 |73 | |0 |0 |
-ROW |2300 |74 | |0 |0 |
-ROW |2301 |75 | |0 |0 |
-ROW |2302 |76 | |0 |0 |
-ROW |2303 |77 | |0 |0 |
-ROW |2304 |78 | |0 |0 |
-ROW |2305 |79 | |0 |0 |
-ROW |2306 |80 | |0 |0 |
-ROW |2307 |81 | |0 |0 |
-ROW |2308 |82 | |0 |0 |
-ROW |2309 |83 | |0 |0 |
-ROW |2310 |84 | |0 |0 |
-ROW |2311 |85 | |0 |0 |
-ROW |2312 |86 | |0 |0 |
-ROW |2313 |87 | |0 |0 |
-ROW |2314 |88 | |0 |0 |
-ROW |2315 |89 | |0 |0 |
-ROW |2316 |90 | |0 |0 |
-ROW |2317 |91 | |0 |0 |
-ROW |2318 |92 | |0 |0 |
-ROW |2319 |93 | |0 |0 |
-ROW |2320 |94 | |0 |0 |
-ROW |2321 |95 | |0 |0 |
-ROW |2322 |96 | |0 |0 |
-ROW |2323 |97 | |0 |0 |
-ROW |2324 |98 | |0 |0 |
-ROW |2325 |99 | |0 |0 |
-ROW |2326 |100 | |0 |0 |
-ROW |2327 |101 | |0 |0 |
-ROW |2328 |102 | |0 |0 |
-ROW |2329 |103 | |0 |0 |
-ROW |2330 |104 | |0 |0 |
-ROW |2331 |105 | |0 |0 |
-ROW |2332 |106 | |0 |0 |
-ROW |2333 |107 | |0 |0 |
-ROW |2334 |108 | |0 |0 |
-ROW |2335 |109 | |0 |0 |
-ROW |2336 |110 | |0 |0 |
-ROW |2337 |111 | |0 |0 |
-ROW |2338 |112 | |0 |0 |
-ROW |2339 |113 | |0 |0 |
-ROW |2340 |114 | |0 |0 |
-ROW |2341 |115 | |0 |0 |
-ROW |2342 |116 | |0 |0 |
-ROW |2343 |117 | |0 |0 |
-ROW |2344 |118 | |0 |0 |
-ROW |2345 |119 | |0 |0 |
-ROW |2346 |120 | |0 |0 |
-ROW |2347 |121 | |0 |0 |
-ROW |2348 |122 | |0 |0 |
-ROW |2349 |123 | |0 |0 |
-ROW |2350 |124 | |0 |0 |
-ROW |2351 |125 | |0 |0 |
-ROW |2352 |126 | |0 |0 |
-ROW |2353 |127 | |0 |0 |
-ROW |2354 |128 | |0 |0 |
-ROW |2355 |129 | |0 |0 |
-ROW |2356 |130 | |0 |0 |
-ROW |2357 |131 | |0 |0 |
-ROW |2358 |132 | |0 |0 |
-ROW |2359 |133 | |0 |0 |
-ROW |2360 |134 | |0 |0 |
-ROW |2361 |135 | |0 |0 |
-ROW |2362 |136 | |0 |0 |
-ROW |2363 |137 | |0 |0 |
-ROW |2364 |138 | |0 |0 |
-ROW |2365 |139 | |0 |0 |
-ROW |2366 |50 | |0 |0 |
-ROW |2367 |51 | |0 |0 |
-ROW |2368 |52 | |0 |0 |
-ROW |2369 |140 | |0 |0 |
-ROW |2370 |17 | |0 |0 |
-ROW |2371 |141 | |0 |0 |
-ROW |2372 |15 | |0 |0 |
-ROW |2373 |10 | |0 |0 |
-ROW |2374 |11 | |0 |0 |
-ROW |2375 |142 | |0 |0 |
-ROW |2376 |55 | |0 |0 |
-ROW |2377 |31 | |0 |0 |
-ROW |2378 |32 | |0 |0 |
-ROW |2379 |33 | |0 |0 |
-ROW |2380 |143 | |0 |0 |
-ROW |2381 |22 | |0 |0 |
-ROW |2382 |144 | |0 |0 |
-ROW |2383 |20 | |0 |0 |
-ROW |2384 |145 | |0 |0 |
-ROW |2385 |146 | |0 |0 |
-ROW |2386 |147 | |0 |0 |
-ROW |2387 |148 | |0 |0 |
-ROW |2388 |149 | |0 |0 |
-ROW |2389 |150 | |0 |0 |
-ROW |2390 |151 | |0 |0 |
-ROW |2391 |152 | |0 |0 |
-ROW |2392 |153 | |0 |0 |
-ROW |2393 |154 | |0 |0 |
-ROW |2394 |155 | |0 |0 |
-ROW |2395 |156 | |0 |0 |
-ROW |2396 |157 | |0 |0 |
-ROW |2397 |158 | |0 |0 |
+ROW |2398 |4 | |0 |0 |
+ROW |2399 |3 | |0 |0 |
+ROW |2400 |58 | |0 |0 |
+ROW |2401 |5 | |0 |0 |
+ROW |2402 |43 | |0 |0 |
+ROW |2403 |44 | |0 |0 |
+ROW |2404 |45 | |0 |0 |
+ROW |2405 |40 | |0 |0 |
+ROW |2406 |41 | |0 |0 |
+ROW |2407 |42 | |0 |0 |
+ROW |2408 |28 | |0 |0 |
+ROW |2409 |30 | |0 |0 |
+ROW |2410 |8 | |0 |0 |
+ROW |2411 |9 | |0 |0 |
+ROW |2412 |12 | |0 |0 |
+ROW |2413 |13 | |0 |0 |
+ROW |2414 |37 | |0 |0 |
+ROW |2415 |39 | |0 |0 |
+ROW |2416 |36 | |0 |0 |
+ROW |2417 |59 | |0 |0 |
+ROW |2418 |38 | |0 |0 |
+ROW |2419 |60 | |0 |0 |
+ROW |2420 |159 | |0 |0 |
+ROW |2421 |160 | |0 |0 |
+ROW |2422 |161 | |0 |0 |
+ROW |2423 |162 | |0 |0 |
+ROW |2424 |163 | |0 |0 |
+ROW |2425 |164 | |0 |0 |
+ROW |2426 |23 | |0 |0 |
+ROW |2427 |24 | |0 |0 |
+ROW |2428 |53 | |0 |0 |
+ROW |2429 |48 | |0 |0 |
+ROW |2430 |49 | |0 |0 |
+ROW |2431 |18 | |0 |0 |
+ROW |2432 |56 | |0 |0 |
+ROW |2433 |7 | |0 |0 |
+ROW |2434 |29 | |0 |0 |
+ROW |2435 |54 | |0 |0 |
+ROW |2436 |27 | |0 |0 |
+ROW |2437 |26 | |0 |0 |
+ROW |2438 |16 | |0 |0 |
+ROW |2439 |14 | |0 |0 |
+ROW |2440 |21 | |0 |0 |
+ROW |2441 |19 | |0 |0 |
+ROW |2442 |61 | |0 |0 |
+ROW |2443 |62 | |0 |0 |
+ROW |2444 |63 | |0 |0 |
+ROW |2445 |64 | |0 |0 |
+ROW |2446 |65 | |0 |0 |
+ROW |2447 |66 | |0 |0 |
+ROW |2448 |67 | |0 |0 |
+ROW |2449 |68 | |0 |0 |
+ROW |2450 |69 | |0 |0 |
+ROW |2451 |70 | |0 |0 |
+ROW |2452 |71 | |0 |0 |
+ROW |2453 |72 | |0 |0 |
+ROW |2454 |73 | |0 |0 |
+ROW |2455 |74 | |0 |0 |
+ROW |2456 |75 | |0 |0 |
+ROW |2457 |76 | |0 |0 |
+ROW |2458 |77 | |0 |0 |
+ROW |2459 |78 | |0 |0 |
+ROW |2460 |79 | |0 |0 |
+ROW |2461 |80 | |0 |0 |
+ROW |2462 |81 | |0 |0 |
+ROW |2463 |82 | |0 |0 |
+ROW |2464 |83 | |0 |0 |
+ROW |2465 |84 | |0 |0 |
+ROW |2466 |85 | |0 |0 |
+ROW |2467 |86 | |0 |0 |
+ROW |2468 |87 | |0 |0 |
+ROW |2469 |88 | |0 |0 |
+ROW |2470 |89 | |0 |0 |
+ROW |2471 |90 | |0 |0 |
+ROW |2472 |91 | |0 |0 |
+ROW |2473 |92 | |0 |0 |
+ROW |2474 |93 | |0 |0 |
+ROW |2475 |94 | |0 |0 |
+ROW |2476 |95 | |0 |0 |
+ROW |2477 |96 | |0 |0 |
+ROW |2478 |97 | |0 |0 |
+ROW |2479 |98 | |0 |0 |
+ROW |2480 |99 | |0 |0 |
+ROW |2481 |100 | |0 |0 |
+ROW |2482 |101 | |0 |0 |
+ROW |2483 |102 | |0 |0 |
+ROW |2484 |103 | |0 |0 |
+ROW |2485 |104 | |0 |0 |
+ROW |2486 |105 | |0 |0 |
+ROW |2487 |106 | |0 |0 |
+ROW |2488 |107 | |0 |0 |
+ROW |2489 |108 | |0 |0 |
+ROW |2490 |109 | |0 |0 |
+ROW |2491 |110 | |0 |0 |
+ROW |2492 |111 | |0 |0 |
+ROW |2493 |112 | |0 |0 |
+ROW |2494 |113 | |0 |0 |
+ROW |2495 |114 | |0 |0 |
+ROW |2496 |115 | |0 |0 |
+ROW |2497 |116 | |0 |0 |
+ROW |2498 |117 | |0 |0 |
+ROW |2499 |118 | |0 |0 |
+ROW |2500 |119 | |0 |0 |
+ROW |2501 |120 | |0 |0 |
+ROW |2502 |121 | |0 |0 |
+ROW |2503 |122 | |0 |0 |
+ROW |2504 |123 | |0 |0 |
+ROW |2505 |124 | |0 |0 |
+ROW |2506 |125 | |0 |0 |
+ROW |2507 |126 | |0 |0 |
+ROW |2508 |127 | |0 |0 |
+ROW |2509 |128 | |0 |0 |
+ROW |2510 |129 | |0 |0 |
+ROW |2511 |130 | |0 |0 |
+ROW |2512 |131 | |0 |0 |
+ROW |2513 |132 | |0 |0 |
+ROW |2514 |133 | |0 |0 |
+ROW |2515 |134 | |0 |0 |
+ROW |2516 |135 | |0 |0 |
+ROW |2517 |136 | |0 |0 |
+ROW |2518 |137 | |0 |0 |
+ROW |2519 |138 | |0 |0 |
+ROW |2520 |139 | |0 |0 |
+ROW |2521 |50 | |0 |0 |
+ROW |2522 |51 | |0 |0 |
+ROW |2523 |52 | |0 |0 |
+ROW |2524 |140 | |0 |0 |
+ROW |2525 |17 | |0 |0 |
+ROW |2526 |141 | |0 |0 |
+ROW |2527 |15 | |0 |0 |
+ROW |2528 |10 | |0 |0 |
+ROW |2529 |11 | |0 |0 |
+ROW |2530 |142 | |0 |0 |
+ROW |2531 |55 | |0 |0 |
+ROW |2532 |31 | |0 |0 |
+ROW |2533 |32 | |0 |0 |
+ROW |2534 |33 | |0 |0 |
+ROW |2535 |143 | |0 |0 |
+ROW |2536 |22 | |0 |0 |
+ROW |2537 |144 | |0 |0 |
+ROW |2538 |20 | |0 |0 |
+ROW |2539 |145 | |0 |0 |
+ROW |2540 |146 | |0 |0 |
+ROW |2541 |147 | |0 |0 |
+ROW |2542 |148 | |0 |0 |
+ROW |2543 |149 | |0 |0 |
+ROW |2544 |150 | |0 |0 |
+ROW |2545 |151 | |0 |0 |
+ROW |2546 |152 | |0 |0 |
+ROW |2547 |153 | |0 |0 |
+ROW |2548 |154 | |0 |0 |
+ROW |2549 |155 | |0 |0 |
+ROW |2550 |156 | |0 |0 |
+ROW |2551 |157 | |0 |0 |
+ROW |2552 |158 | |0 |0 |
TABLE |widget
FIELDS|widgetid|type |name |x |y |width|height|view_mode|dashboard_pageid|
@@ -361,474 +361,474 @@ ROW |13 |svggraph |Cache usage |0 |9 |8
ROW |14 |svggraph |Value cache effectiveness |8 |9 |8 |5 |0 |2 |
ROW |15 |svggraph |Queue size |16 |9 |8 |5 |0 |2 |
ROW |400 |map | |0 |0 |24 |4 |0 |57 |
-ROW |6245 |graph | |0 |0 |12 |5 |0 |2243 |
-ROW |6246 |graph | |12 |0 |12 |5 |0 |2243 |
-ROW |6247 |graphprototype| |0 |5 |12 |5 |0 |2243 |
-ROW |6248 |graphprototype| |12 |5 |12 |5 |0 |2243 |
-ROW |6249 |graph | |0 |10 |12 |5 |0 |2243 |
-ROW |6250 |graph | |0 |0 |12 |5 |0 |2244 |
-ROW |6251 |graph | |12 |0 |12 |5 |0 |2244 |
-ROW |6252 |graphprototype| |0 |5 |12 |5 |0 |2244 |
-ROW |6253 |graphprototype| |12 |5 |12 |5 |0 |2244 |
-ROW |6254 |graph | |0 |10 |12 |5 |0 |2244 |
-ROW |6255 |graph | |0 |0 |12 |5 |0 |2245 |
-ROW |6256 |graph | |12 |0 |12 |5 |0 |2245 |
-ROW |6257 |graph | |0 |5 |12 |5 |0 |2245 |
-ROW |6258 |graph | |12 |5 |12 |5 |0 |2245 |
-ROW |6259 |graph | |0 |10 |12 |5 |0 |2245 |
-ROW |6260 |graph | |12 |10 |12 |5 |0 |2245 |
-ROW |6261 |graph | |0 |15 |12 |5 |0 |2245 |
-ROW |6262 |graph | |0 |0 |12 |5 |0 |2246 |
-ROW |6263 |graph | |12 |0 |12 |5 |0 |2246 |
-ROW |6264 |graph | |0 |5 |12 |5 |0 |2246 |
-ROW |6265 |graph | |12 |5 |12 |5 |0 |2246 |
-ROW |6266 |graph | |0 |10 |12 |5 |0 |2246 |
-ROW |6267 |graphprototype| |0 |0 |24 |5 |0 |2247 |
-ROW |6268 |graphprototype| |0 |5 |24 |5 |0 |2247 |
-ROW |6269 |graphprototype| |0 |10 |24 |5 |0 |2247 |
-ROW |6270 |graphprototype| |0 |0 |24 |5 |0 |2248 |
-ROW |6271 |graphprototype| |0 |5 |24 |5 |0 |2248 |
-ROW |6272 |graphprototype| |0 |10 |24 |5 |0 |2248 |
-ROW |6273 |graphprototype| |0 |15 |24 |5 |0 |2248 |
-ROW |6274 |graphprototype| |0 |0 |24 |5 |0 |2249 |
-ROW |6275 |graphprototype| |0 |5 |24 |5 |0 |2249 |
-ROW |6276 |graphprototype| |0 |10 |24 |5 |0 |2249 |
-ROW |6277 |graphprototype| |0 |0 |24 |5 |0 |2250 |
-ROW |6278 |graphprototype| |0 |5 |24 |5 |0 |2250 |
-ROW |6279 |graphprototype| |0 |10 |24 |5 |0 |2250 |
-ROW |6280 |graphprototype| |0 |0 |24 |5 |0 |2251 |
-ROW |6281 |graphprototype| |0 |5 |24 |5 |0 |2251 |
-ROW |6282 |graphprototype| |0 |10 |24 |5 |0 |2251 |
-ROW |6283 |graphprototype| |0 |15 |24 |5 |0 |2251 |
-ROW |6284 |graphprototype| |0 |0 |24 |5 |0 |2252 |
-ROW |6285 |graphprototype| |0 |5 |24 |5 |0 |2252 |
-ROW |6286 |graphprototype| |0 |10 |24 |5 |0 |2252 |
-ROW |6287 |graph | |0 |0 |12 |5 |0 |2253 |
-ROW |6288 |graph | |12 |0 |12 |5 |0 |2253 |
-ROW |6289 |graph | |0 |5 |12 |5 |0 |2253 |
-ROW |6290 |graph | |0 |0 |12 |5 |0 |2254 |
-ROW |6291 |graph | |12 |0 |12 |5 |0 |2254 |
-ROW |6292 |graph | |0 |5 |12 |5 |0 |2254 |
-ROW |6293 |graph | |0 |0 |12 |5 |0 |2255 |
-ROW |6294 |graph | |12 |0 |12 |5 |0 |2255 |
-ROW |6295 |graph | |0 |5 |12 |5 |0 |2255 |
-ROW |6296 |graph | |12 |5 |12 |5 |0 |2255 |
-ROW |6297 |graph | |0 |10 |12 |5 |0 |2255 |
-ROW |6298 |graph | |0 |0 |12 |5 |0 |2256 |
-ROW |6299 |graph | |12 |0 |12 |5 |0 |2256 |
-ROW |6300 |graph | |0 |5 |12 |5 |0 |2256 |
-ROW |6301 |graph | |12 |5 |12 |5 |0 |2256 |
-ROW |6302 |graph | |0 |10 |12 |5 |0 |2256 |
-ROW |6303 |graph | |12 |10 |12 |5 |0 |2256 |
-ROW |6304 |graph | |0 |0 |12 |5 |0 |2257 |
-ROW |6305 |graph | |12 |0 |12 |5 |0 |2257 |
-ROW |6306 |graph | |0 |5 |12 |5 |0 |2257 |
-ROW |6307 |graph | |12 |5 |12 |5 |0 |2257 |
-ROW |6308 |graph | |0 |10 |12 |5 |0 |2257 |
-ROW |6309 |graph | |0 |0 |12 |5 |0 |2258 |
-ROW |6310 |graph | |12 |0 |12 |5 |0 |2258 |
-ROW |6311 |graph | |0 |5 |12 |5 |0 |2258 |
-ROW |6312 |graph | |12 |5 |12 |5 |0 |2258 |
-ROW |6313 |graph | |0 |10 |12 |5 |0 |2258 |
-ROW |6314 |graph | |12 |10 |12 |5 |0 |2258 |
-ROW |6315 |graph | |0 |0 |12 |5 |0 |2259 |
-ROW |6316 |graph | |12 |0 |12 |5 |0 |2259 |
-ROW |6317 |graph | |0 |5 |12 |5 |0 |2259 |
-ROW |6318 |graph | |12 |5 |12 |5 |0 |2259 |
-ROW |6319 |graph | |0 |0 |12 |5 |0 |2260 |
-ROW |6320 |graph | |12 |0 |12 |5 |0 |2260 |
-ROW |6321 |graph | |0 |5 |12 |5 |0 |2260 |
-ROW |6322 |graph | |12 |5 |12 |5 |0 |2260 |
-ROW |6323 |graph | |0 |0 |12 |5 |0 |2261 |
-ROW |6324 |graph | |12 |0 |12 |5 |0 |2261 |
-ROW |6325 |graph | |0 |5 |12 |5 |0 |2261 |
-ROW |6326 |graph | |12 |5 |12 |5 |0 |2261 |
-ROW |6327 |graph | |0 |10 |12 |5 |0 |2261 |
-ROW |6328 |graph | |12 |10 |12 |5 |0 |2261 |
-ROW |6329 |graph | |0 |0 |12 |5 |0 |2262 |
-ROW |6330 |graph | |12 |0 |12 |5 |0 |2262 |
-ROW |6331 |graph | |0 |5 |12 |5 |0 |2262 |
-ROW |6332 |graph | |12 |5 |12 |5 |0 |2262 |
-ROW |6333 |graph | |0 |0 |12 |5 |0 |2263 |
-ROW |6334 |graph | |12 |0 |12 |5 |0 |2263 |
-ROW |6335 |graph | |0 |5 |12 |5 |0 |2263 |
-ROW |6336 |graph | |12 |5 |12 |5 |0 |2263 |
-ROW |6337 |graph | |0 |10 |12 |5 |0 |2263 |
-ROW |6338 |graph | |12 |10 |12 |5 |0 |2263 |
-ROW |6339 |graph | |0 |0 |12 |5 |0 |2264 |
-ROW |6340 |graph | |12 |0 |12 |5 |0 |2264 |
-ROW |6341 |graph | |0 |5 |12 |5 |0 |2264 |
-ROW |6342 |graph | |12 |5 |12 |5 |0 |2264 |
-ROW |6343 |graph | |0 |0 |24 |5 |0 |2265 |
-ROW |6344 |graph | |0 |5 |24 |5 |0 |2265 |
-ROW |6345 |graphprototype| |0 |10 |24 |5 |0 |2265 |
-ROW |6346 |graph | |0 |15 |24 |5 |0 |2265 |
-ROW |6347 |graph | |0 |20 |24 |5 |0 |2265 |
-ROW |6348 |graph | |0 |25 |24 |5 |0 |2265 |
-ROW |6349 |graph | |0 |30 |24 |5 |0 |2265 |
-ROW |6350 |graphprototype| |0 |0 |24 |5 |0 |2266 |
-ROW |6351 |graphprototype| |0 |5 |24 |5 |0 |2266 |
-ROW |6352 |graphprototype| |0 |10 |24 |5 |0 |2266 |
-ROW |6353 |graphprototype| |0 |15 |24 |5 |0 |2266 |
-ROW |6354 |graph | |0 |0 |24 |5 |0 |2267 |
-ROW |6355 |graph | |0 |5 |24 |5 |0 |2267 |
-ROW |6356 |graph | |0 |10 |24 |5 |0 |2267 |
-ROW |6357 |graph | |0 |15 |24 |5 |0 |2267 |
-ROW |6358 |graph | |0 |20 |24 |5 |0 |2267 |
-ROW |6359 |graph | |0 |25 |24 |5 |0 |2267 |
-ROW |6360 |graph | |0 |30 |24 |5 |0 |2267 |
-ROW |6361 |graphprototype| |0 |0 |24 |5 |0 |2268 |
-ROW |6362 |graph | |0 |5 |24 |5 |0 |2268 |
-ROW |6363 |graphprototype| |0 |10 |24 |5 |0 |2268 |
-ROW |6364 |graphprototype| |0 |15 |24 |5 |0 |2268 |
-ROW |6365 |graph | |0 |0 |12 |5 |0 |2269 |
-ROW |6366 |graph | |12 |0 |12 |5 |0 |2269 |
-ROW |6367 |graph | |0 |5 |12 |5 |0 |2269 |
-ROW |6368 |graph | |12 |5 |12 |5 |0 |2269 |
-ROW |6369 |graph | |0 |10 |12 |5 |0 |2269 |
-ROW |6370 |graph | |12 |10 |12 |5 |0 |2269 |
-ROW |6371 |graph | |0 |15 |12 |5 |0 |2269 |
-ROW |6372 |graph | |12 |15 |12 |5 |0 |2269 |
-ROW |6373 |graph | |0 |20 |24 |5 |0 |2269 |
-ROW |6374 |graph | |0 |25 |12 |5 |0 |2269 |
-ROW |6375 |graph | |12 |25 |12 |5 |0 |2269 |
-ROW |6376 |graph | |0 |30 |24 |5 |0 |2269 |
-ROW |6377 |graphprototype| |0 |0 |12 |5 |0 |2270 |
-ROW |6378 |graphprototype| |12 |0 |12 |5 |0 |2270 |
-ROW |6379 |graphprototype| |0 |5 |12 |5 |0 |2270 |
-ROW |6380 |graphprototype| |12 |5 |12 |5 |0 |2270 |
-ROW |6381 |graph | |0 |10 |12 |5 |0 |2270 |
-ROW |6382 |graph | |12 |10 |12 |5 |0 |2270 |
-ROW |6383 |graph | |0 |0 |12 |5 |0 |2271 |
-ROW |6384 |graph | |12 |0 |12 |5 |0 |2271 |
-ROW |6385 |graph | |0 |5 |12 |5 |0 |2271 |
-ROW |6386 |graph | |12 |5 |12 |5 |0 |2271 |
-ROW |6387 |graph | |0 |10 |12 |5 |0 |2271 |
-ROW |6388 |graph | |12 |10 |12 |5 |0 |2271 |
-ROW |6389 |graph | |0 |0 |12 |5 |0 |2272 |
-ROW |6390 |graph | |12 |0 |12 |5 |0 |2272 |
-ROW |6391 |graph | |0 |5 |12 |5 |0 |2272 |
-ROW |6392 |graph | |12 |5 |12 |5 |0 |2272 |
-ROW |6393 |graph | |0 |10 |12 |5 |0 |2272 |
-ROW |6394 |graph | |12 |10 |12 |5 |0 |2272 |
-ROW |6395 |graph | |0 |0 |12 |5 |0 |2273 |
-ROW |6396 |graph | |12 |0 |12 |5 |0 |2273 |
-ROW |6397 |graph | |0 |5 |12 |5 |0 |2273 |
-ROW |6398 |graph | |12 |5 |12 |5 |0 |2273 |
-ROW |6399 |graph | |0 |10 |12 |5 |0 |2273 |
-ROW |6400 |graph | |12 |10 |12 |5 |0 |2273 |
-ROW |6401 |graphprototype| |0 |0 |12 |5 |0 |2274 |
-ROW |6402 |graphprototype| |12 |0 |12 |5 |0 |2274 |
-ROW |6403 |graphprototype| |0 |5 |12 |5 |0 |2274 |
-ROW |6404 |graphprototype| |12 |5 |12 |5 |0 |2274 |
-ROW |6405 |graphprototype| |0 |10 |12 |5 |0 |2274 |
-ROW |6406 |graphprototype| |12 |10 |12 |5 |0 |2274 |
-ROW |6407 |graphprototype| |0 |15 |12 |5 |0 |2274 |
-ROW |6408 |graphprototype| |12 |15 |12 |5 |0 |2274 |
-ROW |6409 |graph | |0 |0 |12 |5 |0 |2275 |
-ROW |6410 |graph | |12 |0 |12 |5 |0 |2275 |
-ROW |6411 |graph | |0 |5 |12 |5 |0 |2275 |
-ROW |6412 |graph | |12 |5 |12 |5 |0 |2275 |
-ROW |6413 |graph | |0 |10 |12 |5 |0 |2275 |
-ROW |6414 |graph | |12 |10 |12 |5 |0 |2275 |
-ROW |6415 |graph | |0 |15 |12 |5 |0 |2275 |
-ROW |6416 |graph | |12 |15 |12 |5 |0 |2275 |
-ROW |6417 |graphprototype| |0 |0 |12 |5 |0 |2276 |
-ROW |6418 |graphprototype| |12 |0 |12 |5 |0 |2276 |
-ROW |6419 |graphprototype| |0 |5 |12 |5 |0 |2276 |
-ROW |6420 |graphprototype| |12 |5 |12 |5 |0 |2276 |
-ROW |6421 |graphprototype| |0 |10 |12 |5 |0 |2276 |
-ROW |6422 |graphprototype| |12 |10 |12 |5 |0 |2276 |
-ROW |6423 |graph | |0 |0 |12 |5 |0 |2277 |
-ROW |6424 |graph | |12 |0 |12 |5 |0 |2277 |
-ROW |6425 |graph | |0 |5 |12 |5 |0 |2277 |
-ROW |6426 |graph | |12 |5 |12 |5 |0 |2277 |
-ROW |6427 |graph | |0 |10 |12 |5 |0 |2277 |
-ROW |6428 |graph | |12 |10 |12 |5 |0 |2277 |
-ROW |6429 |graph | |0 |15 |12 |5 |0 |2277 |
-ROW |6430 |graph | |12 |15 |12 |5 |0 |2277 |
-ROW |6431 |graphprototype| |0 |20 |12 |5 |0 |2277 |
-ROW |6432 |graph | |0 |0 |12 |5 |0 |2278 |
-ROW |6433 |graph | |12 |0 |12 |5 |0 |2278 |
-ROW |6434 |graph | |0 |5 |12 |5 |0 |2278 |
-ROW |6435 |graph | |12 |5 |12 |5 |0 |2278 |
-ROW |6436 |graph | |0 |0 |12 |5 |0 |2279 |
-ROW |6437 |graphprototype| |0 |5 |12 |5 |0 |2279 |
-ROW |6438 |graphprototype| |0 |10 |12 |5 |0 |2279 |
-ROW |6439 |graphprototype| |0 |0 |24 |5 |0 |2280 |
-ROW |6440 |graphprototype| |0 |0 |24 |5 |0 |2281 |
-ROW |6441 |graphprototype| |0 |0 |24 |5 |0 |2282 |
-ROW |6442 |graphprototype| |0 |0 |24 |5 |0 |2283 |
-ROW |6443 |graphprototype| |0 |0 |24 |5 |0 |2284 |
-ROW |6444 |graphprototype| |0 |0 |24 |5 |0 |2285 |
-ROW |6445 |graphprototype| |0 |0 |24 |5 |0 |2286 |
-ROW |6446 |graphprototype| |0 |0 |24 |5 |0 |2287 |
-ROW |6447 |graphprototype| |0 |0 |24 |5 |0 |2288 |
-ROW |6448 |graph | |0 |0 |12 |5 |0 |2289 |
-ROW |6449 |graphprototype| |0 |5 |12 |5 |0 |2289 |
-ROW |6450 |graphprototype| |0 |10 |12 |5 |0 |2289 |
-ROW |6451 |graphprototype| |0 |0 |24 |5 |0 |2290 |
-ROW |6452 |graphprototype| |0 |0 |24 |5 |0 |2291 |
-ROW |6453 |graphprototype| |0 |0 |24 |5 |0 |2292 |
-ROW |6454 |graphprototype| |0 |0 |24 |5 |0 |2293 |
-ROW |6455 |graphprototype| |0 |0 |24 |5 |0 |2294 |
-ROW |6456 |graphprototype| |0 |0 |24 |5 |0 |2295 |
-ROW |6457 |graphprototype| |0 |0 |24 |5 |0 |2296 |
-ROW |6458 |graphprototype| |0 |0 |24 |5 |0 |2297 |
-ROW |6459 |graphprototype| |0 |0 |24 |5 |0 |2298 |
-ROW |6460 |graphprototype| |0 |0 |24 |5 |0 |2299 |
-ROW |6461 |graphprototype| |0 |0 |24 |5 |0 |2300 |
-ROW |6462 |graphprototype| |0 |0 |24 |5 |0 |2301 |
-ROW |6463 |graphprototype| |0 |0 |24 |5 |0 |2302 |
-ROW |6464 |graphprototype| |0 |0 |24 |5 |0 |2303 |
-ROW |6465 |graphprototype| |0 |0 |24 |5 |0 |2304 |
-ROW |6466 |graphprototype| |0 |0 |24 |5 |0 |2305 |
-ROW |6467 |graph | |0 |0 |12 |5 |0 |2306 |
-ROW |6468 |graphprototype| |0 |5 |12 |5 |0 |2306 |
-ROW |6469 |graphprototype| |0 |10 |12 |5 |0 |2306 |
-ROW |6470 |graphprototype| |0 |0 |24 |5 |0 |2307 |
-ROW |6471 |graphprototype| |0 |0 |24 |5 |0 |2308 |
-ROW |6472 |graphprototype| |0 |0 |24 |5 |0 |2309 |
-ROW |6473 |graphprototype| |0 |0 |24 |5 |0 |2310 |
-ROW |6474 |graphprototype| |0 |0 |24 |5 |0 |2311 |
-ROW |6475 |graphprototype| |0 |0 |24 |5 |0 |2312 |
-ROW |6476 |graphprototype| |0 |0 |24 |5 |0 |2313 |
-ROW |6477 |graphprototype| |0 |0 |24 |5 |0 |2314 |
-ROW |6478 |graphprototype| |0 |0 |24 |5 |0 |2315 |
-ROW |6479 |graphprototype| |0 |0 |24 |5 |0 |2316 |
-ROW |6480 |graphprototype| |0 |0 |24 |5 |0 |2317 |
-ROW |6481 |graphprototype| |0 |0 |24 |5 |0 |2318 |
-ROW |6482 |graphprototype| |0 |0 |24 |5 |0 |2319 |
-ROW |6483 |graphprototype| |0 |0 |24 |5 |0 |2320 |
-ROW |6484 |graphprototype| |0 |0 |24 |5 |0 |2321 |
-ROW |6485 |graphprototype| |0 |0 |24 |5 |0 |2322 |
-ROW |6486 |graphprototype| |0 |0 |24 |5 |0 |2323 |
-ROW |6487 |graphprototype| |0 |0 |24 |5 |0 |2324 |
-ROW |6488 |graphprototype| |0 |0 |24 |5 |0 |2325 |
-ROW |6489 |graphprototype| |0 |0 |24 |5 |0 |2326 |
-ROW |6490 |graphprototype| |0 |0 |24 |5 |0 |2327 |
-ROW |6491 |graphprototype| |0 |0 |24 |5 |0 |2328 |
-ROW |6492 |graphprototype| |0 |0 |24 |5 |0 |2329 |
-ROW |6493 |graphprototype| |0 |0 |24 |5 |0 |2330 |
-ROW |6494 |graphprototype| |0 |0 |24 |5 |0 |2331 |
-ROW |6495 |graphprototype| |0 |0 |24 |5 |0 |2332 |
-ROW |6496 |graphprototype| |0 |0 |24 |5 |0 |2333 |
-ROW |6497 |graphprototype| |0 |0 |24 |5 |0 |2334 |
-ROW |6498 |graphprototype| |0 |0 |24 |5 |0 |2335 |
-ROW |6499 |graphprototype| |0 |0 |24 |5 |0 |2336 |
-ROW |6500 |graphprototype| |0 |0 |24 |5 |0 |2337 |
-ROW |6501 |graphprototype| |0 |0 |24 |5 |0 |2338 |
-ROW |6502 |graphprototype| |0 |0 |24 |5 |0 |2339 |
-ROW |6503 |graphprototype| |0 |0 |24 |5 |0 |2340 |
-ROW |6504 |graphprototype| |0 |0 |24 |5 |0 |2341 |
-ROW |6505 |graphprototype| |0 |0 |24 |5 |0 |2342 |
-ROW |6506 |graphprototype| |0 |0 |24 |5 |0 |2343 |
-ROW |6507 |graphprototype| |0 |0 |24 |5 |0 |2344 |
-ROW |6508 |graphprototype| |0 |0 |24 |5 |0 |2345 |
-ROW |6509 |graphprototype| |0 |0 |24 |5 |0 |2346 |
-ROW |6510 |graphprototype| |0 |0 |24 |5 |0 |2347 |
-ROW |6511 |graphprototype| |0 |0 |24 |5 |0 |2348 |
-ROW |6512 |graphprototype| |0 |0 |24 |5 |0 |2349 |
-ROW |6513 |graphprototype| |0 |0 |24 |5 |0 |2350 |
-ROW |6514 |graphprototype| |0 |0 |24 |5 |0 |2351 |
-ROW |6515 |graphprototype| |0 |0 |24 |5 |0 |2352 |
-ROW |6516 |graphprototype| |0 |0 |24 |5 |0 |2353 |
-ROW |6517 |graphprototype| |0 |0 |24 |5 |0 |2354 |
-ROW |6518 |graphprototype| |0 |0 |24 |5 |0 |2355 |
-ROW |6519 |graphprototype| |0 |0 |24 |5 |0 |2356 |
-ROW |6520 |graphprototype| |0 |0 |24 |5 |0 |2357 |
-ROW |6521 |graphprototype| |0 |0 |24 |5 |0 |2358 |
-ROW |6522 |graphprototype| |0 |0 |24 |5 |0 |2359 |
-ROW |6523 |graphprototype| |0 |0 |24 |5 |0 |2360 |
-ROW |6524 |graphprototype| |0 |0 |24 |5 |0 |2361 |
-ROW |6525 |graphprototype| |0 |0 |24 |5 |0 |2362 |
-ROW |6526 |graphprototype| |0 |0 |24 |5 |0 |2363 |
-ROW |6527 |graphprototype| |0 |0 |24 |5 |0 |2364 |
-ROW |6528 |graphprototype| |0 |0 |24 |5 |0 |2365 |
-ROW |6529 |graph | |0 |0 |12 |5 |0 |2366 |
-ROW |6530 |graph | |12 |0 |12 |5 |0 |2366 |
-ROW |6531 |graph | |0 |5 |12 |5 |0 |2366 |
-ROW |6532 |graph | |12 |5 |12 |5 |0 |2366 |
-ROW |6533 |graph | |0 |0 |12 |5 |0 |2367 |
-ROW |6534 |graph | |12 |0 |12 |5 |0 |2367 |
-ROW |6535 |graph | |0 |5 |12 |5 |0 |2367 |
-ROW |6536 |graph | |12 |5 |12 |5 |0 |2367 |
-ROW |6537 |graph | |0 |0 |12 |5 |0 |2368 |
-ROW |6538 |graph | |12 |0 |12 |5 |0 |2368 |
-ROW |6539 |graph | |0 |5 |12 |5 |0 |2368 |
-ROW |6540 |graphprototype| |0 |0 |24 |5 |0 |2369 |
-ROW |6541 |graph | |0 |0 |12 |5 |0 |2370 |
-ROW |6542 |graph | |12 |0 |12 |5 |0 |2370 |
-ROW |6543 |graph | |0 |5 |12 |5 |0 |2370 |
-ROW |6544 |graph | |12 |5 |12 |5 |0 |2370 |
-ROW |6545 |graphprototype| |0 |10 |24 |5 |0 |2370 |
-ROW |6546 |graphprototype| |0 |15 |24 |5 |0 |2370 |
-ROW |6547 |graphprototype| |0 |20 |24 |5 |0 |2370 |
-ROW |6548 |graphprototype| |0 |25 |24 |5 |0 |2370 |
-ROW |6549 |graphprototype| |0 |30 |24 |5 |0 |2370 |
-ROW |6550 |graphprototype| |0 |0 |24 |5 |0 |2371 |
-ROW |6551 |graph | |0 |0 |12 |5 |0 |2372 |
-ROW |6552 |graph | |12 |0 |12 |5 |0 |2372 |
-ROW |6553 |graph | |0 |5 |12 |5 |0 |2372 |
-ROW |6554 |graph | |12 |5 |12 |5 |0 |2372 |
-ROW |6555 |graphprototype| |0 |10 |24 |5 |0 |2372 |
-ROW |6556 |graphprototype| |0 |15 |24 |5 |0 |2372 |
-ROW |6557 |graphprototype| |0 |20 |24 |5 |0 |2372 |
-ROW |6558 |graphprototype| |0 |25 |24 |5 |0 |2372 |
-ROW |6559 |graphprototype| |0 |30 |24 |5 |0 |2372 |
-ROW |6560 |graphprototype| |0 |0 |24 |5 |0 |2373 |
-ROW |6561 |graph | |0 |0 |12 |5 |0 |2374 |
-ROW |6562 |graph | |12 |0 |12 |5 |0 |2374 |
-ROW |6563 |graph | |0 |5 |12 |5 |0 |2374 |
-ROW |6564 |graph | |12 |5 |12 |5 |0 |2374 |
-ROW |6565 |graphprototype| |0 |10 |24 |5 |0 |2374 |
-ROW |6566 |graphprototype| |0 |15 |24 |5 |0 |2374 |
-ROW |6567 |graphprototype| |0 |20 |24 |5 |0 |2374 |
-ROW |6568 |graphprototype| |0 |25 |24 |5 |0 |2374 |
-ROW |6569 |graphprototype| |0 |30 |24 |5 |0 |2374 |
-ROW |6570 |graphprototype| |0 |0 |24 |5 |0 |2375 |
-ROW |6571 |graph | |0 |0 |12 |5 |0 |2376 |
-ROW |6572 |graphprototype| |12 |0 |12 |5 |0 |2376 |
-ROW |6573 |graph | |0 |5 |12 |5 |0 |2376 |
-ROW |6574 |graph | |12 |5 |12 |5 |0 |2376 |
-ROW |6575 |graphprototype| |0 |10 |24 |5 |0 |2376 |
-ROW |6576 |graphprototype| |0 |15 |24 |5 |0 |2376 |
-ROW |6577 |graphprototype| |0 |20 |24 |5 |0 |2376 |
-ROW |6578 |graphprototype| |0 |25 |24 |5 |0 |2376 |
-ROW |6579 |graph | |0 |0 |24 |5 |0 |2377 |
-ROW |6580 |graph | |0 |5 |24 |5 |0 |2377 |
-ROW |6581 |graph | |0 |0 |12 |5 |0 |2378 |
-ROW |6582 |graph | |12 |0 |12 |5 |0 |2378 |
-ROW |6583 |graph | |0 |5 |12 |5 |0 |2378 |
-ROW |6584 |graph | |12 |5 |12 |5 |0 |2378 |
-ROW |6585 |graph | |0 |0 |12 |5 |0 |2379 |
-ROW |6586 |graph | |12 |0 |12 |5 |0 |2379 |
-ROW |6587 |graph | |0 |5 |12 |5 |0 |2379 |
-ROW |6588 |graph | |12 |5 |12 |5 |0 |2379 |
-ROW |6589 |graph | |0 |10 |12 |5 |0 |2379 |
-ROW |6590 |graph | |12 |10 |12 |5 |0 |2379 |
-ROW |6591 |graphprototype| |0 |0 |24 |5 |0 |2380 |
-ROW |6592 |graph | |0 |0 |12 |5 |0 |2381 |
-ROW |6593 |graph | |12 |0 |12 |5 |0 |2381 |
-ROW |6594 |graph | |0 |5 |12 |5 |0 |2381 |
-ROW |6595 |graph | |12 |5 |12 |5 |0 |2381 |
-ROW |6596 |graphprototype| |0 |10 |24 |5 |0 |2381 |
-ROW |6597 |graphprototype| |0 |15 |24 |5 |0 |2381 |
-ROW |6598 |graphprototype| |0 |20 |24 |5 |0 |2381 |
-ROW |6599 |graphprototype| |0 |25 |24 |5 |0 |2381 |
-ROW |6600 |graphprototype| |0 |0 |24 |5 |0 |2382 |
-ROW |6601 |graph | |0 |0 |12 |5 |0 |2383 |
-ROW |6602 |graph | |12 |0 |12 |5 |0 |2383 |
-ROW |6603 |graph | |0 |5 |12 |5 |0 |2383 |
-ROW |6604 |graph | |12 |5 |12 |5 |0 |2383 |
-ROW |6605 |graphprototype| |0 |10 |24 |5 |0 |2383 |
-ROW |6606 |graphprototype| |0 |15 |24 |5 |0 |2383 |
-ROW |6607 |graphprototype| |0 |20 |24 |5 |0 |2383 |
-ROW |6608 |graphprototype| |0 |25 |24 |5 |0 |2383 |
-ROW |6609 |graphprototype| |0 |0 |24 |5 |0 |2384 |
-ROW |6610 |graph | |0 |0 |12 |5 |0 |2385 |
-ROW |6611 |graphprototype| |0 |5 |12 |5 |0 |2385 |
-ROW |6612 |graphprototype| |0 |10 |12 |5 |0 |2385 |
-ROW |6613 |plaintext | |0 |0 |8 |2 |0 |2386 |
-ROW |6614 |plaintext | |8 |0 |8 |2 |0 |2386 |
-ROW |6615 |plaintext | |16 |0 |8 |2 |0 |2386 |
-ROW |6616 |plaintext | |0 |2 |8 |2 |0 |2386 |
-ROW |6617 |plaintext | |8 |2 |8 |2 |0 |2386 |
-ROW |6618 |plaintext | |16 |2 |8 |2 |0 |2386 |
-ROW |6619 |graph | |0 |4 |8 |7 |0 |2386 |
-ROW |6620 |graph | |8 |4 |8 |7 |0 |2386 |
-ROW |6621 |graph | |16 |4 |8 |7 |0 |2386 |
-ROW |6622 |plaintext | |0 |0 |8 |2 |0 |2387 |
-ROW |6623 |plaintext | |8 |0 |8 |2 |0 |2387 |
-ROW |6624 |plaintext | |16 |0 |8 |2 |0 |2387 |
-ROW |6625 |plaintext | |0 |2 |8 |2 |0 |2387 |
-ROW |6626 |plaintext | |8 |2 |8 |2 |0 |2387 |
-ROW |6627 |plaintext | |16 |2 |8 |2 |0 |2387 |
-ROW |6628 |graph | |0 |4 |8 |7 |0 |2387 |
-ROW |6629 |graph | |8 |4 |8 |7 |0 |2387 |
-ROW |6630 |graph | |16 |4 |8 |7 |0 |2387 |
-ROW |6631 |plaintext | |0 |0 |8 |2 |0 |2388 |
-ROW |6632 |plaintext | |8 |0 |8 |2 |0 |2388 |
-ROW |6633 |plaintext | |16 |0 |8 |2 |0 |2388 |
-ROW |6634 |plaintext | |0 |2 |8 |2 |0 |2388 |
-ROW |6635 |plaintext | |8 |2 |8 |2 |0 |2388 |
-ROW |6636 |plaintext | |16 |2 |8 |2 |0 |2388 |
-ROW |6637 |graph | |0 |4 |8 |7 |0 |2388 |
-ROW |6638 |graph | |8 |4 |8 |7 |0 |2388 |
-ROW |6639 |graph | |16 |4 |8 |7 |0 |2388 |
-ROW |6640 |plaintext | |0 |0 |8 |2 |0 |2389 |
-ROW |6641 |plaintext | |8 |0 |8 |2 |0 |2389 |
-ROW |6642 |plaintext | |16 |0 |8 |2 |0 |2389 |
-ROW |6643 |plaintext | |0 |2 |8 |2 |0 |2389 |
-ROW |6644 |plaintext | |8 |2 |8 |2 |0 |2389 |
-ROW |6645 |plaintext | |16 |2 |8 |2 |0 |2389 |
-ROW |6646 |graph | |0 |4 |8 |7 |0 |2389 |
-ROW |6647 |graph | |8 |4 |8 |7 |0 |2389 |
-ROW |6648 |graph | |16 |4 |8 |7 |0 |2389 |
-ROW |6649 |plaintext | |0 |0 |8 |2 |0 |2390 |
-ROW |6650 |plaintext | |8 |0 |8 |2 |0 |2390 |
-ROW |6651 |plaintext | |16 |0 |8 |2 |0 |2390 |
-ROW |6652 |plaintext | |0 |2 |8 |2 |0 |2390 |
-ROW |6653 |plaintext | |8 |2 |8 |2 |0 |2390 |
-ROW |6654 |plaintext | |16 |2 |8 |2 |0 |2390 |
-ROW |6655 |graph | |0 |4 |8 |7 |0 |2390 |
-ROW |6656 |graph | |8 |4 |8 |7 |0 |2390 |
-ROW |6657 |graph | |16 |4 |8 |7 |0 |2390 |
-ROW |6658 |plaintext | |0 |0 |8 |2 |0 |2391 |
-ROW |6659 |plaintext | |8 |0 |8 |2 |0 |2391 |
-ROW |6660 |plaintext | |16 |0 |8 |2 |0 |2391 |
-ROW |6661 |plaintext | |0 |2 |8 |2 |0 |2391 |
-ROW |6662 |plaintext | |8 |2 |8 |2 |0 |2391 |
-ROW |6663 |plaintext | |16 |2 |8 |2 |0 |2391 |
-ROW |6664 |graph | |0 |4 |8 |7 |0 |2391 |
-ROW |6665 |graph | |8 |4 |8 |7 |0 |2391 |
-ROW |6666 |graph | |16 |4 |8 |7 |0 |2391 |
-ROW |6667 |plaintext | |0 |0 |8 |2 |0 |2392 |
-ROW |6668 |plaintext | |8 |0 |8 |2 |0 |2392 |
-ROW |6669 |plaintext | |16 |0 |8 |2 |0 |2392 |
-ROW |6670 |plaintext | |0 |2 |8 |2 |0 |2392 |
-ROW |6671 |plaintext | |8 |2 |8 |2 |0 |2392 |
-ROW |6672 |plaintext | |16 |2 |8 |2 |0 |2392 |
-ROW |6673 |graph | |0 |4 |8 |7 |0 |2392 |
-ROW |6674 |graph | |8 |4 |8 |7 |0 |2392 |
-ROW |6675 |graph | |16 |4 |8 |7 |0 |2392 |
-ROW |6676 |plaintext | |0 |0 |8 |2 |0 |2393 |
-ROW |6677 |plaintext | |8 |0 |8 |2 |0 |2393 |
-ROW |6678 |plaintext | |16 |0 |8 |2 |0 |2393 |
-ROW |6679 |plaintext | |0 |2 |8 |2 |0 |2393 |
-ROW |6680 |plaintext | |8 |2 |8 |2 |0 |2393 |
-ROW |6681 |plaintext | |16 |2 |8 |2 |0 |2393 |
-ROW |6682 |graph | |0 |4 |8 |7 |0 |2393 |
-ROW |6683 |graph | |8 |4 |8 |7 |0 |2393 |
-ROW |6684 |graph | |16 |4 |8 |7 |0 |2393 |
-ROW |6685 |plaintext | |0 |0 |8 |2 |0 |2394 |
-ROW |6686 |plaintext | |8 |0 |8 |2 |0 |2394 |
-ROW |6687 |plaintext | |16 |0 |8 |2 |0 |2394 |
-ROW |6688 |plaintext | |0 |2 |8 |2 |0 |2394 |
-ROW |6689 |plaintext | |8 |2 |8 |2 |0 |2394 |
-ROW |6690 |plaintext | |16 |2 |8 |2 |0 |2394 |
-ROW |6691 |graph | |0 |4 |8 |7 |0 |2394 |
-ROW |6692 |graph | |8 |4 |8 |7 |0 |2394 |
-ROW |6693 |graph | |16 |4 |8 |7 |0 |2394 |
-ROW |6694 |plaintext | |0 |0 |8 |2 |0 |2395 |
-ROW |6695 |plaintext | |8 |0 |8 |2 |0 |2395 |
-ROW |6696 |plaintext | |16 |0 |8 |2 |0 |2395 |
-ROW |6697 |plaintext | |0 |2 |8 |2 |0 |2395 |
-ROW |6698 |plaintext | |8 |2 |8 |2 |0 |2395 |
-ROW |6699 |plaintext | |16 |2 |8 |2 |0 |2395 |
-ROW |6700 |graph | |0 |4 |8 |7 |0 |2395 |
-ROW |6701 |graph | |8 |4 |8 |7 |0 |2395 |
-ROW |6702 |graph | |16 |4 |8 |7 |0 |2395 |
-ROW |6703 |plaintext | |0 |0 |8 |2 |0 |2396 |
-ROW |6704 |plaintext | |8 |0 |8 |2 |0 |2396 |
-ROW |6705 |plaintext | |16 |0 |8 |2 |0 |2396 |
-ROW |6706 |plaintext | |0 |2 |8 |2 |0 |2396 |
-ROW |6707 |plaintext | |8 |2 |8 |2 |0 |2396 |
-ROW |6708 |plaintext | |16 |2 |8 |2 |0 |2396 |
-ROW |6709 |graph | |0 |4 |8 |7 |0 |2396 |
-ROW |6710 |graph | |8 |4 |8 |7 |0 |2396 |
-ROW |6711 |graph | |16 |4 |8 |7 |0 |2396 |
-ROW |6712 |graphprototype| |0 |0 |24 |5 |0 |2397 |
+ROW |6713 |graph | |0 |0 |12 |5 |0 |2398 |
+ROW |6714 |graph | |12 |0 |12 |5 |0 |2398 |
+ROW |6715 |graphprototype| |0 |5 |12 |5 |0 |2398 |
+ROW |6716 |graphprototype| |12 |5 |12 |5 |0 |2398 |
+ROW |6717 |graph | |0 |10 |12 |5 |0 |2398 |
+ROW |6718 |graph | |0 |0 |12 |5 |0 |2399 |
+ROW |6719 |graph | |12 |0 |12 |5 |0 |2399 |
+ROW |6720 |graphprototype| |0 |5 |12 |5 |0 |2399 |
+ROW |6721 |graphprototype| |12 |5 |12 |5 |0 |2399 |
+ROW |6722 |graph | |0 |10 |12 |5 |0 |2399 |
+ROW |6723 |graph | |0 |0 |12 |5 |0 |2400 |
+ROW |6724 |graph | |12 |0 |12 |5 |0 |2400 |
+ROW |6725 |graph | |0 |5 |12 |5 |0 |2400 |
+ROW |6726 |graph | |12 |5 |12 |5 |0 |2400 |
+ROW |6727 |graph | |0 |10 |12 |5 |0 |2400 |
+ROW |6728 |graph | |12 |10 |12 |5 |0 |2400 |
+ROW |6729 |graph | |0 |15 |12 |5 |0 |2400 |
+ROW |6730 |graph | |0 |0 |12 |5 |0 |2401 |
+ROW |6731 |graph | |12 |0 |12 |5 |0 |2401 |
+ROW |6732 |graph | |0 |5 |12 |5 |0 |2401 |
+ROW |6733 |graph | |12 |5 |12 |5 |0 |2401 |
+ROW |6734 |graph | |0 |10 |12 |5 |0 |2401 |
+ROW |6735 |graphprototype| |0 |0 |24 |5 |0 |2402 |
+ROW |6736 |graphprototype| |0 |5 |24 |5 |0 |2402 |
+ROW |6737 |graphprototype| |0 |10 |24 |5 |0 |2402 |
+ROW |6738 |graphprototype| |0 |0 |24 |5 |0 |2403 |
+ROW |6739 |graphprototype| |0 |5 |24 |5 |0 |2403 |
+ROW |6740 |graphprototype| |0 |10 |24 |5 |0 |2403 |
+ROW |6741 |graphprototype| |0 |15 |24 |5 |0 |2403 |
+ROW |6742 |graphprototype| |0 |0 |24 |5 |0 |2404 |
+ROW |6743 |graphprototype| |0 |5 |24 |5 |0 |2404 |
+ROW |6744 |graphprototype| |0 |10 |24 |5 |0 |2404 |
+ROW |6745 |graphprototype| |0 |0 |24 |5 |0 |2405 |
+ROW |6746 |graphprototype| |0 |5 |24 |5 |0 |2405 |
+ROW |6747 |graphprototype| |0 |10 |24 |5 |0 |2405 |
+ROW |6748 |graphprototype| |0 |0 |24 |5 |0 |2406 |
+ROW |6749 |graphprototype| |0 |5 |24 |5 |0 |2406 |
+ROW |6750 |graphprototype| |0 |10 |24 |5 |0 |2406 |
+ROW |6751 |graphprototype| |0 |15 |24 |5 |0 |2406 |
+ROW |6752 |graphprototype| |0 |0 |24 |5 |0 |2407 |
+ROW |6753 |graphprototype| |0 |5 |24 |5 |0 |2407 |
+ROW |6754 |graphprototype| |0 |10 |24 |5 |0 |2407 |
+ROW |6755 |graph | |0 |0 |12 |5 |0 |2408 |
+ROW |6756 |graph | |12 |0 |12 |5 |0 |2408 |
+ROW |6757 |graph | |0 |5 |12 |5 |0 |2408 |
+ROW |6758 |graph | |0 |0 |12 |5 |0 |2409 |
+ROW |6759 |graph | |12 |0 |12 |5 |0 |2409 |
+ROW |6760 |graph | |0 |5 |12 |5 |0 |2409 |
+ROW |6761 |graph | |0 |0 |12 |5 |0 |2410 |
+ROW |6762 |graph | |12 |0 |12 |5 |0 |2410 |
+ROW |6763 |graph | |0 |5 |12 |5 |0 |2410 |
+ROW |6764 |graph | |12 |5 |12 |5 |0 |2410 |
+ROW |6765 |graph | |0 |10 |12 |5 |0 |2410 |
+ROW |6766 |graph | |0 |0 |12 |5 |0 |2411 |
+ROW |6767 |graph | |12 |0 |12 |5 |0 |2411 |
+ROW |6768 |graph | |0 |5 |12 |5 |0 |2411 |
+ROW |6769 |graph | |12 |5 |12 |5 |0 |2411 |
+ROW |6770 |graph | |0 |10 |12 |5 |0 |2411 |
+ROW |6771 |graph | |12 |10 |12 |5 |0 |2411 |
+ROW |6772 |graph | |0 |0 |12 |5 |0 |2412 |
+ROW |6773 |graph | |12 |0 |12 |5 |0 |2412 |
+ROW |6774 |graph | |0 |5 |12 |5 |0 |2412 |
+ROW |6775 |graph | |12 |5 |12 |5 |0 |2412 |
+ROW |6776 |graph | |0 |10 |12 |5 |0 |2412 |
+ROW |6777 |graph | |0 |0 |12 |5 |0 |2413 |
+ROW |6778 |graph | |12 |0 |12 |5 |0 |2413 |
+ROW |6779 |graph | |0 |5 |12 |5 |0 |2413 |
+ROW |6780 |graph | |12 |5 |12 |5 |0 |2413 |
+ROW |6781 |graph | |0 |10 |12 |5 |0 |2413 |
+ROW |6782 |graph | |12 |10 |12 |5 |0 |2413 |
+ROW |6783 |graph | |0 |0 |12 |5 |0 |2414 |
+ROW |6784 |graph | |12 |0 |12 |5 |0 |2414 |
+ROW |6785 |graph | |0 |5 |12 |5 |0 |2414 |
+ROW |6786 |graph | |12 |5 |12 |5 |0 |2414 |
+ROW |6787 |graph | |0 |0 |12 |5 |0 |2415 |
+ROW |6788 |graph | |12 |0 |12 |5 |0 |2415 |
+ROW |6789 |graph | |0 |5 |12 |5 |0 |2415 |
+ROW |6790 |graph | |12 |5 |12 |5 |0 |2415 |
+ROW |6791 |graph | |0 |0 |12 |5 |0 |2416 |
+ROW |6792 |graph | |12 |0 |12 |5 |0 |2416 |
+ROW |6793 |graph | |0 |5 |12 |5 |0 |2416 |
+ROW |6794 |graph | |12 |5 |12 |5 |0 |2416 |
+ROW |6795 |graph | |0 |10 |12 |5 |0 |2416 |
+ROW |6796 |graph | |12 |10 |12 |5 |0 |2416 |
+ROW |6797 |graph | |0 |0 |12 |5 |0 |2417 |
+ROW |6798 |graph | |12 |0 |12 |5 |0 |2417 |
+ROW |6799 |graph | |0 |5 |12 |5 |0 |2417 |
+ROW |6800 |graph | |12 |5 |12 |5 |0 |2417 |
+ROW |6801 |graph | |0 |0 |12 |5 |0 |2418 |
+ROW |6802 |graph | |12 |0 |12 |5 |0 |2418 |
+ROW |6803 |graph | |0 |5 |12 |5 |0 |2418 |
+ROW |6804 |graph | |12 |5 |12 |5 |0 |2418 |
+ROW |6805 |graph | |0 |10 |12 |5 |0 |2418 |
+ROW |6806 |graph | |12 |10 |12 |5 |0 |2418 |
+ROW |6807 |graph | |0 |0 |12 |5 |0 |2419 |
+ROW |6808 |graph | |12 |0 |12 |5 |0 |2419 |
+ROW |6809 |graph | |0 |5 |12 |5 |0 |2419 |
+ROW |6810 |graph | |12 |5 |12 |5 |0 |2419 |
+ROW |6811 |graph | |0 |0 |24 |5 |0 |2420 |
+ROW |6812 |graph | |0 |5 |24 |5 |0 |2420 |
+ROW |6813 |graphprototype| |0 |10 |24 |5 |0 |2420 |
+ROW |6814 |graph | |0 |15 |24 |5 |0 |2420 |
+ROW |6815 |graph | |0 |20 |24 |5 |0 |2420 |
+ROW |6816 |graph | |0 |25 |24 |5 |0 |2420 |
+ROW |6817 |graph | |0 |30 |24 |5 |0 |2420 |
+ROW |6818 |graphprototype| |0 |0 |24 |5 |0 |2421 |
+ROW |6819 |graphprototype| |0 |5 |24 |5 |0 |2421 |
+ROW |6820 |graphprototype| |0 |10 |24 |5 |0 |2421 |
+ROW |6821 |graphprototype| |0 |15 |24 |5 |0 |2421 |
+ROW |6822 |graph | |0 |0 |24 |5 |0 |2422 |
+ROW |6823 |graph | |0 |5 |24 |5 |0 |2422 |
+ROW |6824 |graph | |0 |10 |24 |5 |0 |2422 |
+ROW |6825 |graph | |0 |15 |24 |5 |0 |2422 |
+ROW |6826 |graph | |0 |20 |24 |5 |0 |2422 |
+ROW |6827 |graph | |0 |25 |24 |5 |0 |2422 |
+ROW |6828 |graph | |0 |30 |24 |5 |0 |2422 |
+ROW |6829 |graphprototype| |0 |0 |24 |5 |0 |2423 |
+ROW |6830 |graph | |0 |5 |24 |5 |0 |2423 |
+ROW |6831 |graphprototype| |0 |10 |24 |5 |0 |2423 |
+ROW |6832 |graphprototype| |0 |15 |24 |5 |0 |2423 |
+ROW |6833 |graph | |0 |0 |12 |5 |0 |2424 |
+ROW |6834 |graph | |12 |0 |12 |5 |0 |2424 |
+ROW |6835 |graph | |0 |5 |12 |5 |0 |2424 |
+ROW |6836 |graph | |12 |5 |12 |5 |0 |2424 |
+ROW |6837 |graph | |0 |10 |12 |5 |0 |2424 |
+ROW |6838 |graph | |12 |10 |12 |5 |0 |2424 |
+ROW |6839 |graph | |0 |15 |12 |5 |0 |2424 |
+ROW |6840 |graph | |12 |15 |12 |5 |0 |2424 |
+ROW |6841 |graph | |0 |20 |24 |5 |0 |2424 |
+ROW |6842 |graph | |0 |25 |12 |5 |0 |2424 |
+ROW |6843 |graph | |12 |25 |12 |5 |0 |2424 |
+ROW |6844 |graph | |0 |30 |24 |5 |0 |2424 |
+ROW |6845 |graphprototype| |0 |0 |12 |5 |0 |2425 |
+ROW |6846 |graphprototype| |12 |0 |12 |5 |0 |2425 |
+ROW |6847 |graphprototype| |0 |5 |12 |5 |0 |2425 |
+ROW |6848 |graphprototype| |12 |5 |12 |5 |0 |2425 |
+ROW |6849 |graph | |0 |10 |12 |5 |0 |2425 |
+ROW |6850 |graph | |12 |10 |12 |5 |0 |2425 |
+ROW |6851 |graph | |0 |0 |12 |5 |0 |2426 |
+ROW |6852 |graph | |12 |0 |12 |5 |0 |2426 |
+ROW |6853 |graph | |0 |5 |12 |5 |0 |2426 |
+ROW |6854 |graph | |12 |5 |12 |5 |0 |2426 |
+ROW |6855 |graph | |0 |10 |12 |5 |0 |2426 |
+ROW |6856 |graph | |12 |10 |12 |5 |0 |2426 |
+ROW |6857 |graph | |0 |0 |12 |5 |0 |2427 |
+ROW |6858 |graph | |12 |0 |12 |5 |0 |2427 |
+ROW |6859 |graph | |0 |5 |12 |5 |0 |2427 |
+ROW |6860 |graph | |12 |5 |12 |5 |0 |2427 |
+ROW |6861 |graph | |0 |10 |12 |5 |0 |2427 |
+ROW |6862 |graph | |12 |10 |12 |5 |0 |2427 |
+ROW |6863 |graph | |0 |0 |12 |5 |0 |2428 |
+ROW |6864 |graph | |12 |0 |12 |5 |0 |2428 |
+ROW |6865 |graph | |0 |5 |12 |5 |0 |2428 |
+ROW |6866 |graph | |12 |5 |12 |5 |0 |2428 |
+ROW |6867 |graph | |0 |10 |12 |5 |0 |2428 |
+ROW |6868 |graph | |12 |10 |12 |5 |0 |2428 |
+ROW |6869 |graphprototype| |0 |0 |12 |5 |0 |2429 |
+ROW |6870 |graphprototype| |12 |0 |12 |5 |0 |2429 |
+ROW |6871 |graphprototype| |0 |5 |12 |5 |0 |2429 |
+ROW |6872 |graphprototype| |12 |5 |12 |5 |0 |2429 |
+ROW |6873 |graphprototype| |0 |10 |12 |5 |0 |2429 |
+ROW |6874 |graphprototype| |12 |10 |12 |5 |0 |2429 |
+ROW |6875 |graphprototype| |0 |15 |12 |5 |0 |2429 |
+ROW |6876 |graphprototype| |12 |15 |12 |5 |0 |2429 |
+ROW |6877 |graph | |0 |0 |12 |5 |0 |2430 |
+ROW |6878 |graph | |12 |0 |12 |5 |0 |2430 |
+ROW |6879 |graph | |0 |5 |12 |5 |0 |2430 |
+ROW |6880 |graph | |12 |5 |12 |5 |0 |2430 |
+ROW |6881 |graph | |0 |10 |12 |5 |0 |2430 |
+ROW |6882 |graph | |12 |10 |12 |5 |0 |2430 |
+ROW |6883 |graph | |0 |15 |12 |5 |0 |2430 |
+ROW |6884 |graph | |12 |15 |12 |5 |0 |2430 |
+ROW |6885 |graphprototype| |0 |0 |12 |5 |0 |2431 |
+ROW |6886 |graphprototype| |12 |0 |12 |5 |0 |2431 |
+ROW |6887 |graphprototype| |0 |5 |12 |5 |0 |2431 |
+ROW |6888 |graphprototype| |12 |5 |12 |5 |0 |2431 |
+ROW |6889 |graphprototype| |0 |10 |12 |5 |0 |2431 |
+ROW |6890 |graphprototype| |12 |10 |12 |5 |0 |2431 |
+ROW |6891 |graph | |0 |0 |12 |5 |0 |2432 |
+ROW |6892 |graph | |12 |0 |12 |5 |0 |2432 |
+ROW |6893 |graph | |0 |5 |12 |5 |0 |2432 |
+ROW |6894 |graph | |12 |5 |12 |5 |0 |2432 |
+ROW |6895 |graph | |0 |10 |12 |5 |0 |2432 |
+ROW |6896 |graph | |12 |10 |12 |5 |0 |2432 |
+ROW |6897 |graph | |0 |15 |12 |5 |0 |2432 |
+ROW |6898 |graph | |12 |15 |12 |5 |0 |2432 |
+ROW |6899 |graphprototype| |0 |20 |12 |5 |0 |2432 |
+ROW |6900 |graph | |0 |0 |12 |5 |0 |2433 |
+ROW |6901 |graph | |12 |0 |12 |5 |0 |2433 |
+ROW |6902 |graph | |0 |5 |12 |5 |0 |2433 |
+ROW |6903 |graph | |12 |5 |12 |5 |0 |2433 |
+ROW |6904 |graph | |0 |0 |12 |5 |0 |2434 |
+ROW |6905 |graphprototype| |0 |5 |12 |5 |0 |2434 |
+ROW |6906 |graphprototype| |0 |10 |12 |5 |0 |2434 |
+ROW |6907 |graphprototype| |0 |0 |24 |5 |0 |2435 |
+ROW |6908 |graphprototype| |0 |0 |24 |5 |0 |2436 |
+ROW |6909 |graphprototype| |0 |0 |24 |5 |0 |2437 |
+ROW |6910 |graphprototype| |0 |0 |24 |5 |0 |2438 |
+ROW |6911 |graphprototype| |0 |0 |24 |5 |0 |2439 |
+ROW |6912 |graphprototype| |0 |0 |24 |5 |0 |2440 |
+ROW |6913 |graphprototype| |0 |0 |24 |5 |0 |2441 |
+ROW |6914 |graphprototype| |0 |0 |24 |5 |0 |2442 |
+ROW |6915 |graphprototype| |0 |0 |24 |5 |0 |2443 |
+ROW |6916 |graph | |0 |0 |12 |5 |0 |2444 |
+ROW |6917 |graphprototype| |0 |5 |12 |5 |0 |2444 |
+ROW |6918 |graphprototype| |0 |10 |12 |5 |0 |2444 |
+ROW |6919 |graphprototype| |0 |0 |24 |5 |0 |2445 |
+ROW |6920 |graphprototype| |0 |0 |24 |5 |0 |2446 |
+ROW |6921 |graphprototype| |0 |0 |24 |5 |0 |2447 |
+ROW |6922 |graphprototype| |0 |0 |24 |5 |0 |2448 |
+ROW |6923 |graphprototype| |0 |0 |24 |5 |0 |2449 |
+ROW |6924 |graphprototype| |0 |0 |24 |5 |0 |2450 |
+ROW |6925 |graphprototype| |0 |0 |24 |5 |0 |2451 |
+ROW |6926 |graphprototype| |0 |0 |24 |5 |0 |2452 |
+ROW |6927 |graphprototype| |0 |0 |24 |5 |0 |2453 |
+ROW |6928 |graphprototype| |0 |0 |24 |5 |0 |2454 |
+ROW |6929 |graphprototype| |0 |0 |24 |5 |0 |2455 |
+ROW |6930 |graphprototype| |0 |0 |24 |5 |0 |2456 |
+ROW |6931 |graphprototype| |0 |0 |24 |5 |0 |2457 |
+ROW |6932 |graphprototype| |0 |0 |24 |5 |0 |2458 |
+ROW |6933 |graphprototype| |0 |0 |24 |5 |0 |2459 |
+ROW |6934 |graphprototype| |0 |0 |24 |5 |0 |2460 |
+ROW |6935 |graph | |0 |0 |12 |5 |0 |2461 |
+ROW |6936 |graphprototype| |0 |5 |12 |5 |0 |2461 |
+ROW |6937 |graphprototype| |0 |10 |12 |5 |0 |2461 |
+ROW |6938 |graphprototype| |0 |0 |24 |5 |0 |2462 |
+ROW |6939 |graphprototype| |0 |0 |24 |5 |0 |2463 |
+ROW |6940 |graphprototype| |0 |0 |24 |5 |0 |2464 |
+ROW |6941 |graphprototype| |0 |0 |24 |5 |0 |2465 |
+ROW |6942 |graphprototype| |0 |0 |24 |5 |0 |2466 |
+ROW |6943 |graphprototype| |0 |0 |24 |5 |0 |2467 |
+ROW |6944 |graphprototype| |0 |0 |24 |5 |0 |2468 |
+ROW |6945 |graphprototype| |0 |0 |24 |5 |0 |2469 |
+ROW |6946 |graphprototype| |0 |0 |24 |5 |0 |2470 |
+ROW |6947 |graphprototype| |0 |0 |24 |5 |0 |2471 |
+ROW |6948 |graphprototype| |0 |0 |24 |5 |0 |2472 |
+ROW |6949 |graphprototype| |0 |0 |24 |5 |0 |2473 |
+ROW |6950 |graphprototype| |0 |0 |24 |5 |0 |2474 |
+ROW |6951 |graphprototype| |0 |0 |24 |5 |0 |2475 |
+ROW |6952 |graphprototype| |0 |0 |24 |5 |0 |2476 |
+ROW |6953 |graphprototype| |0 |0 |24 |5 |0 |2477 |
+ROW |6954 |graphprototype| |0 |0 |24 |5 |0 |2478 |
+ROW |6955 |graphprototype| |0 |0 |24 |5 |0 |2479 |
+ROW |6956 |graphprototype| |0 |0 |24 |5 |0 |2480 |
+ROW |6957 |graphprototype| |0 |0 |24 |5 |0 |2481 |
+ROW |6958 |graphprototype| |0 |0 |24 |5 |0 |2482 |
+ROW |6959 |graphprototype| |0 |0 |24 |5 |0 |2483 |
+ROW |6960 |graphprototype| |0 |0 |24 |5 |0 |2484 |
+ROW |6961 |graphprototype| |0 |0 |24 |5 |0 |2485 |
+ROW |6962 |graphprototype| |0 |0 |24 |5 |0 |2486 |
+ROW |6963 |graphprototype| |0 |0 |24 |5 |0 |2487 |
+ROW |6964 |graphprototype| |0 |0 |24 |5 |0 |2488 |
+ROW |6965 |graphprototype| |0 |0 |24 |5 |0 |2489 |
+ROW |6966 |graphprototype| |0 |0 |24 |5 |0 |2490 |
+ROW |6967 |graphprototype| |0 |0 |24 |5 |0 |2491 |
+ROW |6968 |graphprototype| |0 |0 |24 |5 |0 |2492 |
+ROW |6969 |graphprototype| |0 |0 |24 |5 |0 |2493 |
+ROW |6970 |graphprototype| |0 |0 |24 |5 |0 |2494 |
+ROW |6971 |graphprototype| |0 |0 |24 |5 |0 |2495 |
+ROW |6972 |graphprototype| |0 |0 |24 |5 |0 |2496 |
+ROW |6973 |graphprototype| |0 |0 |24 |5 |0 |2497 |
+ROW |6974 |graphprototype| |0 |0 |24 |5 |0 |2498 |
+ROW |6975 |graphprototype| |0 |0 |24 |5 |0 |2499 |
+ROW |6976 |graphprototype| |0 |0 |24 |5 |0 |2500 |
+ROW |6977 |graphprototype| |0 |0 |24 |5 |0 |2501 |
+ROW |6978 |graphprototype| |0 |0 |24 |5 |0 |2502 |
+ROW |6979 |graphprototype| |0 |0 |24 |5 |0 |2503 |
+ROW |6980 |graphprototype| |0 |0 |24 |5 |0 |2504 |
+ROW |6981 |graphprototype| |0 |0 |24 |5 |0 |2505 |
+ROW |6982 |graphprototype| |0 |0 |24 |5 |0 |2506 |
+ROW |6983 |graphprototype| |0 |0 |24 |5 |0 |2507 |
+ROW |6984 |graphprototype| |0 |0 |24 |5 |0 |2508 |
+ROW |6985 |graphprototype| |0 |0 |24 |5 |0 |2509 |
+ROW |6986 |graphprototype| |0 |0 |24 |5 |0 |2510 |
+ROW |6987 |graphprototype| |0 |0 |24 |5 |0 |2511 |
+ROW |6988 |graphprototype| |0 |0 |24 |5 |0 |2512 |
+ROW |6989 |graphprototype| |0 |0 |24 |5 |0 |2513 |
+ROW |6990 |graphprototype| |0 |0 |24 |5 |0 |2514 |
+ROW |6991 |graphprototype| |0 |0 |24 |5 |0 |2515 |
+ROW |6992 |graphprototype| |0 |0 |24 |5 |0 |2516 |
+ROW |6993 |graphprototype| |0 |0 |24 |5 |0 |2517 |
+ROW |6994 |graphprototype| |0 |0 |24 |5 |0 |2518 |
+ROW |6995 |graphprototype| |0 |0 |24 |5 |0 |2519 |
+ROW |6996 |graphprototype| |0 |0 |24 |5 |0 |2520 |
+ROW |6997 |graph | |0 |0 |12 |5 |0 |2521 |
+ROW |6998 |graph | |12 |0 |12 |5 |0 |2521 |
+ROW |6999 |graph | |0 |5 |12 |5 |0 |2521 |
+ROW |7000 |graph | |12 |5 |12 |5 |0 |2521 |
+ROW |7001 |graph | |0 |0 |12 |5 |0 |2522 |
+ROW |7002 |graph | |12 |0 |12 |5 |0 |2522 |
+ROW |7003 |graph | |0 |5 |12 |5 |0 |2522 |
+ROW |7004 |graph | |12 |5 |12 |5 |0 |2522 |
+ROW |7005 |graph | |0 |0 |12 |5 |0 |2523 |
+ROW |7006 |graph | |12 |0 |12 |5 |0 |2523 |
+ROW |7007 |graph | |0 |5 |12 |5 |0 |2523 |
+ROW |7008 |graphprototype| |0 |0 |24 |5 |0 |2524 |
+ROW |7009 |graph | |0 |0 |12 |5 |0 |2525 |
+ROW |7010 |graph | |12 |0 |12 |5 |0 |2525 |
+ROW |7011 |graph | |0 |5 |12 |5 |0 |2525 |
+ROW |7012 |graph | |12 |5 |12 |5 |0 |2525 |
+ROW |7013 |graphprototype| |0 |10 |24 |5 |0 |2525 |
+ROW |7014 |graphprototype| |0 |15 |24 |5 |0 |2525 |
+ROW |7015 |graphprototype| |0 |20 |24 |5 |0 |2525 |
+ROW |7016 |graphprototype| |0 |25 |24 |5 |0 |2525 |
+ROW |7017 |graphprototype| |0 |30 |24 |5 |0 |2525 |
+ROW |7018 |graphprototype| |0 |0 |24 |5 |0 |2526 |
+ROW |7019 |graph | |0 |0 |12 |5 |0 |2527 |
+ROW |7020 |graph | |12 |0 |12 |5 |0 |2527 |
+ROW |7021 |graph | |0 |5 |12 |5 |0 |2527 |
+ROW |7022 |graph | |12 |5 |12 |5 |0 |2527 |
+ROW |7023 |graphprototype| |0 |10 |24 |5 |0 |2527 |
+ROW |7024 |graphprototype| |0 |15 |24 |5 |0 |2527 |
+ROW |7025 |graphprototype| |0 |20 |24 |5 |0 |2527 |
+ROW |7026 |graphprototype| |0 |25 |24 |5 |0 |2527 |
+ROW |7027 |graphprototype| |0 |30 |24 |5 |0 |2527 |
+ROW |7028 |graphprototype| |0 |0 |24 |5 |0 |2528 |
+ROW |7029 |graph | |0 |0 |12 |5 |0 |2529 |
+ROW |7030 |graph | |12 |0 |12 |5 |0 |2529 |
+ROW |7031 |graph | |0 |5 |12 |5 |0 |2529 |
+ROW |7032 |graph | |12 |5 |12 |5 |0 |2529 |
+ROW |7033 |graphprototype| |0 |10 |24 |5 |0 |2529 |
+ROW |7034 |graphprototype| |0 |15 |24 |5 |0 |2529 |
+ROW |7035 |graphprototype| |0 |20 |24 |5 |0 |2529 |
+ROW |7036 |graphprototype| |0 |25 |24 |5 |0 |2529 |
+ROW |7037 |graphprototype| |0 |30 |24 |5 |0 |2529 |
+ROW |7038 |graphprototype| |0 |0 |24 |5 |0 |2530 |
+ROW |7039 |graph | |0 |0 |12 |5 |0 |2531 |
+ROW |7040 |graphprototype| |12 |0 |12 |5 |0 |2531 |
+ROW |7041 |graph | |0 |5 |12 |5 |0 |2531 |
+ROW |7042 |graph | |12 |5 |12 |5 |0 |2531 |
+ROW |7043 |graphprototype| |0 |10 |24 |5 |0 |2531 |
+ROW |7044 |graphprototype| |0 |15 |24 |5 |0 |2531 |
+ROW |7045 |graphprototype| |0 |20 |24 |5 |0 |2531 |
+ROW |7046 |graphprototype| |0 |25 |24 |5 |0 |2531 |
+ROW |7047 |graph | |0 |0 |24 |5 |0 |2532 |
+ROW |7048 |graph | |0 |5 |24 |5 |0 |2532 |
+ROW |7049 |graph | |0 |0 |12 |5 |0 |2533 |
+ROW |7050 |graph | |12 |0 |12 |5 |0 |2533 |
+ROW |7051 |graph | |0 |5 |12 |5 |0 |2533 |
+ROW |7052 |graph | |12 |5 |12 |5 |0 |2533 |
+ROW |7053 |graph | |0 |0 |12 |5 |0 |2534 |
+ROW |7054 |graph | |12 |0 |12 |5 |0 |2534 |
+ROW |7055 |graph | |0 |5 |12 |5 |0 |2534 |
+ROW |7056 |graph | |12 |5 |12 |5 |0 |2534 |
+ROW |7057 |graph | |0 |10 |12 |5 |0 |2534 |
+ROW |7058 |graph | |12 |10 |12 |5 |0 |2534 |
+ROW |7059 |graphprototype| |0 |0 |24 |5 |0 |2535 |
+ROW |7060 |graph | |0 |0 |12 |5 |0 |2536 |
+ROW |7061 |graph | |12 |0 |12 |5 |0 |2536 |
+ROW |7062 |graph | |0 |5 |12 |5 |0 |2536 |
+ROW |7063 |graph | |12 |5 |12 |5 |0 |2536 |
+ROW |7064 |graphprototype| |0 |10 |24 |5 |0 |2536 |
+ROW |7065 |graphprototype| |0 |15 |24 |5 |0 |2536 |
+ROW |7066 |graphprototype| |0 |20 |24 |5 |0 |2536 |
+ROW |7067 |graphprototype| |0 |25 |24 |5 |0 |2536 |
+ROW |7068 |graphprototype| |0 |0 |24 |5 |0 |2537 |
+ROW |7069 |graph | |0 |0 |12 |5 |0 |2538 |
+ROW |7070 |graph | |12 |0 |12 |5 |0 |2538 |
+ROW |7071 |graph | |0 |5 |12 |5 |0 |2538 |
+ROW |7072 |graph | |12 |5 |12 |5 |0 |2538 |
+ROW |7073 |graphprototype| |0 |10 |24 |5 |0 |2538 |
+ROW |7074 |graphprototype| |0 |15 |24 |5 |0 |2538 |
+ROW |7075 |graphprototype| |0 |20 |24 |5 |0 |2538 |
+ROW |7076 |graphprototype| |0 |25 |24 |5 |0 |2538 |
+ROW |7077 |graphprototype| |0 |0 |24 |5 |0 |2539 |
+ROW |7078 |graph | |0 |0 |12 |5 |0 |2540 |
+ROW |7079 |graphprototype| |0 |5 |12 |5 |0 |2540 |
+ROW |7080 |graphprototype| |0 |10 |12 |5 |0 |2540 |
+ROW |7081 |plaintext | |0 |0 |8 |2 |0 |2541 |
+ROW |7082 |plaintext | |8 |0 |8 |2 |0 |2541 |
+ROW |7083 |plaintext | |16 |0 |8 |2 |0 |2541 |
+ROW |7084 |plaintext | |0 |2 |8 |2 |0 |2541 |
+ROW |7085 |plaintext | |8 |2 |8 |2 |0 |2541 |
+ROW |7086 |plaintext | |16 |2 |8 |2 |0 |2541 |
+ROW |7087 |graph | |0 |4 |8 |7 |0 |2541 |
+ROW |7088 |graph | |8 |4 |8 |7 |0 |2541 |
+ROW |7089 |graph | |16 |4 |8 |7 |0 |2541 |
+ROW |7090 |plaintext | |0 |0 |8 |2 |0 |2542 |
+ROW |7091 |plaintext | |8 |0 |8 |2 |0 |2542 |
+ROW |7092 |plaintext | |16 |0 |8 |2 |0 |2542 |
+ROW |7093 |plaintext | |0 |2 |8 |2 |0 |2542 |
+ROW |7094 |plaintext | |8 |2 |8 |2 |0 |2542 |
+ROW |7095 |plaintext | |16 |2 |8 |2 |0 |2542 |
+ROW |7096 |graph | |0 |4 |8 |7 |0 |2542 |
+ROW |7097 |graph | |8 |4 |8 |7 |0 |2542 |
+ROW |7098 |graph | |16 |4 |8 |7 |0 |2542 |
+ROW |7099 |plaintext | |0 |0 |8 |2 |0 |2543 |
+ROW |7100 |plaintext | |8 |0 |8 |2 |0 |2543 |
+ROW |7101 |plaintext | |16 |0 |8 |2 |0 |2543 |
+ROW |7102 |plaintext | |0 |2 |8 |2 |0 |2543 |
+ROW |7103 |plaintext | |8 |2 |8 |2 |0 |2543 |
+ROW |7104 |plaintext | |16 |2 |8 |2 |0 |2543 |
+ROW |7105 |graph | |0 |4 |8 |7 |0 |2543 |
+ROW |7106 |graph | |8 |4 |8 |7 |0 |2543 |
+ROW |7107 |graph | |16 |4 |8 |7 |0 |2543 |
+ROW |7108 |plaintext | |0 |0 |8 |2 |0 |2544 |
+ROW |7109 |plaintext | |8 |0 |8 |2 |0 |2544 |
+ROW |7110 |plaintext | |16 |0 |8 |2 |0 |2544 |
+ROW |7111 |plaintext | |0 |2 |8 |2 |0 |2544 |
+ROW |7112 |plaintext | |8 |2 |8 |2 |0 |2544 |
+ROW |7113 |plaintext | |16 |2 |8 |2 |0 |2544 |
+ROW |7114 |graph | |0 |4 |8 |7 |0 |2544 |
+ROW |7115 |graph | |8 |4 |8 |7 |0 |2544 |
+ROW |7116 |graph | |16 |4 |8 |7 |0 |2544 |
+ROW |7117 |plaintext | |0 |0 |8 |2 |0 |2545 |
+ROW |7118 |plaintext | |8 |0 |8 |2 |0 |2545 |
+ROW |7119 |plaintext | |16 |0 |8 |2 |0 |2545 |
+ROW |7120 |plaintext | |0 |2 |8 |2 |0 |2545 |
+ROW |7121 |plaintext | |8 |2 |8 |2 |0 |2545 |
+ROW |7122 |plaintext | |16 |2 |8 |2 |0 |2545 |
+ROW |7123 |graph | |0 |4 |8 |7 |0 |2545 |
+ROW |7124 |graph | |8 |4 |8 |7 |0 |2545 |
+ROW |7125 |graph | |16 |4 |8 |7 |0 |2545 |
+ROW |7126 |plaintext | |0 |0 |8 |2 |0 |2546 |
+ROW |7127 |plaintext | |8 |0 |8 |2 |0 |2546 |
+ROW |7128 |plaintext | |16 |0 |8 |2 |0 |2546 |
+ROW |7129 |plaintext | |0 |2 |8 |2 |0 |2546 |
+ROW |7130 |plaintext | |8 |2 |8 |2 |0 |2546 |
+ROW |7131 |plaintext | |16 |2 |8 |2 |0 |2546 |
+ROW |7132 |graph | |0 |4 |8 |7 |0 |2546 |
+ROW |7133 |graph | |8 |4 |8 |7 |0 |2546 |
+ROW |7134 |graph | |16 |4 |8 |7 |0 |2546 |
+ROW |7135 |plaintext | |0 |0 |8 |2 |0 |2547 |
+ROW |7136 |plaintext | |8 |0 |8 |2 |0 |2547 |
+ROW |7137 |plaintext | |16 |0 |8 |2 |0 |2547 |
+ROW |7138 |plaintext | |0 |2 |8 |2 |0 |2547 |
+ROW |7139 |plaintext | |8 |2 |8 |2 |0 |2547 |
+ROW |7140 |plaintext | |16 |2 |8 |2 |0 |2547 |
+ROW |7141 |graph | |0 |4 |8 |7 |0 |2547 |
+ROW |7142 |graph | |8 |4 |8 |7 |0 |2547 |
+ROW |7143 |graph | |16 |4 |8 |7 |0 |2547 |
+ROW |7144 |plaintext | |0 |0 |8 |2 |0 |2548 |
+ROW |7145 |plaintext | |8 |0 |8 |2 |0 |2548 |
+ROW |7146 |plaintext | |16 |0 |8 |2 |0 |2548 |
+ROW |7147 |plaintext | |0 |2 |8 |2 |0 |2548 |
+ROW |7148 |plaintext | |8 |2 |8 |2 |0 |2548 |
+ROW |7149 |plaintext | |16 |2 |8 |2 |0 |2548 |
+ROW |7150 |graph | |0 |4 |8 |7 |0 |2548 |
+ROW |7151 |graph | |8 |4 |8 |7 |0 |2548 |
+ROW |7152 |graph | |16 |4 |8 |7 |0 |2548 |
+ROW |7153 |plaintext | |0 |0 |8 |2 |0 |2549 |
+ROW |7154 |plaintext | |8 |0 |8 |2 |0 |2549 |
+ROW |7155 |plaintext | |16 |0 |8 |2 |0 |2549 |
+ROW |7156 |plaintext | |0 |2 |8 |2 |0 |2549 |
+ROW |7157 |plaintext | |8 |2 |8 |2 |0 |2549 |
+ROW |7158 |plaintext | |16 |2 |8 |2 |0 |2549 |
+ROW |7159 |graph | |0 |4 |8 |7 |0 |2549 |
+ROW |7160 |graph | |8 |4 |8 |7 |0 |2549 |
+ROW |7161 |graph | |16 |4 |8 |7 |0 |2549 |
+ROW |7162 |plaintext | |0 |0 |8 |2 |0 |2550 |
+ROW |7163 |plaintext | |8 |0 |8 |2 |0 |2550 |
+ROW |7164 |plaintext | |16 |0 |8 |2 |0 |2550 |
+ROW |7165 |plaintext | |0 |2 |8 |2 |0 |2550 |
+ROW |7166 |plaintext | |8 |2 |8 |2 |0 |2550 |
+ROW |7167 |plaintext | |16 |2 |8 |2 |0 |2550 |
+ROW |7168 |graph | |0 |4 |8 |7 |0 |2550 |
+ROW |7169 |graph | |8 |4 |8 |7 |0 |2550 |
+ROW |7170 |graph | |16 |4 |8 |7 |0 |2550 |
+ROW |7171 |plaintext | |0 |0 |8 |2 |0 |2551 |
+ROW |7172 |plaintext | |8 |0 |8 |2 |0 |2551 |
+ROW |7173 |plaintext | |16 |0 |8 |2 |0 |2551 |
+ROW |7174 |plaintext | |0 |2 |8 |2 |0 |2551 |
+ROW |7175 |plaintext | |8 |2 |8 |2 |0 |2551 |
+ROW |7176 |plaintext | |16 |2 |8 |2 |0 |2551 |
+ROW |7177 |graph | |0 |4 |8 |7 |0 |2551 |
+ROW |7178 |graph | |8 |4 |8 |7 |0 |2551 |
+ROW |7179 |graph | |16 |4 |8 |7 |0 |2551 |
+ROW |7180 |graphprototype| |0 |0 |24 |5 |0 |2552 |
TABLE |widget_field
FIELDS|widget_fieldid|widgetid|type|name |value_int|value_str |value_groupid|value_hostid|value_itemid|value_graphid|value_sysmapid|value_serviceid|value_slaid|
@@ -920,1364 +920,1364 @@ ROW |1176 |400 |1 |reference |0 |NWLRB
ROW |1177 |15 |1 |ds.hosts.3.0 |0 |Zabbix server |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
ROW |1178 |15 |1 |ds.items.3.0 |0 |Zabbix server: LLD queue |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
ROW |1179 |15 |1 |ds.color.3 |0 |524BBC |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18428 |6245 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18429 |6245 |6 |graphid |0 | |NULL |NULL |NULL |1174 |NULL |NULL |NULL |
-ROW |18430 |6246 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18431 |6246 |6 |graphid |0 | |NULL |NULL |NULL |1176 |NULL |NULL |NULL |
-ROW |18432 |6247 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18433 |6247 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18434 |6247 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18435 |6247 |7 |graphid |0 | |NULL |NULL |NULL |1172 |NULL |NULL |NULL |
-ROW |18436 |6248 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18437 |6248 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18438 |6248 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18439 |6248 |7 |graphid |0 | |NULL |NULL |NULL |1173 |NULL |NULL |NULL |
-ROW |18440 |6249 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18441 |6249 |6 |graphid |0 | |NULL |NULL |NULL |1175 |NULL |NULL |NULL |
-ROW |18442 |6250 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18443 |6250 |6 |graphid |0 | |NULL |NULL |NULL |838 |NULL |NULL |NULL |
-ROW |18444 |6251 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18445 |6251 |6 |graphid |0 | |NULL |NULL |NULL |839 |NULL |NULL |NULL |
-ROW |18446 |6252 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18447 |6252 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18448 |6252 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18449 |6252 |7 |graphid |0 | |NULL |NULL |NULL |836 |NULL |NULL |NULL |
-ROW |18450 |6253 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18451 |6253 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18452 |6253 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18453 |6253 |7 |graphid |0 | |NULL |NULL |NULL |837 |NULL |NULL |NULL |
-ROW |18454 |6254 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18455 |6254 |6 |graphid |0 | |NULL |NULL |NULL |840 |NULL |NULL |NULL |
-ROW |18456 |6255 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18457 |6255 |6 |graphid |0 | |NULL |NULL |NULL |1622 |NULL |NULL |NULL |
-ROW |18458 |6256 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18459 |6256 |6 |graphid |0 | |NULL |NULL |NULL |1628 |NULL |NULL |NULL |
-ROW |18460 |6257 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18461 |6257 |6 |graphid |0 | |NULL |NULL |NULL |1624 |NULL |NULL |NULL |
-ROW |18462 |6258 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18463 |6258 |6 |graphid |0 | |NULL |NULL |NULL |1623 |NULL |NULL |NULL |
-ROW |18464 |6259 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18465 |6259 |6 |graphid |0 | |NULL |NULL |NULL |1626 |NULL |NULL |NULL |
-ROW |18466 |6260 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18467 |6260 |6 |graphid |0 | |NULL |NULL |NULL |1627 |NULL |NULL |NULL |
-ROW |18468 |6261 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18469 |6261 |6 |graphid |0 | |NULL |NULL |NULL |1625 |NULL |NULL |NULL |
-ROW |18470 |6262 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18471 |6262 |6 |graphid |0 | |NULL |NULL |NULL |1125 |NULL |NULL |NULL |
-ROW |18472 |6263 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18473 |6263 |6 |graphid |0 | |NULL |NULL |NULL |1129 |NULL |NULL |NULL |
-ROW |18474 |6264 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18475 |6264 |6 |graphid |0 | |NULL |NULL |NULL |1128 |NULL |NULL |NULL |
-ROW |18476 |6265 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18477 |6265 |6 |graphid |0 | |NULL |NULL |NULL |1126 |NULL |NULL |NULL |
-ROW |18478 |6266 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18479 |6266 |6 |graphid |0 | |NULL |NULL |NULL |1127 |NULL |NULL |NULL |
-ROW |18480 |6267 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18481 |6267 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18482 |6267 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18483 |6267 |7 |graphid |0 | |NULL |NULL |NULL |1075 |NULL |NULL |NULL |
-ROW |18484 |6268 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18485 |6268 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18486 |6268 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18487 |6268 |7 |graphid |0 | |NULL |NULL |NULL |1630 |NULL |NULL |NULL |
-ROW |18488 |6269 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18489 |6269 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18490 |6269 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18491 |6269 |7 |graphid |0 | |NULL |NULL |NULL |1629 |NULL |NULL |NULL |
-ROW |18492 |6270 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18493 |6270 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18494 |6270 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18495 |6270 |7 |graphid |0 | |NULL |NULL |NULL |1078 |NULL |NULL |NULL |
-ROW |18496 |6271 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18497 |6271 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18498 |6271 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18499 |6271 |7 |graphid |0 | |NULL |NULL |NULL |1076 |NULL |NULL |NULL |
-ROW |18500 |6272 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18501 |6272 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18502 |6272 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18503 |6272 |7 |graphid |0 | |NULL |NULL |NULL |1079 |NULL |NULL |NULL |
-ROW |18504 |6273 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18505 |6273 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18506 |6273 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18507 |6273 |7 |graphid |0 | |NULL |NULL |NULL |1077 |NULL |NULL |NULL |
-ROW |18508 |6274 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18509 |6274 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18510 |6274 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18511 |6274 |7 |graphid |0 | |NULL |NULL |NULL |1080 |NULL |NULL |NULL |
-ROW |18512 |6275 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18513 |6275 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18514 |6275 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18515 |6275 |7 |graphid |0 | |NULL |NULL |NULL |1632 |NULL |NULL |NULL |
-ROW |18516 |6276 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18517 |6276 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18518 |6276 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18519 |6276 |7 |graphid |0 | |NULL |NULL |NULL |1631 |NULL |NULL |NULL |
-ROW |18520 |6277 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18521 |6277 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18522 |6277 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18523 |6277 |7 |graphid |0 | |NULL |NULL |NULL |1081 |NULL |NULL |NULL |
-ROW |18524 |6278 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18525 |6278 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18526 |6278 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18527 |6278 |7 |graphid |0 | |NULL |NULL |NULL |1634 |NULL |NULL |NULL |
-ROW |18528 |6279 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18529 |6279 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18530 |6279 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18531 |6279 |7 |graphid |0 | |NULL |NULL |NULL |1633 |NULL |NULL |NULL |
-ROW |18532 |6280 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18533 |6280 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18534 |6280 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18535 |6280 |7 |graphid |0 | |NULL |NULL |NULL |1084 |NULL |NULL |NULL |
-ROW |18536 |6281 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18537 |6281 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18538 |6281 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18539 |6281 |7 |graphid |0 | |NULL |NULL |NULL |1082 |NULL |NULL |NULL |
-ROW |18540 |6282 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18541 |6282 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18542 |6282 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18543 |6282 |7 |graphid |0 | |NULL |NULL |NULL |1085 |NULL |NULL |NULL |
-ROW |18544 |6283 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18545 |6283 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18546 |6283 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18547 |6283 |7 |graphid |0 | |NULL |NULL |NULL |1083 |NULL |NULL |NULL |
-ROW |18548 |6284 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18549 |6284 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18550 |6284 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18551 |6284 |7 |graphid |0 | |NULL |NULL |NULL |1086 |NULL |NULL |NULL |
-ROW |18552 |6285 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18553 |6285 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18554 |6285 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18555 |6285 |7 |graphid |0 | |NULL |NULL |NULL |1636 |NULL |NULL |NULL |
-ROW |18556 |6286 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18557 |6286 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18558 |6286 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18559 |6286 |7 |graphid |0 | |NULL |NULL |NULL |1635 |NULL |NULL |NULL |
-ROW |18560 |6287 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18561 |6287 |6 |graphid |0 | |NULL |NULL |NULL |841 |NULL |NULL |NULL |
-ROW |18562 |6288 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18563 |6288 |6 |graphid |0 | |NULL |NULL |NULL |843 |NULL |NULL |NULL |
-ROW |18564 |6289 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18565 |6289 |6 |graphid |0 | |NULL |NULL |NULL |842 |NULL |NULL |NULL |
-ROW |18566 |6290 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18567 |6290 |6 |graphid |0 | |NULL |NULL |NULL |845 |NULL |NULL |NULL |
-ROW |18568 |6291 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18569 |6291 |6 |graphid |0 | |NULL |NULL |NULL |847 |NULL |NULL |NULL |
-ROW |18570 |6292 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18571 |6292 |6 |graphid |0 | |NULL |NULL |NULL |846 |NULL |NULL |NULL |
-ROW |18572 |6293 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18573 |6293 |6 |graphid |0 | |NULL |NULL |NULL |1029 |NULL |NULL |NULL |
-ROW |18574 |6294 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18575 |6294 |6 |graphid |0 | |NULL |NULL |NULL |1027 |NULL |NULL |NULL |
-ROW |18576 |6295 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18577 |6295 |6 |graphid |0 | |NULL |NULL |NULL |1030 |NULL |NULL |NULL |
-ROW |18578 |6296 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18579 |6296 |6 |graphid |0 | |NULL |NULL |NULL |1028 |NULL |NULL |NULL |
-ROW |18580 |6297 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18581 |6297 |6 |graphid |0 | |NULL |NULL |NULL |1031 |NULL |NULL |NULL |
-ROW |18582 |6298 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18583 |6298 |6 |graphid |0 | |NULL |NULL |NULL |1011 |NULL |NULL |NULL |
-ROW |18584 |6299 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18585 |6299 |6 |graphid |0 | |NULL |NULL |NULL |1012 |NULL |NULL |NULL |
-ROW |18586 |6300 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18587 |6300 |6 |graphid |0 | |NULL |NULL |NULL |1008 |NULL |NULL |NULL |
-ROW |18588 |6301 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18589 |6301 |6 |graphid |0 | |NULL |NULL |NULL |1009 |NULL |NULL |NULL |
-ROW |18590 |6302 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18591 |6302 |6 |graphid |0 | |NULL |NULL |NULL |1007 |NULL |NULL |NULL |
-ROW |18592 |6303 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18593 |6303 |6 |graphid |0 | |NULL |NULL |NULL |1010 |NULL |NULL |NULL |
-ROW |18594 |6304 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18595 |6304 |6 |graphid |0 | |NULL |NULL |NULL |1018 |NULL |NULL |NULL |
-ROW |18596 |6305 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18597 |6305 |6 |graphid |0 | |NULL |NULL |NULL |1016 |NULL |NULL |NULL |
-ROW |18598 |6306 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18599 |6306 |6 |graphid |0 | |NULL |NULL |NULL |1019 |NULL |NULL |NULL |
-ROW |18600 |6307 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18601 |6307 |6 |graphid |0 | |NULL |NULL |NULL |1017 |NULL |NULL |NULL |
-ROW |18602 |6308 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18603 |6308 |6 |graphid |0 | |NULL |NULL |NULL |1020 |NULL |NULL |NULL |
-ROW |18604 |6309 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18605 |6309 |6 |graphid |0 | |NULL |NULL |NULL |1025 |NULL |NULL |NULL |
-ROW |18606 |6310 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18607 |6310 |6 |graphid |0 | |NULL |NULL |NULL |1026 |NULL |NULL |NULL |
-ROW |18608 |6311 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18609 |6311 |6 |graphid |0 | |NULL |NULL |NULL |1022 |NULL |NULL |NULL |
-ROW |18610 |6312 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18611 |6312 |6 |graphid |0 | |NULL |NULL |NULL |1023 |NULL |NULL |NULL |
-ROW |18612 |6313 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18613 |6313 |6 |graphid |0 | |NULL |NULL |NULL |1021 |NULL |NULL |NULL |
-ROW |18614 |6314 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18615 |6314 |6 |graphid |0 | |NULL |NULL |NULL |1024 |NULL |NULL |NULL |
-ROW |18616 |6315 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18617 |6315 |6 |graphid |0 | |NULL |NULL |NULL |532 |NULL |NULL |NULL |
-ROW |18618 |6316 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18619 |6316 |6 |graphid |0 | |NULL |NULL |NULL |530 |NULL |NULL |NULL |
-ROW |18620 |6317 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18621 |6317 |6 |graphid |0 | |NULL |NULL |NULL |531 |NULL |NULL |NULL |
-ROW |18622 |6318 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18623 |6318 |6 |graphid |0 | |NULL |NULL |NULL |529 |NULL |NULL |NULL |
-ROW |18624 |6319 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18625 |6319 |6 |graphid |0 | |NULL |NULL |NULL |806 |NULL |NULL |NULL |
-ROW |18626 |6320 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18627 |6320 |6 |graphid |0 | |NULL |NULL |NULL |804 |NULL |NULL |NULL |
-ROW |18628 |6321 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18629 |6321 |6 |graphid |0 | |NULL |NULL |NULL |805 |NULL |NULL |NULL |
-ROW |18630 |6322 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18631 |6322 |6 |graphid |0 | |NULL |NULL |NULL |803 |NULL |NULL |NULL |
-ROW |18632 |6323 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18633 |6323 |6 |graphid |0 | |NULL |NULL |NULL |392 |NULL |NULL |NULL |
-ROW |18634 |6324 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18635 |6324 |6 |graphid |0 | |NULL |NULL |NULL |404 |NULL |NULL |NULL |
-ROW |18636 |6325 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18637 |6325 |6 |graphid |0 | |NULL |NULL |NULL |406 |NULL |NULL |NULL |
-ROW |18638 |6326 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18639 |6326 |6 |graphid |0 | |NULL |NULL |NULL |410 |NULL |NULL |NULL |
-ROW |18640 |6327 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18641 |6327 |6 |graphid |0 | |NULL |NULL |NULL |527 |NULL |NULL |NULL |
-ROW |18642 |6328 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18643 |6328 |6 |graphid |0 | |NULL |NULL |NULL |788 |NULL |NULL |NULL |
-ROW |18644 |6329 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18645 |6329 |6 |graphid |0 | |NULL |NULL |NULL |1651 |NULL |NULL |NULL |
-ROW |18646 |6330 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18647 |6330 |6 |graphid |0 | |NULL |NULL |NULL |1653 |NULL |NULL |NULL |
-ROW |18648 |6331 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18649 |6331 |6 |graphid |0 | |NULL |NULL |NULL |1652 |NULL |NULL |NULL |
-ROW |18650 |6332 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18651 |6332 |6 |graphid |0 | |NULL |NULL |NULL |1445 |NULL |NULL |NULL |
-ROW |18652 |6333 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18653 |6333 |6 |graphid |0 | |NULL |NULL |NULL |802 |NULL |NULL |NULL |
-ROW |18654 |6334 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18655 |6334 |6 |graphid |0 | |NULL |NULL |NULL |799 |NULL |NULL |NULL |
-ROW |18656 |6335 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18657 |6335 |6 |graphid |0 | |NULL |NULL |NULL |800 |NULL |NULL |NULL |
-ROW |18658 |6336 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18659 |6336 |6 |graphid |0 | |NULL |NULL |NULL |798 |NULL |NULL |NULL |
-ROW |18660 |6337 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18661 |6337 |6 |graphid |0 | |NULL |NULL |NULL |797 |NULL |NULL |NULL |
-ROW |18662 |6338 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18663 |6338 |6 |graphid |0 | |NULL |NULL |NULL |801 |NULL |NULL |NULL |
-ROW |18664 |6339 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18665 |6339 |6 |graphid |0 | |NULL |NULL |NULL |1659 |NULL |NULL |NULL |
-ROW |18666 |6340 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18667 |6340 |6 |graphid |0 | |NULL |NULL |NULL |1661 |NULL |NULL |NULL |
-ROW |18668 |6341 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18669 |6341 |6 |graphid |0 | |NULL |NULL |NULL |1660 |NULL |NULL |NULL |
-ROW |18670 |6342 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18671 |6342 |6 |graphid |0 | |NULL |NULL |NULL |1444 |NULL |NULL |NULL |
-ROW |18672 |6343 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18673 |6343 |4 |itemid |0 | |NULL |NULL |43118 |NULL |NULL |NULL |NULL |
-ROW |18674 |6344 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18675 |6344 |6 |graphid |0 | |NULL |NULL |NULL |2349 |NULL |NULL |NULL |
-ROW |18676 |6345 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18677 |6345 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18678 |6345 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18679 |6345 |7 |graphid |0 | |NULL |NULL |NULL |2340 |NULL |NULL |NULL |
-ROW |18680 |6346 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18681 |6346 |6 |graphid |0 | |NULL |NULL |NULL |2345 |NULL |NULL |NULL |
-ROW |18682 |6347 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18683 |6347 |6 |graphid |0 | |NULL |NULL |NULL |2346 |NULL |NULL |NULL |
-ROW |18684 |6348 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18685 |6348 |4 |itemid |0 | |NULL |NULL |43121 |NULL |NULL |NULL |NULL |
-ROW |18686 |6349 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18687 |6349 |6 |graphid |0 | |NULL |NULL |NULL |2350 |NULL |NULL |NULL |
-ROW |18688 |6350 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18689 |6350 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18690 |6350 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18691 |6350 |7 |graphid |0 | |NULL |NULL |NULL |2342 |NULL |NULL |NULL |
-ROW |18692 |6351 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18693 |6351 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18694 |6351 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18695 |6351 |5 |itemid |0 | |NULL |NULL |43155 |NULL |NULL |NULL |NULL |
-ROW |18696 |6352 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18697 |6352 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18698 |6352 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18699 |6352 |5 |itemid |0 | |NULL |NULL |43160 |NULL |NULL |NULL |NULL |
-ROW |18700 |6353 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18701 |6353 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18702 |6353 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18703 |6353 |7 |graphid |0 | |NULL |NULL |NULL |2343 |NULL |NULL |NULL |
-ROW |18704 |6354 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18705 |6354 |4 |itemid |0 | |NULL |NULL |43132 |NULL |NULL |NULL |NULL |
-ROW |18706 |6355 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18707 |6355 |6 |graphid |0 | |NULL |NULL |NULL |2349 |NULL |NULL |NULL |
-ROW |18708 |6356 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18709 |6356 |4 |itemid |0 | |NULL |NULL |43128 |NULL |NULL |NULL |NULL |
-ROW |18710 |6357 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18711 |6357 |4 |itemid |0 | |NULL |NULL |43127 |NULL |NULL |NULL |NULL |
-ROW |18712 |6358 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18713 |6358 |4 |itemid |0 | |NULL |NULL |43125 |NULL |NULL |NULL |NULL |
-ROW |18714 |6359 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18715 |6359 |6 |graphid |0 | |NULL |NULL |NULL |2344 |NULL |NULL |NULL |
-ROW |18716 |6360 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18717 |6360 |4 |itemid |0 | |NULL |NULL |43115 |NULL |NULL |NULL |NULL |
-ROW |18718 |6361 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18719 |6361 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18720 |6361 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18721 |6361 |5 |itemid |0 | |NULL |NULL |43149 |NULL |NULL |NULL |NULL |
-ROW |18722 |6362 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18723 |6362 |4 |itemid |0 | |NULL |NULL |43111 |NULL |NULL |NULL |NULL |
-ROW |18724 |6363 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18725 |6363 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18726 |6363 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18727 |6363 |5 |itemid |0 | |NULL |NULL |43150 |NULL |NULL |NULL |NULL |
-ROW |18728 |6364 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18729 |6364 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18730 |6364 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18731 |6364 |5 |itemid |0 | |NULL |NULL |43151 |NULL |NULL |NULL |NULL |
-ROW |18732 |6365 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18733 |6365 |4 |itemid |0 | |NULL |NULL |43090 |NULL |NULL |NULL |NULL |
-ROW |18734 |6366 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18735 |6366 |4 |itemid |0 | |NULL |NULL |43105 |NULL |NULL |NULL |NULL |
-ROW |18736 |6367 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18737 |6367 |4 |itemid |0 | |NULL |NULL |43091 |NULL |NULL |NULL |NULL |
-ROW |18738 |6368 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18739 |6368 |6 |graphid |0 | |NULL |NULL |NULL |2351 |NULL |NULL |NULL |
-ROW |18740 |6369 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18741 |6369 |6 |graphid |0 | |NULL |NULL |NULL |2352 |NULL |NULL |NULL |
-ROW |18742 |6370 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18743 |6370 |4 |itemid |0 | |NULL |NULL |43095 |NULL |NULL |NULL |NULL |
-ROW |18744 |6371 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18745 |6371 |4 |itemid |0 | |NULL |NULL |43092 |NULL |NULL |NULL |NULL |
-ROW |18746 |6372 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18747 |6372 |4 |itemid |0 | |NULL |NULL |43097 |NULL |NULL |NULL |NULL |
-ROW |18748 |6373 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18749 |6373 |6 |graphid |0 | |NULL |NULL |NULL |2353 |NULL |NULL |NULL |
-ROW |18750 |6374 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18751 |6374 |4 |itemid |0 | |NULL |NULL |43137 |NULL |NULL |NULL |NULL |
-ROW |18752 |6375 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18753 |6375 |4 |itemid |0 | |NULL |NULL |43089 |NULL |NULL |NULL |NULL |
-ROW |18754 |6376 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18755 |6376 |4 |itemid |0 | |NULL |NULL |43094 |NULL |NULL |NULL |NULL |
-ROW |18756 |6377 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18757 |6377 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18758 |6377 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18759 |6377 |7 |graphid |0 | |NULL |NULL |NULL |2340 |NULL |NULL |NULL |
-ROW |18760 |6378 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18761 |6378 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18762 |6378 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18763 |6378 |7 |graphid |0 | |NULL |NULL |NULL |2339 |NULL |NULL |NULL |
-ROW |18764 |6379 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18765 |6379 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18766 |6379 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18767 |6379 |5 |itemid |0 | |NULL |NULL |43153 |NULL |NULL |NULL |NULL |
-ROW |18768 |6380 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18769 |6380 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18770 |6380 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18771 |6380 |5 |itemid |0 | |NULL |NULL |43152 |NULL |NULL |NULL |NULL |
-ROW |18772 |6381 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18773 |6381 |6 |graphid |0 | |NULL |NULL |NULL |2347 |NULL |NULL |NULL |
-ROW |18774 |6382 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18775 |6382 |6 |graphid |0 | |NULL |NULL |NULL |2354 |NULL |NULL |NULL |
-ROW |18776 |6383 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18777 |6383 |6 |graphid |0 | |NULL |NULL |NULL |1112 |NULL |NULL |NULL |
-ROW |18778 |6384 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18779 |6384 |6 |graphid |0 | |NULL |NULL |NULL |1113 |NULL |NULL |NULL |
-ROW |18780 |6385 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18781 |6385 |6 |graphid |0 | |NULL |NULL |NULL |1110 |NULL |NULL |NULL |
-ROW |18782 |6386 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18783 |6386 |6 |graphid |0 | |NULL |NULL |NULL |1109 |NULL |NULL |NULL |
-ROW |18784 |6387 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18785 |6387 |6 |graphid |0 | |NULL |NULL |NULL |1111 |NULL |NULL |NULL |
-ROW |18786 |6388 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18787 |6388 |6 |graphid |0 | |NULL |NULL |NULL |1114 |NULL |NULL |NULL |
-ROW |18788 |6389 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18789 |6389 |6 |graphid |0 | |NULL |NULL |NULL |1139 |NULL |NULL |NULL |
-ROW |18790 |6390 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18791 |6390 |6 |graphid |0 | |NULL |NULL |NULL |1140 |NULL |NULL |NULL |
-ROW |18792 |6391 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18793 |6391 |6 |graphid |0 | |NULL |NULL |NULL |1137 |NULL |NULL |NULL |
-ROW |18794 |6392 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18795 |6392 |6 |graphid |0 | |NULL |NULL |NULL |1136 |NULL |NULL |NULL |
-ROW |18796 |6393 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18797 |6393 |6 |graphid |0 | |NULL |NULL |NULL |1138 |NULL |NULL |NULL |
-ROW |18798 |6394 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18799 |6394 |6 |graphid |0 | |NULL |NULL |NULL |1141 |NULL |NULL |NULL |
-ROW |18800 |6395 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18801 |6395 |6 |graphid |0 | |NULL |NULL |NULL |1118 |NULL |NULL |NULL |
-ROW |18802 |6396 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18803 |6396 |6 |graphid |0 | |NULL |NULL |NULL |1119 |NULL |NULL |NULL |
-ROW |18804 |6397 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18805 |6397 |6 |graphid |0 | |NULL |NULL |NULL |1116 |NULL |NULL |NULL |
-ROW |18806 |6398 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18807 |6398 |6 |graphid |0 | |NULL |NULL |NULL |1115 |NULL |NULL |NULL |
-ROW |18808 |6399 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18809 |6399 |6 |graphid |0 | |NULL |NULL |NULL |1117 |NULL |NULL |NULL |
-ROW |18810 |6400 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18811 |6400 |6 |graphid |0 | |NULL |NULL |NULL |1120 |NULL |NULL |NULL |
-ROW |18812 |6401 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18813 |6401 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18814 |6401 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18815 |6401 |7 |graphid |0 | |NULL |NULL |NULL |1387 |NULL |NULL |NULL |
-ROW |18816 |6402 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18817 |6402 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18818 |6402 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18819 |6402 |7 |graphid |0 | |NULL |NULL |NULL |1382 |NULL |NULL |NULL |
-ROW |18820 |6403 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18821 |6403 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18822 |6403 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18823 |6403 |7 |graphid |0 | |NULL |NULL |NULL |1380 |NULL |NULL |NULL |
-ROW |18824 |6404 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18825 |6404 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18826 |6404 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18827 |6404 |7 |graphid |0 | |NULL |NULL |NULL |1386 |NULL |NULL |NULL |
-ROW |18828 |6405 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18829 |6405 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18830 |6405 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18831 |6405 |7 |graphid |0 | |NULL |NULL |NULL |1383 |NULL |NULL |NULL |
-ROW |18832 |6406 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18833 |6406 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18834 |6406 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18835 |6406 |7 |graphid |0 | |NULL |NULL |NULL |1381 |NULL |NULL |NULL |
-ROW |18836 |6407 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18837 |6407 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18838 |6407 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18839 |6407 |7 |graphid |0 | |NULL |NULL |NULL |1384 |NULL |NULL |NULL |
-ROW |18840 |6408 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18841 |6408 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18842 |6408 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18843 |6408 |7 |graphid |0 | |NULL |NULL |NULL |1385 |NULL |NULL |NULL |
-ROW |18844 |6409 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18845 |6409 |6 |graphid |0 | |NULL |NULL |NULL |1390 |NULL |NULL |NULL |
-ROW |18846 |6410 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18847 |6410 |6 |graphid |0 | |NULL |NULL |NULL |1393 |NULL |NULL |NULL |
-ROW |18848 |6411 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18849 |6411 |6 |graphid |0 | |NULL |NULL |NULL |1391 |NULL |NULL |NULL |
-ROW |18850 |6412 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18851 |6412 |6 |graphid |0 | |NULL |NULL |NULL |1394 |NULL |NULL |NULL |
-ROW |18852 |6413 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18853 |6413 |6 |graphid |0 | |NULL |NULL |NULL |1392 |NULL |NULL |NULL |
-ROW |18854 |6414 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18855 |6414 |6 |graphid |0 | |NULL |NULL |NULL |1395 |NULL |NULL |NULL |
-ROW |18856 |6415 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18857 |6415 |6 |graphid |0 | |NULL |NULL |NULL |1388 |NULL |NULL |NULL |
-ROW |18858 |6416 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18859 |6416 |6 |graphid |0 | |NULL |NULL |NULL |1389 |NULL |NULL |NULL |
-ROW |18860 |6417 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18861 |6417 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18862 |6417 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18863 |6417 |7 |graphid |0 | |NULL |NULL |NULL |1221 |NULL |NULL |NULL |
-ROW |18864 |6418 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18865 |6418 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18866 |6418 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18867 |6418 |7 |graphid |0 | |NULL |NULL |NULL |1219 |NULL |NULL |NULL |
-ROW |18868 |6419 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18869 |6419 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18870 |6419 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18871 |6419 |7 |graphid |0 | |NULL |NULL |NULL |1222 |NULL |NULL |NULL |
-ROW |18872 |6420 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18873 |6420 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18874 |6420 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18875 |6420 |7 |graphid |0 | |NULL |NULL |NULL |1220 |NULL |NULL |NULL |
-ROW |18876 |6421 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18877 |6421 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18878 |6421 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18879 |6421 |7 |graphid |0 | |NULL |NULL |NULL |2295 |NULL |NULL |NULL |
-ROW |18880 |6422 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18881 |6422 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18882 |6422 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18883 |6422 |7 |graphid |0 | |NULL |NULL |NULL |2296 |NULL |NULL |NULL |
-ROW |18884 |6423 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18885 |6423 |6 |graphid |0 | |NULL |NULL |NULL |1091 |NULL |NULL |NULL |
-ROW |18886 |6424 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18887 |6424 |6 |graphid |0 | |NULL |NULL |NULL |1095 |NULL |NULL |NULL |
-ROW |18888 |6425 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18889 |6425 |6 |graphid |0 | |NULL |NULL |NULL |1092 |NULL |NULL |NULL |
-ROW |18890 |6426 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18891 |6426 |6 |graphid |0 | |NULL |NULL |NULL |1094 |NULL |NULL |NULL |
-ROW |18892 |6427 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18893 |6427 |6 |graphid |0 | |NULL |NULL |NULL |1099 |NULL |NULL |NULL |
-ROW |18894 |6428 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18895 |6428 |6 |graphid |0 | |NULL |NULL |NULL |1100 |NULL |NULL |NULL |
-ROW |18896 |6429 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18897 |6429 |6 |graphid |0 | |NULL |NULL |NULL |1101 |NULL |NULL |NULL |
-ROW |18898 |6430 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18899 |6430 |6 |graphid |0 | |NULL |NULL |NULL |1102 |NULL |NULL |NULL |
-ROW |18900 |6431 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18901 |6431 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18902 |6431 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18903 |6431 |7 |graphid |0 | |NULL |NULL |NULL |1090 |NULL |NULL |NULL |
-ROW |18904 |6432 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18905 |6432 |6 |graphid |0 | |NULL |NULL |NULL |1093 |NULL |NULL |NULL |
-ROW |18906 |6433 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18907 |6433 |6 |graphid |0 | |NULL |NULL |NULL |1098 |NULL |NULL |NULL |
-ROW |18908 |6434 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18909 |6434 |6 |graphid |0 | |NULL |NULL |NULL |1096 |NULL |NULL |NULL |
-ROW |18910 |6435 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18911 |6435 |6 |graphid |0 | |NULL |NULL |NULL |1097 |NULL |NULL |NULL |
-ROW |18912 |6436 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18913 |6436 |6 |graphid |0 | |NULL |NULL |NULL |2120 |NULL |NULL |NULL |
-ROW |18914 |6437 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18915 |6437 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18916 |6437 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18917 |6437 |7 |graphid |0 | |NULL |NULL |NULL |2115 |NULL |NULL |NULL |
-ROW |18918 |6438 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18919 |6438 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18920 |6438 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18921 |6438 |7 |graphid |0 | |NULL |NULL |NULL |2114 |NULL |NULL |NULL |
-ROW |18922 |6439 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18923 |6439 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18924 |6439 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18925 |6439 |7 |graphid |0 | |NULL |NULL |NULL |741 |NULL |NULL |NULL |
-ROW |18926 |6440 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18927 |6440 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18928 |6440 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18929 |6440 |7 |graphid |0 | |NULL |NULL |NULL |745 |NULL |NULL |NULL |
-ROW |18930 |6441 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18931 |6441 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18932 |6441 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18933 |6441 |7 |graphid |0 | |NULL |NULL |NULL |766 |NULL |NULL |NULL |
-ROW |18934 |6442 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18935 |6442 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18936 |6442 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18937 |6442 |7 |graphid |0 | |NULL |NULL |NULL |899 |NULL |NULL |NULL |
-ROW |18938 |6443 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18939 |6443 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18940 |6443 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18941 |6443 |7 |graphid |0 | |NULL |NULL |NULL |1287 |NULL |NULL |NULL |
-ROW |18942 |6444 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18943 |6444 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18944 |6444 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18945 |6444 |7 |graphid |0 | |NULL |NULL |NULL |1238 |NULL |NULL |NULL |
-ROW |18946 |6445 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18947 |6445 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18948 |6445 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18949 |6445 |7 |graphid |0 | |NULL |NULL |NULL |1307 |NULL |NULL |NULL |
-ROW |18950 |6446 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18951 |6446 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18952 |6446 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18953 |6446 |7 |graphid |0 | |NULL |NULL |NULL |2123 |NULL |NULL |NULL |
-ROW |18954 |6447 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18955 |6447 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18956 |6447 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18957 |6447 |7 |graphid |0 | |NULL |NULL |NULL |2124 |NULL |NULL |NULL |
-ROW |18958 |6448 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18959 |6448 |6 |graphid |0 | |NULL |NULL |NULL |2127 |NULL |NULL |NULL |
-ROW |18960 |6449 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18961 |6449 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18962 |6449 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18963 |6449 |7 |graphid |0 | |NULL |NULL |NULL |2126 |NULL |NULL |NULL |
-ROW |18964 |6450 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18965 |6450 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18966 |6450 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18967 |6450 |7 |graphid |0 | |NULL |NULL |NULL |2125 |NULL |NULL |NULL |
-ROW |18968 |6451 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18969 |6451 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18970 |6451 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18971 |6451 |7 |graphid |0 | |NULL |NULL |NULL |2128 |NULL |NULL |NULL |
-ROW |18972 |6452 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18973 |6452 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18974 |6452 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18975 |6452 |7 |graphid |0 | |NULL |NULL |NULL |2129 |NULL |NULL |NULL |
-ROW |18976 |6453 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18977 |6453 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18978 |6453 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18979 |6453 |7 |graphid |0 | |NULL |NULL |NULL |2130 |NULL |NULL |NULL |
-ROW |18980 |6454 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18981 |6454 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18982 |6454 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18983 |6454 |7 |graphid |0 | |NULL |NULL |NULL |2138 |NULL |NULL |NULL |
-ROW |18984 |6455 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18985 |6455 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18986 |6455 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18987 |6455 |7 |graphid |0 | |NULL |NULL |NULL |2141 |NULL |NULL |NULL |
-ROW |18988 |6456 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18989 |6456 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18990 |6456 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18991 |6456 |7 |graphid |0 | |NULL |NULL |NULL |2143 |NULL |NULL |NULL |
-ROW |18992 |6457 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18993 |6457 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18994 |6457 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18995 |6457 |7 |graphid |0 | |NULL |NULL |NULL |2144 |NULL |NULL |NULL |
-ROW |18996 |6458 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18997 |6458 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18998 |6458 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |18999 |6458 |7 |graphid |0 | |NULL |NULL |NULL |2145 |NULL |NULL |NULL |
-ROW |19000 |6459 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19001 |6459 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19002 |6459 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19003 |6459 |7 |graphid |0 | |NULL |NULL |NULL |2146 |NULL |NULL |NULL |
-ROW |19004 |6460 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19005 |6460 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19006 |6460 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19007 |6460 |7 |graphid |0 | |NULL |NULL |NULL |2147 |NULL |NULL |NULL |
-ROW |19008 |6461 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19009 |6461 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19010 |6461 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19011 |6461 |7 |graphid |0 | |NULL |NULL |NULL |2148 |NULL |NULL |NULL |
-ROW |19012 |6462 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19013 |6462 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19014 |6462 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19015 |6462 |7 |graphid |0 | |NULL |NULL |NULL |2149 |NULL |NULL |NULL |
-ROW |19016 |6463 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19017 |6463 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19018 |6463 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19019 |6463 |7 |graphid |0 | |NULL |NULL |NULL |2150 |NULL |NULL |NULL |
-ROW |19020 |6464 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19021 |6464 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19022 |6464 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19023 |6464 |7 |graphid |0 | |NULL |NULL |NULL |2151 |NULL |NULL |NULL |
-ROW |19024 |6465 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19025 |6465 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19026 |6465 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19027 |6465 |7 |graphid |0 | |NULL |NULL |NULL |2152 |NULL |NULL |NULL |
-ROW |19028 |6466 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19029 |6466 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19030 |6466 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19031 |6466 |7 |graphid |0 | |NULL |NULL |NULL |1564 |NULL |NULL |NULL |
-ROW |19032 |6467 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19033 |6467 |6 |graphid |0 | |NULL |NULL |NULL |1567 |NULL |NULL |NULL |
-ROW |19034 |6468 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19035 |6468 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19036 |6468 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19037 |6468 |7 |graphid |0 | |NULL |NULL |NULL |1566 |NULL |NULL |NULL |
-ROW |19038 |6469 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19039 |6469 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19040 |6469 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19041 |6469 |7 |graphid |0 | |NULL |NULL |NULL |1565 |NULL |NULL |NULL |
-ROW |19042 |6470 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19043 |6470 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19044 |6470 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19045 |6470 |7 |graphid |0 | |NULL |NULL |NULL |2153 |NULL |NULL |NULL |
-ROW |19046 |6471 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19047 |6471 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19048 |6471 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19049 |6471 |7 |graphid |0 | |NULL |NULL |NULL |2154 |NULL |NULL |NULL |
-ROW |19050 |6472 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19051 |6472 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19052 |6472 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19053 |6472 |7 |graphid |0 | |NULL |NULL |NULL |2155 |NULL |NULL |NULL |
-ROW |19054 |6473 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19055 |6473 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19056 |6473 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19057 |6473 |7 |graphid |0 | |NULL |NULL |NULL |2156 |NULL |NULL |NULL |
-ROW |19058 |6474 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19059 |6474 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19060 |6474 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19061 |6474 |7 |graphid |0 | |NULL |NULL |NULL |2157 |NULL |NULL |NULL |
-ROW |19062 |6475 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19063 |6475 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19064 |6475 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19065 |6475 |7 |graphid |0 | |NULL |NULL |NULL |2158 |NULL |NULL |NULL |
-ROW |19066 |6476 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19067 |6476 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19068 |6476 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19069 |6476 |7 |graphid |0 | |NULL |NULL |NULL |2159 |NULL |NULL |NULL |
-ROW |19070 |6477 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19071 |6477 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19072 |6477 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19073 |6477 |7 |graphid |0 | |NULL |NULL |NULL |2160 |NULL |NULL |NULL |
-ROW |19074 |6478 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19075 |6478 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19076 |6478 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19077 |6478 |7 |graphid |0 | |NULL |NULL |NULL |2161 |NULL |NULL |NULL |
-ROW |19078 |6479 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19079 |6479 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19080 |6479 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19081 |6479 |7 |graphid |0 | |NULL |NULL |NULL |2162 |NULL |NULL |NULL |
-ROW |19082 |6480 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19083 |6480 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19084 |6480 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19085 |6480 |7 |graphid |0 | |NULL |NULL |NULL |2163 |NULL |NULL |NULL |
-ROW |19086 |6481 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19087 |6481 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19088 |6481 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19089 |6481 |7 |graphid |0 | |NULL |NULL |NULL |2164 |NULL |NULL |NULL |
-ROW |19090 |6482 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19091 |6482 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19092 |6482 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19093 |6482 |7 |graphid |0 | |NULL |NULL |NULL |2165 |NULL |NULL |NULL |
-ROW |19094 |6483 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19095 |6483 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19096 |6483 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19097 |6483 |7 |graphid |0 | |NULL |NULL |NULL |2166 |NULL |NULL |NULL |
-ROW |19098 |6484 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19099 |6484 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19100 |6484 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19101 |6484 |7 |graphid |0 | |NULL |NULL |NULL |2167 |NULL |NULL |NULL |
-ROW |19102 |6485 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19103 |6485 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19104 |6485 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19105 |6485 |7 |graphid |0 | |NULL |NULL |NULL |2168 |NULL |NULL |NULL |
-ROW |19106 |6486 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19107 |6486 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19108 |6486 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19109 |6486 |7 |graphid |0 | |NULL |NULL |NULL |2169 |NULL |NULL |NULL |
-ROW |19110 |6487 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19111 |6487 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19112 |6487 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19113 |6487 |7 |graphid |0 | |NULL |NULL |NULL |2170 |NULL |NULL |NULL |
-ROW |19114 |6488 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19115 |6488 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19116 |6488 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19117 |6488 |7 |graphid |0 | |NULL |NULL |NULL |2171 |NULL |NULL |NULL |
-ROW |19118 |6489 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19119 |6489 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19120 |6489 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19121 |6489 |7 |graphid |0 | |NULL |NULL |NULL |2172 |NULL |NULL |NULL |
-ROW |19122 |6490 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19123 |6490 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19124 |6490 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19125 |6490 |7 |graphid |0 | |NULL |NULL |NULL |2173 |NULL |NULL |NULL |
-ROW |19126 |6491 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19127 |6491 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19128 |6491 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19129 |6491 |7 |graphid |0 | |NULL |NULL |NULL |2174 |NULL |NULL |NULL |
-ROW |19130 |6492 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19131 |6492 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19132 |6492 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19133 |6492 |7 |graphid |0 | |NULL |NULL |NULL |2175 |NULL |NULL |NULL |
-ROW |19134 |6493 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19135 |6493 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19136 |6493 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19137 |6493 |7 |graphid |0 | |NULL |NULL |NULL |2176 |NULL |NULL |NULL |
-ROW |19138 |6494 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19139 |6494 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19140 |6494 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19141 |6494 |7 |graphid |0 | |NULL |NULL |NULL |2177 |NULL |NULL |NULL |
-ROW |19142 |6495 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19143 |6495 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19144 |6495 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19145 |6495 |7 |graphid |0 | |NULL |NULL |NULL |2178 |NULL |NULL |NULL |
-ROW |19146 |6496 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19147 |6496 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19148 |6496 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19149 |6496 |7 |graphid |0 | |NULL |NULL |NULL |2179 |NULL |NULL |NULL |
-ROW |19150 |6497 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19151 |6497 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19152 |6497 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19153 |6497 |7 |graphid |0 | |NULL |NULL |NULL |2180 |NULL |NULL |NULL |
-ROW |19154 |6498 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19155 |6498 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19156 |6498 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19157 |6498 |7 |graphid |0 | |NULL |NULL |NULL |2181 |NULL |NULL |NULL |
-ROW |19158 |6499 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19159 |6499 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19160 |6499 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19161 |6499 |7 |graphid |0 | |NULL |NULL |NULL |2182 |NULL |NULL |NULL |
-ROW |19162 |6500 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19163 |6500 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19164 |6500 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19165 |6500 |7 |graphid |0 | |NULL |NULL |NULL |2183 |NULL |NULL |NULL |
-ROW |19166 |6501 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19167 |6501 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19168 |6501 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19169 |6501 |7 |graphid |0 | |NULL |NULL |NULL |2184 |NULL |NULL |NULL |
-ROW |19170 |6502 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19171 |6502 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19172 |6502 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19173 |6502 |7 |graphid |0 | |NULL |NULL |NULL |2185 |NULL |NULL |NULL |
-ROW |19174 |6503 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19175 |6503 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19176 |6503 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19177 |6503 |7 |graphid |0 | |NULL |NULL |NULL |2186 |NULL |NULL |NULL |
-ROW |19178 |6504 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19179 |6504 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19180 |6504 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19181 |6504 |7 |graphid |0 | |NULL |NULL |NULL |2187 |NULL |NULL |NULL |
-ROW |19182 |6505 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19183 |6505 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19184 |6505 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19185 |6505 |7 |graphid |0 | |NULL |NULL |NULL |2188 |NULL |NULL |NULL |
-ROW |19186 |6506 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19187 |6506 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19188 |6506 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19189 |6506 |7 |graphid |0 | |NULL |NULL |NULL |2189 |NULL |NULL |NULL |
-ROW |19190 |6507 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19191 |6507 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19192 |6507 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19193 |6507 |7 |graphid |0 | |NULL |NULL |NULL |2190 |NULL |NULL |NULL |
-ROW |19194 |6508 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19195 |6508 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19196 |6508 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19197 |6508 |7 |graphid |0 | |NULL |NULL |NULL |2191 |NULL |NULL |NULL |
-ROW |19198 |6509 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19199 |6509 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19200 |6509 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19201 |6509 |7 |graphid |0 | |NULL |NULL |NULL |2192 |NULL |NULL |NULL |
-ROW |19202 |6510 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19203 |6510 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19204 |6510 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19205 |6510 |7 |graphid |0 | |NULL |NULL |NULL |2193 |NULL |NULL |NULL |
-ROW |19206 |6511 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19207 |6511 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19208 |6511 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19209 |6511 |7 |graphid |0 | |NULL |NULL |NULL |2194 |NULL |NULL |NULL |
-ROW |19210 |6512 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19211 |6512 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19212 |6512 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19213 |6512 |7 |graphid |0 | |NULL |NULL |NULL |2195 |NULL |NULL |NULL |
-ROW |19214 |6513 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19215 |6513 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19216 |6513 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19217 |6513 |7 |graphid |0 | |NULL |NULL |NULL |2196 |NULL |NULL |NULL |
-ROW |19218 |6514 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19219 |6514 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19220 |6514 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19221 |6514 |7 |graphid |0 | |NULL |NULL |NULL |2197 |NULL |NULL |NULL |
-ROW |19222 |6515 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19223 |6515 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19224 |6515 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19225 |6515 |7 |graphid |0 | |NULL |NULL |NULL |2198 |NULL |NULL |NULL |
-ROW |19226 |6516 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19227 |6516 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19228 |6516 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19229 |6516 |7 |graphid |0 | |NULL |NULL |NULL |2199 |NULL |NULL |NULL |
-ROW |19230 |6517 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19231 |6517 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19232 |6517 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19233 |6517 |7 |graphid |0 | |NULL |NULL |NULL |2200 |NULL |NULL |NULL |
-ROW |19234 |6518 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19235 |6518 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19236 |6518 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19237 |6518 |7 |graphid |0 | |NULL |NULL |NULL |2201 |NULL |NULL |NULL |
-ROW |19238 |6519 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19239 |6519 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19240 |6519 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19241 |6519 |7 |graphid |0 | |NULL |NULL |NULL |2202 |NULL |NULL |NULL |
-ROW |19242 |6520 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19243 |6520 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19244 |6520 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19245 |6520 |7 |graphid |0 | |NULL |NULL |NULL |2203 |NULL |NULL |NULL |
-ROW |19246 |6521 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19247 |6521 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19248 |6521 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19249 |6521 |7 |graphid |0 | |NULL |NULL |NULL |2204 |NULL |NULL |NULL |
-ROW |19250 |6522 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19251 |6522 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19252 |6522 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19253 |6522 |7 |graphid |0 | |NULL |NULL |NULL |2205 |NULL |NULL |NULL |
-ROW |19254 |6523 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19255 |6523 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19256 |6523 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19257 |6523 |7 |graphid |0 | |NULL |NULL |NULL |2206 |NULL |NULL |NULL |
-ROW |19258 |6524 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19259 |6524 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19260 |6524 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19261 |6524 |7 |graphid |0 | |NULL |NULL |NULL |2207 |NULL |NULL |NULL |
-ROW |19262 |6525 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19263 |6525 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19264 |6525 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19265 |6525 |7 |graphid |0 | |NULL |NULL |NULL |2208 |NULL |NULL |NULL |
-ROW |19266 |6526 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19267 |6526 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19268 |6526 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19269 |6526 |7 |graphid |0 | |NULL |NULL |NULL |2209 |NULL |NULL |NULL |
-ROW |19270 |6527 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19271 |6527 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19272 |6527 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19273 |6527 |7 |graphid |0 | |NULL |NULL |NULL |2210 |NULL |NULL |NULL |
-ROW |19274 |6528 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19275 |6528 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19276 |6528 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19277 |6528 |7 |graphid |0 | |NULL |NULL |NULL |2211 |NULL |NULL |NULL |
-ROW |19278 |6529 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19279 |6529 |6 |graphid |0 | |NULL |NULL |NULL |469 |NULL |NULL |NULL |
-ROW |19280 |6530 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19281 |6530 |6 |graphid |0 | |NULL |NULL |NULL |471 |NULL |NULL |NULL |
-ROW |19282 |6531 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19283 |6531 |6 |graphid |0 | |NULL |NULL |NULL |498 |NULL |NULL |NULL |
-ROW |19284 |6532 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19285 |6532 |6 |graphid |0 | |NULL |NULL |NULL |540 |NULL |NULL |NULL |
-ROW |19286 |6533 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19287 |6533 |6 |graphid |0 | |NULL |NULL |NULL |463 |NULL |NULL |NULL |
-ROW |19288 |6534 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19289 |6534 |6 |graphid |0 | |NULL |NULL |NULL |462 |NULL |NULL |NULL |
-ROW |19290 |6535 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19291 |6535 |6 |graphid |0 | |NULL |NULL |NULL |541 |NULL |NULL |NULL |
-ROW |19292 |6536 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19293 |6536 |6 |graphid |0 | |NULL |NULL |NULL |464 |NULL |NULL |NULL |
-ROW |19294 |6537 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19295 |6537 |6 |graphid |0 | |NULL |NULL |NULL |475 |NULL |NULL |NULL |
-ROW |19296 |6538 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19297 |6538 |6 |graphid |0 | |NULL |NULL |NULL |474 |NULL |NULL |NULL |
-ROW |19298 |6539 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19299 |6539 |6 |graphid |0 | |NULL |NULL |NULL |542 |NULL |NULL |NULL |
-ROW |19300 |6540 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19301 |6540 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19302 |6540 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19303 |6540 |7 |graphid |0 | |NULL |NULL |NULL |2212 |NULL |NULL |NULL |
-ROW |19304 |6541 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19305 |6541 |6 |graphid |0 | |NULL |NULL |NULL |2229 |NULL |NULL |NULL |
-ROW |19306 |6542 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19307 |6542 |6 |graphid |0 | |NULL |NULL |NULL |2223 |NULL |NULL |NULL |
-ROW |19308 |6543 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19309 |6543 |6 |graphid |0 | |NULL |NULL |NULL |2225 |NULL |NULL |NULL |
-ROW |19310 |6544 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19311 |6544 |6 |graphid |0 | |NULL |NULL |NULL |2228 |NULL |NULL |NULL |
-ROW |19312 |6545 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19313 |6545 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19314 |6545 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19315 |6545 |7 |graphid |0 | |NULL |NULL |NULL |2216 |NULL |NULL |NULL |
-ROW |19316 |6546 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19317 |6546 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19318 |6546 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19319 |6546 |7 |graphid |0 | |NULL |NULL |NULL |2214 |NULL |NULL |NULL |
-ROW |19320 |6547 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19321 |6547 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19322 |6547 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19323 |6547 |7 |graphid |0 | |NULL |NULL |NULL |2213 |NULL |NULL |NULL |
-ROW |19324 |6548 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19325 |6548 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19326 |6548 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19327 |6548 |7 |graphid |0 | |NULL |NULL |NULL |2215 |NULL |NULL |NULL |
-ROW |19328 |6549 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19329 |6549 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19330 |6549 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19331 |6549 |7 |graphid |0 | |NULL |NULL |NULL |2212 |NULL |NULL |NULL |
-ROW |19332 |6550 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19333 |6550 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19334 |6550 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19335 |6550 |7 |graphid |0 | |NULL |NULL |NULL |2238 |NULL |NULL |NULL |
-ROW |19336 |6551 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19337 |6551 |6 |graphid |0 | |NULL |NULL |NULL |2250 |NULL |NULL |NULL |
-ROW |19338 |6552 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19339 |6552 |6 |graphid |0 | |NULL |NULL |NULL |2244 |NULL |NULL |NULL |
-ROW |19340 |6553 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19341 |6553 |6 |graphid |0 | |NULL |NULL |NULL |2246 |NULL |NULL |NULL |
-ROW |19342 |6554 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19343 |6554 |6 |graphid |0 | |NULL |NULL |NULL |2249 |NULL |NULL |NULL |
-ROW |19344 |6555 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19345 |6555 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19346 |6555 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19347 |6555 |7 |graphid |0 | |NULL |NULL |NULL |2242 |NULL |NULL |NULL |
-ROW |19348 |6556 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19349 |6556 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19350 |6556 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19351 |6556 |7 |graphid |0 | |NULL |NULL |NULL |2240 |NULL |NULL |NULL |
-ROW |19352 |6557 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19353 |6557 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19354 |6557 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19355 |6557 |7 |graphid |0 | |NULL |NULL |NULL |2239 |NULL |NULL |NULL |
-ROW |19356 |6558 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19357 |6558 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19358 |6558 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19359 |6558 |7 |graphid |0 | |NULL |NULL |NULL |2241 |NULL |NULL |NULL |
-ROW |19360 |6559 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19361 |6559 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19362 |6559 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19363 |6559 |7 |graphid |0 | |NULL |NULL |NULL |2238 |NULL |NULL |NULL |
-ROW |19364 |6560 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19365 |6560 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19366 |6560 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19367 |6560 |7 |graphid |0 | |NULL |NULL |NULL |952 |NULL |NULL |NULL |
-ROW |19368 |6561 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19369 |6561 |6 |graphid |0 | |NULL |NULL |NULL |957 |NULL |NULL |NULL |
-ROW |19370 |6562 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19371 |6562 |6 |graphid |0 | |NULL |NULL |NULL |959 |NULL |NULL |NULL |
-ROW |19372 |6563 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19373 |6563 |6 |graphid |0 | |NULL |NULL |NULL |962 |NULL |NULL |NULL |
-ROW |19374 |6564 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19375 |6564 |6 |graphid |0 | |NULL |NULL |NULL |963 |NULL |NULL |NULL |
-ROW |19376 |6565 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19377 |6565 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19378 |6565 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19379 |6565 |7 |graphid |0 | |NULL |NULL |NULL |953 |NULL |NULL |NULL |
-ROW |19380 |6566 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19381 |6566 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19382 |6566 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19383 |6566 |7 |graphid |0 | |NULL |NULL |NULL |954 |NULL |NULL |NULL |
-ROW |19384 |6567 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19385 |6567 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19386 |6567 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19387 |6567 |7 |graphid |0 | |NULL |NULL |NULL |955 |NULL |NULL |NULL |
-ROW |19388 |6568 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19389 |6568 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19390 |6568 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19391 |6568 |7 |graphid |0 | |NULL |NULL |NULL |956 |NULL |NULL |NULL |
-ROW |19392 |6569 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19393 |6569 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19394 |6569 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19395 |6569 |7 |graphid |0 | |NULL |NULL |NULL |952 |NULL |NULL |NULL |
-ROW |19396 |6570 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19397 |6570 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19398 |6570 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19399 |6570 |7 |graphid |0 | |NULL |NULL |NULL |2253 |NULL |NULL |NULL |
-ROW |19400 |6571 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19401 |6571 |6 |graphid |0 | |NULL |NULL |NULL |2260 |NULL |NULL |NULL |
-ROW |19402 |6572 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19403 |6572 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19404 |6572 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19405 |6572 |7 |graphid |0 | |NULL |NULL |NULL |2251 |NULL |NULL |NULL |
-ROW |19406 |6573 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19407 |6573 |6 |graphid |0 | |NULL |NULL |NULL |2257 |NULL |NULL |NULL |
-ROW |19408 |6574 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19409 |6574 |6 |graphid |0 | |NULL |NULL |NULL |2259 |NULL |NULL |NULL |
-ROW |19410 |6575 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19411 |6575 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19412 |6575 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19413 |6575 |7 |graphid |0 | |NULL |NULL |NULL |2255 |NULL |NULL |NULL |
-ROW |19414 |6576 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19415 |6576 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19416 |6576 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19417 |6576 |7 |graphid |0 | |NULL |NULL |NULL |2254 |NULL |NULL |NULL |
-ROW |19418 |6577 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19419 |6577 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19420 |6577 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19421 |6577 |5 |itemid |0 | |NULL |NULL |42436 |NULL |NULL |NULL |NULL |
-ROW |19422 |6578 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19423 |6578 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19424 |6578 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19425 |6578 |7 |graphid |0 | |NULL |NULL |NULL |2253 |NULL |NULL |NULL |
-ROW |19426 |6579 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19427 |6579 |6 |graphid |0 | |NULL |NULL |NULL |487 |NULL |NULL |NULL |
-ROW |19428 |6580 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19429 |6580 |6 |graphid |0 | |NULL |NULL |NULL |543 |NULL |NULL |NULL |
-ROW |19430 |6581 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19431 |6581 |6 |graphid |0 | |NULL |NULL |NULL |457 |NULL |NULL |NULL |
-ROW |19432 |6582 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19433 |6582 |6 |graphid |0 | |NULL |NULL |NULL |456 |NULL |NULL |NULL |
-ROW |19434 |6583 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19435 |6583 |6 |graphid |0 | |NULL |NULL |NULL |544 |NULL |NULL |NULL |
-ROW |19436 |6584 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19437 |6584 |6 |graphid |0 | |NULL |NULL |NULL |458 |NULL |NULL |NULL |
-ROW |19438 |6585 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19439 |6585 |6 |graphid |0 | |NULL |NULL |NULL |481 |NULL |NULL |NULL |
-ROW |19440 |6586 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19441 |6586 |6 |graphid |0 | |NULL |NULL |NULL |480 |NULL |NULL |NULL |
-ROW |19442 |6587 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19443 |6587 |6 |graphid |0 | |NULL |NULL |NULL |545 |NULL |NULL |NULL |
-ROW |19444 |6588 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19445 |6588 |6 |graphid |0 | |NULL |NULL |NULL |482 |NULL |NULL |NULL |
-ROW |19446 |6589 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19447 |6589 |4 |itemid |0 | |NULL |NULL |22998 |NULL |NULL |NULL |NULL |
-ROW |19448 |6590 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19449 |6590 |4 |itemid |0 | |NULL |NULL |22997 |NULL |NULL |NULL |NULL |
-ROW |19450 |6591 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19451 |6591 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19452 |6591 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19453 |6591 |7 |graphid |0 | |NULL |NULL |NULL |2261 |NULL |NULL |NULL |
-ROW |19454 |6592 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19455 |6592 |6 |graphid |0 | |NULL |NULL |NULL |2268 |NULL |NULL |NULL |
-ROW |19456 |6593 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19457 |6593 |4 |itemid |0 | |NULL |NULL |42472 |NULL |NULL |NULL |NULL |
-ROW |19458 |6594 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19459 |6594 |6 |graphid |0 | |NULL |NULL |NULL |2270 |NULL |NULL |NULL |
-ROW |19460 |6595 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19461 |6595 |6 |graphid |0 | |NULL |NULL |NULL |2271 |NULL |NULL |NULL |
-ROW |19462 |6596 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19463 |6596 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19464 |6596 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19465 |6596 |7 |graphid |0 | |NULL |NULL |NULL |2266 |NULL |NULL |NULL |
-ROW |19466 |6597 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19467 |6597 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19468 |6597 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19469 |6597 |7 |graphid |0 | |NULL |NULL |NULL |2264 |NULL |NULL |NULL |
-ROW |19470 |6598 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19471 |6598 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19472 |6598 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19473 |6598 |7 |graphid |0 | |NULL |NULL |NULL |2265 |NULL |NULL |NULL |
-ROW |19474 |6599 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19475 |6599 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19476 |6599 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19477 |6599 |7 |graphid |0 | |NULL |NULL |NULL |2261 |NULL |NULL |NULL |
-ROW |19478 |6600 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19479 |6600 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19480 |6600 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19481 |6600 |7 |graphid |0 | |NULL |NULL |NULL |2272 |NULL |NULL |NULL |
-ROW |19482 |6601 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19483 |6601 |6 |graphid |0 | |NULL |NULL |NULL |2279 |NULL |NULL |NULL |
-ROW |19484 |6602 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19485 |6602 |4 |itemid |0 | |NULL |NULL |42528 |NULL |NULL |NULL |NULL |
-ROW |19486 |6603 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19487 |6603 |6 |graphid |0 | |NULL |NULL |NULL |2281 |NULL |NULL |NULL |
-ROW |19488 |6604 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19489 |6604 |6 |graphid |0 | |NULL |NULL |NULL |2282 |NULL |NULL |NULL |
-ROW |19490 |6605 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19491 |6605 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19492 |6605 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19493 |6605 |7 |graphid |0 | |NULL |NULL |NULL |2277 |NULL |NULL |NULL |
-ROW |19494 |6606 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19495 |6606 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19496 |6606 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19497 |6606 |7 |graphid |0 | |NULL |NULL |NULL |2275 |NULL |NULL |NULL |
-ROW |19498 |6607 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19499 |6607 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19500 |6607 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19501 |6607 |7 |graphid |0 | |NULL |NULL |NULL |2276 |NULL |NULL |NULL |
-ROW |19502 |6608 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19503 |6608 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19504 |6608 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19505 |6608 |7 |graphid |0 | |NULL |NULL |NULL |2272 |NULL |NULL |NULL |
-ROW |19506 |6609 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19507 |6609 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19508 |6609 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19509 |6609 |7 |graphid |0 | |NULL |NULL |NULL |2283 |NULL |NULL |NULL |
-ROW |19510 |6610 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19511 |6610 |6 |graphid |0 | |NULL |NULL |NULL |2286 |NULL |NULL |NULL |
-ROW |19512 |6611 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19513 |6611 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19514 |6611 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19515 |6611 |7 |graphid |0 | |NULL |NULL |NULL |2285 |NULL |NULL |NULL |
-ROW |19516 |6612 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19517 |6612 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19518 |6612 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19519 |6612 |7 |graphid |0 | |NULL |NULL |NULL |2284 |NULL |NULL |NULL |
-ROW |19520 |6613 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19521 |6613 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19522 |6613 |4 |itemids |0 | |NULL |NULL |34453 |NULL |NULL |NULL |NULL |
-ROW |19523 |6614 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19524 |6614 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19525 |6614 |4 |itemids |0 | |NULL |NULL |34468 |NULL |NULL |NULL |NULL |
-ROW |19526 |6615 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19527 |6615 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19528 |6615 |4 |itemids |0 | |NULL |NULL |34452 |NULL |NULL |NULL |NULL |
-ROW |19529 |6616 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19530 |6616 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19531 |6616 |4 |itemids |0 | |NULL |NULL |34471 |NULL |NULL |NULL |NULL |
-ROW |19532 |6617 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19533 |6617 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19534 |6617 |4 |itemids |0 | |NULL |NULL |34472 |NULL |NULL |NULL |NULL |
-ROW |19535 |6618 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19536 |6618 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19537 |6618 |4 |itemids |0 | |NULL |NULL |34474 |NULL |NULL |NULL |NULL |
-ROW |19538 |6619 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19539 |6619 |6 |graphid |0 | |NULL |NULL |NULL |1583 |NULL |NULL |NULL |
-ROW |19540 |6620 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19541 |6620 |6 |graphid |0 | |NULL |NULL |NULL |1585 |NULL |NULL |NULL |
-ROW |19542 |6621 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19543 |6621 |6 |graphid |0 | |NULL |NULL |NULL |1584 |NULL |NULL |NULL |
-ROW |19544 |6622 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19545 |6622 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19546 |6622 |4 |itemids |0 | |NULL |NULL |34501 |NULL |NULL |NULL |NULL |
-ROW |19547 |6623 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19548 |6623 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19549 |6623 |4 |itemids |0 | |NULL |NULL |34516 |NULL |NULL |NULL |NULL |
-ROW |19550 |6624 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19551 |6624 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19552 |6624 |4 |itemids |0 | |NULL |NULL |34500 |NULL |NULL |NULL |NULL |
-ROW |19553 |6625 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19554 |6625 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19555 |6625 |4 |itemids |0 | |NULL |NULL |34519 |NULL |NULL |NULL |NULL |
-ROW |19556 |6626 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19557 |6626 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19558 |6626 |4 |itemids |0 | |NULL |NULL |34520 |NULL |NULL |NULL |NULL |
-ROW |19559 |6627 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19560 |6627 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19561 |6627 |4 |itemids |0 | |NULL |NULL |34522 |NULL |NULL |NULL |NULL |
-ROW |19562 |6628 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19563 |6628 |6 |graphid |0 | |NULL |NULL |NULL |1586 |NULL |NULL |NULL |
-ROW |19564 |6629 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19565 |6629 |6 |graphid |0 | |NULL |NULL |NULL |1588 |NULL |NULL |NULL |
-ROW |19566 |6630 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19567 |6630 |6 |graphid |0 | |NULL |NULL |NULL |1587 |NULL |NULL |NULL |
-ROW |19568 |6631 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19569 |6631 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19570 |6631 |4 |itemids |0 | |NULL |NULL |34549 |NULL |NULL |NULL |NULL |
-ROW |19571 |6632 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19572 |6632 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19573 |6632 |4 |itemids |0 | |NULL |NULL |34564 |NULL |NULL |NULL |NULL |
-ROW |19574 |6633 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19575 |6633 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19576 |6633 |4 |itemids |0 | |NULL |NULL |34548 |NULL |NULL |NULL |NULL |
-ROW |19577 |6634 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19578 |6634 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19579 |6634 |4 |itemids |0 | |NULL |NULL |34567 |NULL |NULL |NULL |NULL |
-ROW |19580 |6635 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19581 |6635 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19582 |6635 |4 |itemids |0 | |NULL |NULL |34568 |NULL |NULL |NULL |NULL |
-ROW |19583 |6636 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19584 |6636 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19585 |6636 |4 |itemids |0 | |NULL |NULL |34570 |NULL |NULL |NULL |NULL |
-ROW |19586 |6637 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19587 |6637 |6 |graphid |0 | |NULL |NULL |NULL |1589 |NULL |NULL |NULL |
-ROW |19588 |6638 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19589 |6638 |6 |graphid |0 | |NULL |NULL |NULL |1591 |NULL |NULL |NULL |
-ROW |19590 |6639 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19591 |6639 |6 |graphid |0 | |NULL |NULL |NULL |1590 |NULL |NULL |NULL |
-ROW |19592 |6640 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19593 |6640 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19594 |6640 |4 |itemids |0 | |NULL |NULL |34597 |NULL |NULL |NULL |NULL |
-ROW |19595 |6641 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19596 |6641 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19597 |6641 |4 |itemids |0 | |NULL |NULL |34612 |NULL |NULL |NULL |NULL |
-ROW |19598 |6642 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19599 |6642 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19600 |6642 |4 |itemids |0 | |NULL |NULL |34596 |NULL |NULL |NULL |NULL |
-ROW |19601 |6643 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19602 |6643 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19603 |6643 |4 |itemids |0 | |NULL |NULL |34615 |NULL |NULL |NULL |NULL |
-ROW |19604 |6644 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19605 |6644 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19606 |6644 |4 |itemids |0 | |NULL |NULL |34616 |NULL |NULL |NULL |NULL |
-ROW |19607 |6645 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19608 |6645 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19609 |6645 |4 |itemids |0 | |NULL |NULL |34618 |NULL |NULL |NULL |NULL |
-ROW |19610 |6646 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19611 |6646 |6 |graphid |0 | |NULL |NULL |NULL |1592 |NULL |NULL |NULL |
-ROW |19612 |6647 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19613 |6647 |6 |graphid |0 | |NULL |NULL |NULL |1594 |NULL |NULL |NULL |
-ROW |19614 |6648 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19615 |6648 |6 |graphid |0 | |NULL |NULL |NULL |1593 |NULL |NULL |NULL |
-ROW |19616 |6649 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19617 |6649 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19618 |6649 |4 |itemids |0 | |NULL |NULL |34645 |NULL |NULL |NULL |NULL |
-ROW |19619 |6650 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19620 |6650 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19621 |6650 |4 |itemids |0 | |NULL |NULL |34660 |NULL |NULL |NULL |NULL |
-ROW |19622 |6651 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19623 |6651 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19624 |6651 |4 |itemids |0 | |NULL |NULL |34644 |NULL |NULL |NULL |NULL |
-ROW |19625 |6652 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19626 |6652 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19627 |6652 |4 |itemids |0 | |NULL |NULL |34663 |NULL |NULL |NULL |NULL |
-ROW |19628 |6653 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19629 |6653 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19630 |6653 |4 |itemids |0 | |NULL |NULL |34664 |NULL |NULL |NULL |NULL |
-ROW |19631 |6654 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19632 |6654 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19633 |6654 |4 |itemids |0 | |NULL |NULL |34666 |NULL |NULL |NULL |NULL |
-ROW |19634 |6655 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19635 |6655 |6 |graphid |0 | |NULL |NULL |NULL |1595 |NULL |NULL |NULL |
-ROW |19636 |6656 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19637 |6656 |6 |graphid |0 | |NULL |NULL |NULL |1597 |NULL |NULL |NULL |
-ROW |19638 |6657 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19639 |6657 |6 |graphid |0 | |NULL |NULL |NULL |1596 |NULL |NULL |NULL |
-ROW |19640 |6658 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19641 |6658 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19642 |6658 |4 |itemids |0 | |NULL |NULL |35018 |NULL |NULL |NULL |NULL |
-ROW |19643 |6659 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19644 |6659 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19645 |6659 |4 |itemids |0 | |NULL |NULL |35033 |NULL |NULL |NULL |NULL |
-ROW |19646 |6660 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19647 |6660 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19648 |6660 |4 |itemids |0 | |NULL |NULL |35017 |NULL |NULL |NULL |NULL |
-ROW |19649 |6661 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19650 |6661 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19651 |6661 |4 |itemids |0 | |NULL |NULL |35036 |NULL |NULL |NULL |NULL |
-ROW |19652 |6662 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19653 |6662 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19654 |6662 |4 |itemids |0 | |NULL |NULL |35037 |NULL |NULL |NULL |NULL |
-ROW |19655 |6663 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19656 |6663 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19657 |6663 |4 |itemids |0 | |NULL |NULL |35039 |NULL |NULL |NULL |NULL |
-ROW |19658 |6664 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19659 |6664 |6 |graphid |0 | |NULL |NULL |NULL |1619 |NULL |NULL |NULL |
-ROW |19660 |6665 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19661 |6665 |6 |graphid |0 | |NULL |NULL |NULL |1621 |NULL |NULL |NULL |
-ROW |19662 |6666 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19663 |6666 |6 |graphid |0 | |NULL |NULL |NULL |1620 |NULL |NULL |NULL |
-ROW |19664 |6667 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19665 |6667 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19666 |6667 |4 |itemids |0 | |NULL |NULL |34741 |NULL |NULL |NULL |NULL |
-ROW |19667 |6668 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19668 |6668 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19669 |6668 |4 |itemids |0 | |NULL |NULL |34756 |NULL |NULL |NULL |NULL |
-ROW |19670 |6669 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19671 |6669 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19672 |6669 |4 |itemids |0 | |NULL |NULL |34740 |NULL |NULL |NULL |NULL |
-ROW |19673 |6670 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19674 |6670 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19675 |6670 |4 |itemids |0 | |NULL |NULL |34759 |NULL |NULL |NULL |NULL |
-ROW |19676 |6671 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19677 |6671 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19678 |6671 |4 |itemids |0 | |NULL |NULL |34760 |NULL |NULL |NULL |NULL |
-ROW |19679 |6672 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19680 |6672 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19681 |6672 |4 |itemids |0 | |NULL |NULL |34762 |NULL |NULL |NULL |NULL |
-ROW |19682 |6673 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19683 |6673 |6 |graphid |0 | |NULL |NULL |NULL |1601 |NULL |NULL |NULL |
-ROW |19684 |6674 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19685 |6674 |6 |graphid |0 | |NULL |NULL |NULL |1603 |NULL |NULL |NULL |
-ROW |19686 |6675 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19687 |6675 |6 |graphid |0 | |NULL |NULL |NULL |1602 |NULL |NULL |NULL |
-ROW |19688 |6676 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19689 |6676 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19690 |6676 |4 |itemids |0 | |NULL |NULL |34181 |NULL |NULL |NULL |NULL |
-ROW |19691 |6677 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19692 |6677 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19693 |6677 |4 |itemids |0 | |NULL |NULL |34196 |NULL |NULL |NULL |NULL |
-ROW |19694 |6678 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19695 |6678 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19696 |6678 |4 |itemids |0 | |NULL |NULL |34191 |NULL |NULL |NULL |NULL |
-ROW |19697 |6679 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19698 |6679 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19699 |6679 |4 |itemids |0 | |NULL |NULL |34202 |NULL |NULL |NULL |NULL |
-ROW |19700 |6680 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19701 |6680 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19702 |6680 |4 |itemids |0 | |NULL |NULL |34203 |NULL |NULL |NULL |NULL |
-ROW |19703 |6681 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19704 |6681 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19705 |6681 |4 |itemids |0 | |NULL |NULL |34205 |NULL |NULL |NULL |NULL |
-ROW |19706 |6682 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19707 |6682 |6 |graphid |0 | |NULL |NULL |NULL |1604 |NULL |NULL |NULL |
-ROW |19708 |6683 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19709 |6683 |6 |graphid |0 | |NULL |NULL |NULL |1570 |NULL |NULL |NULL |
-ROW |19710 |6684 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19711 |6684 |6 |graphid |0 | |NULL |NULL |NULL |1569 |NULL |NULL |NULL |
-ROW |19712 |6685 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19713 |6685 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19714 |6685 |4 |itemids |0 | |NULL |NULL |34795 |NULL |NULL |NULL |NULL |
-ROW |19715 |6686 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19716 |6686 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19717 |6686 |4 |itemids |0 | |NULL |NULL |34810 |NULL |NULL |NULL |NULL |
-ROW |19718 |6687 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19719 |6687 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19720 |6687 |4 |itemids |0 | |NULL |NULL |34794 |NULL |NULL |NULL |NULL |
-ROW |19721 |6688 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19722 |6688 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19723 |6688 |4 |itemids |0 | |NULL |NULL |34813 |NULL |NULL |NULL |NULL |
-ROW |19724 |6689 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19725 |6689 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19726 |6689 |4 |itemids |0 | |NULL |NULL |34814 |NULL |NULL |NULL |NULL |
-ROW |19727 |6690 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19728 |6690 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19729 |6690 |4 |itemids |0 | |NULL |NULL |34816 |NULL |NULL |NULL |NULL |
-ROW |19730 |6691 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19731 |6691 |6 |graphid |0 | |NULL |NULL |NULL |1605 |NULL |NULL |NULL |
-ROW |19732 |6692 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19733 |6692 |6 |graphid |0 | |NULL |NULL |NULL |1607 |NULL |NULL |NULL |
-ROW |19734 |6693 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19735 |6693 |6 |graphid |0 | |NULL |NULL |NULL |1606 |NULL |NULL |NULL |
-ROW |19736 |6694 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19737 |6694 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19738 |6694 |4 |itemids |0 | |NULL |NULL |34843 |NULL |NULL |NULL |NULL |
-ROW |19739 |6695 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19740 |6695 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19741 |6695 |4 |itemids |0 | |NULL |NULL |34858 |NULL |NULL |NULL |NULL |
-ROW |19742 |6696 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19743 |6696 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19744 |6696 |4 |itemids |0 | |NULL |NULL |34842 |NULL |NULL |NULL |NULL |
-ROW |19745 |6697 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19746 |6697 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19747 |6697 |4 |itemids |0 | |NULL |NULL |34861 |NULL |NULL |NULL |NULL |
-ROW |19748 |6698 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19749 |6698 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19750 |6698 |4 |itemids |0 | |NULL |NULL |34862 |NULL |NULL |NULL |NULL |
-ROW |19751 |6699 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19752 |6699 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19753 |6699 |4 |itemids |0 | |NULL |NULL |34864 |NULL |NULL |NULL |NULL |
-ROW |19754 |6700 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19755 |6700 |6 |graphid |0 | |NULL |NULL |NULL |1608 |NULL |NULL |NULL |
-ROW |19756 |6701 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19757 |6701 |6 |graphid |0 | |NULL |NULL |NULL |1610 |NULL |NULL |NULL |
-ROW |19758 |6702 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19759 |6702 |6 |graphid |0 | |NULL |NULL |NULL |1609 |NULL |NULL |NULL |
-ROW |19760 |6703 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19761 |6703 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19762 |6703 |4 |itemids |0 | |NULL |NULL |34891 |NULL |NULL |NULL |NULL |
-ROW |19763 |6704 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19764 |6704 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19765 |6704 |4 |itemids |0 | |NULL |NULL |34906 |NULL |NULL |NULL |NULL |
-ROW |19766 |6705 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19767 |6705 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19768 |6705 |4 |itemids |0 | |NULL |NULL |34890 |NULL |NULL |NULL |NULL |
-ROW |19769 |6706 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19770 |6706 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19771 |6706 |4 |itemids |0 | |NULL |NULL |34909 |NULL |NULL |NULL |NULL |
-ROW |19772 |6707 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19773 |6707 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19774 |6707 |4 |itemids |0 | |NULL |NULL |34910 |NULL |NULL |NULL |NULL |
-ROW |19775 |6708 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19776 |6708 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19777 |6708 |4 |itemids |0 | |NULL |NULL |34912 |NULL |NULL |NULL |NULL |
-ROW |19778 |6709 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19779 |6709 |6 |graphid |0 | |NULL |NULL |NULL |1611 |NULL |NULL |NULL |
-ROW |19780 |6710 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19781 |6710 |6 |graphid |0 | |NULL |NULL |NULL |1613 |NULL |NULL |NULL |
-ROW |19782 |6711 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19783 |6711 |6 |graphid |0 | |NULL |NULL |NULL |1612 |NULL |NULL |NULL |
-ROW |19784 |6712 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19785 |6712 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19786 |6712 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
-ROW |19787 |6712 |7 |graphid |0 | |NULL |NULL |NULL |1805 |NULL |NULL |NULL |
+ROW |19788 |6713 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19789 |6713 |6 |graphid |0 | |NULL |NULL |NULL |1174 |NULL |NULL |NULL |
+ROW |19790 |6714 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19791 |6714 |6 |graphid |0 | |NULL |NULL |NULL |1176 |NULL |NULL |NULL |
+ROW |19792 |6715 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19793 |6715 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19794 |6715 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19795 |6715 |7 |graphid |0 | |NULL |NULL |NULL |1172 |NULL |NULL |NULL |
+ROW |19796 |6716 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19797 |6716 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19798 |6716 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19799 |6716 |7 |graphid |0 | |NULL |NULL |NULL |1173 |NULL |NULL |NULL |
+ROW |19800 |6717 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19801 |6717 |6 |graphid |0 | |NULL |NULL |NULL |1175 |NULL |NULL |NULL |
+ROW |19802 |6718 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19803 |6718 |6 |graphid |0 | |NULL |NULL |NULL |838 |NULL |NULL |NULL |
+ROW |19804 |6719 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19805 |6719 |6 |graphid |0 | |NULL |NULL |NULL |839 |NULL |NULL |NULL |
+ROW |19806 |6720 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19807 |6720 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19808 |6720 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19809 |6720 |7 |graphid |0 | |NULL |NULL |NULL |836 |NULL |NULL |NULL |
+ROW |19810 |6721 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19811 |6721 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19812 |6721 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19813 |6721 |7 |graphid |0 | |NULL |NULL |NULL |837 |NULL |NULL |NULL |
+ROW |19814 |6722 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19815 |6722 |6 |graphid |0 | |NULL |NULL |NULL |840 |NULL |NULL |NULL |
+ROW |19816 |6723 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19817 |6723 |6 |graphid |0 | |NULL |NULL |NULL |1622 |NULL |NULL |NULL |
+ROW |19818 |6724 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19819 |6724 |6 |graphid |0 | |NULL |NULL |NULL |1628 |NULL |NULL |NULL |
+ROW |19820 |6725 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19821 |6725 |6 |graphid |0 | |NULL |NULL |NULL |1624 |NULL |NULL |NULL |
+ROW |19822 |6726 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19823 |6726 |6 |graphid |0 | |NULL |NULL |NULL |1623 |NULL |NULL |NULL |
+ROW |19824 |6727 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19825 |6727 |6 |graphid |0 | |NULL |NULL |NULL |1626 |NULL |NULL |NULL |
+ROW |19826 |6728 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19827 |6728 |6 |graphid |0 | |NULL |NULL |NULL |1627 |NULL |NULL |NULL |
+ROW |19828 |6729 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19829 |6729 |6 |graphid |0 | |NULL |NULL |NULL |1625 |NULL |NULL |NULL |
+ROW |19830 |6730 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19831 |6730 |6 |graphid |0 | |NULL |NULL |NULL |1125 |NULL |NULL |NULL |
+ROW |19832 |6731 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19833 |6731 |6 |graphid |0 | |NULL |NULL |NULL |1129 |NULL |NULL |NULL |
+ROW |19834 |6732 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19835 |6732 |6 |graphid |0 | |NULL |NULL |NULL |1128 |NULL |NULL |NULL |
+ROW |19836 |6733 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19837 |6733 |6 |graphid |0 | |NULL |NULL |NULL |1126 |NULL |NULL |NULL |
+ROW |19838 |6734 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19839 |6734 |6 |graphid |0 | |NULL |NULL |NULL |1127 |NULL |NULL |NULL |
+ROW |19840 |6735 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19841 |6735 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19842 |6735 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19843 |6735 |7 |graphid |0 | |NULL |NULL |NULL |1075 |NULL |NULL |NULL |
+ROW |19844 |6736 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19845 |6736 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19846 |6736 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19847 |6736 |7 |graphid |0 | |NULL |NULL |NULL |1630 |NULL |NULL |NULL |
+ROW |19848 |6737 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19849 |6737 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19850 |6737 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19851 |6737 |7 |graphid |0 | |NULL |NULL |NULL |1629 |NULL |NULL |NULL |
+ROW |19852 |6738 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19853 |6738 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19854 |6738 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19855 |6738 |7 |graphid |0 | |NULL |NULL |NULL |1078 |NULL |NULL |NULL |
+ROW |19856 |6739 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19857 |6739 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19858 |6739 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19859 |6739 |7 |graphid |0 | |NULL |NULL |NULL |1076 |NULL |NULL |NULL |
+ROW |19860 |6740 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19861 |6740 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19862 |6740 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19863 |6740 |7 |graphid |0 | |NULL |NULL |NULL |1079 |NULL |NULL |NULL |
+ROW |19864 |6741 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19865 |6741 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19866 |6741 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19867 |6741 |7 |graphid |0 | |NULL |NULL |NULL |1077 |NULL |NULL |NULL |
+ROW |19868 |6742 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19869 |6742 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19870 |6742 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19871 |6742 |7 |graphid |0 | |NULL |NULL |NULL |1080 |NULL |NULL |NULL |
+ROW |19872 |6743 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19873 |6743 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19874 |6743 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19875 |6743 |7 |graphid |0 | |NULL |NULL |NULL |1632 |NULL |NULL |NULL |
+ROW |19876 |6744 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19877 |6744 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19878 |6744 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19879 |6744 |7 |graphid |0 | |NULL |NULL |NULL |1631 |NULL |NULL |NULL |
+ROW |19880 |6745 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19881 |6745 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19882 |6745 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19883 |6745 |7 |graphid |0 | |NULL |NULL |NULL |1081 |NULL |NULL |NULL |
+ROW |19884 |6746 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19885 |6746 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19886 |6746 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19887 |6746 |7 |graphid |0 | |NULL |NULL |NULL |1634 |NULL |NULL |NULL |
+ROW |19888 |6747 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19889 |6747 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19890 |6747 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19891 |6747 |7 |graphid |0 | |NULL |NULL |NULL |1633 |NULL |NULL |NULL |
+ROW |19892 |6748 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19893 |6748 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19894 |6748 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19895 |6748 |7 |graphid |0 | |NULL |NULL |NULL |1084 |NULL |NULL |NULL |
+ROW |19896 |6749 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19897 |6749 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19898 |6749 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19899 |6749 |7 |graphid |0 | |NULL |NULL |NULL |1082 |NULL |NULL |NULL |
+ROW |19900 |6750 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19901 |6750 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19902 |6750 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19903 |6750 |7 |graphid |0 | |NULL |NULL |NULL |1085 |NULL |NULL |NULL |
+ROW |19904 |6751 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19905 |6751 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19906 |6751 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19907 |6751 |7 |graphid |0 | |NULL |NULL |NULL |1083 |NULL |NULL |NULL |
+ROW |19908 |6752 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19909 |6752 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19910 |6752 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19911 |6752 |7 |graphid |0 | |NULL |NULL |NULL |1086 |NULL |NULL |NULL |
+ROW |19912 |6753 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19913 |6753 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19914 |6753 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19915 |6753 |7 |graphid |0 | |NULL |NULL |NULL |1636 |NULL |NULL |NULL |
+ROW |19916 |6754 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19917 |6754 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19918 |6754 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19919 |6754 |7 |graphid |0 | |NULL |NULL |NULL |1635 |NULL |NULL |NULL |
+ROW |19920 |6755 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19921 |6755 |6 |graphid |0 | |NULL |NULL |NULL |841 |NULL |NULL |NULL |
+ROW |19922 |6756 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19923 |6756 |6 |graphid |0 | |NULL |NULL |NULL |843 |NULL |NULL |NULL |
+ROW |19924 |6757 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19925 |6757 |6 |graphid |0 | |NULL |NULL |NULL |842 |NULL |NULL |NULL |
+ROW |19926 |6758 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19927 |6758 |6 |graphid |0 | |NULL |NULL |NULL |845 |NULL |NULL |NULL |
+ROW |19928 |6759 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19929 |6759 |6 |graphid |0 | |NULL |NULL |NULL |847 |NULL |NULL |NULL |
+ROW |19930 |6760 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19931 |6760 |6 |graphid |0 | |NULL |NULL |NULL |846 |NULL |NULL |NULL |
+ROW |19932 |6761 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19933 |6761 |6 |graphid |0 | |NULL |NULL |NULL |1029 |NULL |NULL |NULL |
+ROW |19934 |6762 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19935 |6762 |6 |graphid |0 | |NULL |NULL |NULL |1027 |NULL |NULL |NULL |
+ROW |19936 |6763 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19937 |6763 |6 |graphid |0 | |NULL |NULL |NULL |1030 |NULL |NULL |NULL |
+ROW |19938 |6764 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19939 |6764 |6 |graphid |0 | |NULL |NULL |NULL |1028 |NULL |NULL |NULL |
+ROW |19940 |6765 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19941 |6765 |6 |graphid |0 | |NULL |NULL |NULL |1031 |NULL |NULL |NULL |
+ROW |19942 |6766 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19943 |6766 |6 |graphid |0 | |NULL |NULL |NULL |1011 |NULL |NULL |NULL |
+ROW |19944 |6767 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19945 |6767 |6 |graphid |0 | |NULL |NULL |NULL |1012 |NULL |NULL |NULL |
+ROW |19946 |6768 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19947 |6768 |6 |graphid |0 | |NULL |NULL |NULL |1008 |NULL |NULL |NULL |
+ROW |19948 |6769 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19949 |6769 |6 |graphid |0 | |NULL |NULL |NULL |1009 |NULL |NULL |NULL |
+ROW |19950 |6770 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19951 |6770 |6 |graphid |0 | |NULL |NULL |NULL |1007 |NULL |NULL |NULL |
+ROW |19952 |6771 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19953 |6771 |6 |graphid |0 | |NULL |NULL |NULL |1010 |NULL |NULL |NULL |
+ROW |19954 |6772 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19955 |6772 |6 |graphid |0 | |NULL |NULL |NULL |1018 |NULL |NULL |NULL |
+ROW |19956 |6773 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19957 |6773 |6 |graphid |0 | |NULL |NULL |NULL |1016 |NULL |NULL |NULL |
+ROW |19958 |6774 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19959 |6774 |6 |graphid |0 | |NULL |NULL |NULL |1019 |NULL |NULL |NULL |
+ROW |19960 |6775 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19961 |6775 |6 |graphid |0 | |NULL |NULL |NULL |1017 |NULL |NULL |NULL |
+ROW |19962 |6776 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19963 |6776 |6 |graphid |0 | |NULL |NULL |NULL |1020 |NULL |NULL |NULL |
+ROW |19964 |6777 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19965 |6777 |6 |graphid |0 | |NULL |NULL |NULL |1025 |NULL |NULL |NULL |
+ROW |19966 |6778 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19967 |6778 |6 |graphid |0 | |NULL |NULL |NULL |1026 |NULL |NULL |NULL |
+ROW |19968 |6779 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19969 |6779 |6 |graphid |0 | |NULL |NULL |NULL |1022 |NULL |NULL |NULL |
+ROW |19970 |6780 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19971 |6780 |6 |graphid |0 | |NULL |NULL |NULL |1023 |NULL |NULL |NULL |
+ROW |19972 |6781 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19973 |6781 |6 |graphid |0 | |NULL |NULL |NULL |1021 |NULL |NULL |NULL |
+ROW |19974 |6782 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19975 |6782 |6 |graphid |0 | |NULL |NULL |NULL |1024 |NULL |NULL |NULL |
+ROW |19976 |6783 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19977 |6783 |6 |graphid |0 | |NULL |NULL |NULL |532 |NULL |NULL |NULL |
+ROW |19978 |6784 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19979 |6784 |6 |graphid |0 | |NULL |NULL |NULL |530 |NULL |NULL |NULL |
+ROW |19980 |6785 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19981 |6785 |6 |graphid |0 | |NULL |NULL |NULL |531 |NULL |NULL |NULL |
+ROW |19982 |6786 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19983 |6786 |6 |graphid |0 | |NULL |NULL |NULL |529 |NULL |NULL |NULL |
+ROW |19984 |6787 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19985 |6787 |6 |graphid |0 | |NULL |NULL |NULL |806 |NULL |NULL |NULL |
+ROW |19986 |6788 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19987 |6788 |6 |graphid |0 | |NULL |NULL |NULL |804 |NULL |NULL |NULL |
+ROW |19988 |6789 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19989 |6789 |6 |graphid |0 | |NULL |NULL |NULL |805 |NULL |NULL |NULL |
+ROW |19990 |6790 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19991 |6790 |6 |graphid |0 | |NULL |NULL |NULL |803 |NULL |NULL |NULL |
+ROW |19992 |6791 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19993 |6791 |6 |graphid |0 | |NULL |NULL |NULL |392 |NULL |NULL |NULL |
+ROW |19994 |6792 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19995 |6792 |6 |graphid |0 | |NULL |NULL |NULL |404 |NULL |NULL |NULL |
+ROW |19996 |6793 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19997 |6793 |6 |graphid |0 | |NULL |NULL |NULL |406 |NULL |NULL |NULL |
+ROW |19998 |6794 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |19999 |6794 |6 |graphid |0 | |NULL |NULL |NULL |410 |NULL |NULL |NULL |
+ROW |20000 |6795 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20001 |6795 |6 |graphid |0 | |NULL |NULL |NULL |527 |NULL |NULL |NULL |
+ROW |20002 |6796 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20003 |6796 |6 |graphid |0 | |NULL |NULL |NULL |788 |NULL |NULL |NULL |
+ROW |20004 |6797 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20005 |6797 |6 |graphid |0 | |NULL |NULL |NULL |1651 |NULL |NULL |NULL |
+ROW |20006 |6798 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20007 |6798 |6 |graphid |0 | |NULL |NULL |NULL |1653 |NULL |NULL |NULL |
+ROW |20008 |6799 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20009 |6799 |6 |graphid |0 | |NULL |NULL |NULL |1652 |NULL |NULL |NULL |
+ROW |20010 |6800 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20011 |6800 |6 |graphid |0 | |NULL |NULL |NULL |1445 |NULL |NULL |NULL |
+ROW |20012 |6801 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20013 |6801 |6 |graphid |0 | |NULL |NULL |NULL |802 |NULL |NULL |NULL |
+ROW |20014 |6802 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20015 |6802 |6 |graphid |0 | |NULL |NULL |NULL |799 |NULL |NULL |NULL |
+ROW |20016 |6803 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20017 |6803 |6 |graphid |0 | |NULL |NULL |NULL |800 |NULL |NULL |NULL |
+ROW |20018 |6804 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20019 |6804 |6 |graphid |0 | |NULL |NULL |NULL |798 |NULL |NULL |NULL |
+ROW |20020 |6805 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20021 |6805 |6 |graphid |0 | |NULL |NULL |NULL |797 |NULL |NULL |NULL |
+ROW |20022 |6806 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20023 |6806 |6 |graphid |0 | |NULL |NULL |NULL |801 |NULL |NULL |NULL |
+ROW |20024 |6807 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20025 |6807 |6 |graphid |0 | |NULL |NULL |NULL |1659 |NULL |NULL |NULL |
+ROW |20026 |6808 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20027 |6808 |6 |graphid |0 | |NULL |NULL |NULL |1661 |NULL |NULL |NULL |
+ROW |20028 |6809 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20029 |6809 |6 |graphid |0 | |NULL |NULL |NULL |1660 |NULL |NULL |NULL |
+ROW |20030 |6810 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20031 |6810 |6 |graphid |0 | |NULL |NULL |NULL |1444 |NULL |NULL |NULL |
+ROW |20032 |6811 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20033 |6811 |4 |itemid |0 | |NULL |NULL |43118 |NULL |NULL |NULL |NULL |
+ROW |20034 |6812 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20035 |6812 |6 |graphid |0 | |NULL |NULL |NULL |2349 |NULL |NULL |NULL |
+ROW |20036 |6813 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20037 |6813 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20038 |6813 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20039 |6813 |7 |graphid |0 | |NULL |NULL |NULL |2340 |NULL |NULL |NULL |
+ROW |20040 |6814 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20041 |6814 |6 |graphid |0 | |NULL |NULL |NULL |2345 |NULL |NULL |NULL |
+ROW |20042 |6815 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20043 |6815 |6 |graphid |0 | |NULL |NULL |NULL |2346 |NULL |NULL |NULL |
+ROW |20044 |6816 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20045 |6816 |4 |itemid |0 | |NULL |NULL |43121 |NULL |NULL |NULL |NULL |
+ROW |20046 |6817 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20047 |6817 |6 |graphid |0 | |NULL |NULL |NULL |2350 |NULL |NULL |NULL |
+ROW |20048 |6818 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20049 |6818 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20050 |6818 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20051 |6818 |7 |graphid |0 | |NULL |NULL |NULL |2342 |NULL |NULL |NULL |
+ROW |20052 |6819 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20053 |6819 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20054 |6819 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20055 |6819 |5 |itemid |0 | |NULL |NULL |43155 |NULL |NULL |NULL |NULL |
+ROW |20056 |6820 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20057 |6820 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20058 |6820 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20059 |6820 |5 |itemid |0 | |NULL |NULL |43160 |NULL |NULL |NULL |NULL |
+ROW |20060 |6821 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20061 |6821 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20062 |6821 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20063 |6821 |7 |graphid |0 | |NULL |NULL |NULL |2343 |NULL |NULL |NULL |
+ROW |20064 |6822 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20065 |6822 |4 |itemid |0 | |NULL |NULL |43132 |NULL |NULL |NULL |NULL |
+ROW |20066 |6823 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20067 |6823 |6 |graphid |0 | |NULL |NULL |NULL |2349 |NULL |NULL |NULL |
+ROW |20068 |6824 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20069 |6824 |4 |itemid |0 | |NULL |NULL |43128 |NULL |NULL |NULL |NULL |
+ROW |20070 |6825 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20071 |6825 |4 |itemid |0 | |NULL |NULL |43127 |NULL |NULL |NULL |NULL |
+ROW |20072 |6826 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20073 |6826 |4 |itemid |0 | |NULL |NULL |43125 |NULL |NULL |NULL |NULL |
+ROW |20074 |6827 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20075 |6827 |6 |graphid |0 | |NULL |NULL |NULL |2344 |NULL |NULL |NULL |
+ROW |20076 |6828 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20077 |6828 |4 |itemid |0 | |NULL |NULL |43115 |NULL |NULL |NULL |NULL |
+ROW |20078 |6829 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20079 |6829 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20080 |6829 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20081 |6829 |5 |itemid |0 | |NULL |NULL |43149 |NULL |NULL |NULL |NULL |
+ROW |20082 |6830 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20083 |6830 |4 |itemid |0 | |NULL |NULL |43111 |NULL |NULL |NULL |NULL |
+ROW |20084 |6831 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20085 |6831 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20086 |6831 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20087 |6831 |5 |itemid |0 | |NULL |NULL |43150 |NULL |NULL |NULL |NULL |
+ROW |20088 |6832 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20089 |6832 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20090 |6832 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20091 |6832 |5 |itemid |0 | |NULL |NULL |43151 |NULL |NULL |NULL |NULL |
+ROW |20092 |6833 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20093 |6833 |4 |itemid |0 | |NULL |NULL |43090 |NULL |NULL |NULL |NULL |
+ROW |20094 |6834 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20095 |6834 |4 |itemid |0 | |NULL |NULL |43105 |NULL |NULL |NULL |NULL |
+ROW |20096 |6835 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20097 |6835 |4 |itemid |0 | |NULL |NULL |43091 |NULL |NULL |NULL |NULL |
+ROW |20098 |6836 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20099 |6836 |6 |graphid |0 | |NULL |NULL |NULL |2351 |NULL |NULL |NULL |
+ROW |20100 |6837 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20101 |6837 |6 |graphid |0 | |NULL |NULL |NULL |2352 |NULL |NULL |NULL |
+ROW |20102 |6838 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20103 |6838 |4 |itemid |0 | |NULL |NULL |43095 |NULL |NULL |NULL |NULL |
+ROW |20104 |6839 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20105 |6839 |4 |itemid |0 | |NULL |NULL |43092 |NULL |NULL |NULL |NULL |
+ROW |20106 |6840 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20107 |6840 |4 |itemid |0 | |NULL |NULL |43097 |NULL |NULL |NULL |NULL |
+ROW |20108 |6841 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20109 |6841 |6 |graphid |0 | |NULL |NULL |NULL |2353 |NULL |NULL |NULL |
+ROW |20110 |6842 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20111 |6842 |4 |itemid |0 | |NULL |NULL |43137 |NULL |NULL |NULL |NULL |
+ROW |20112 |6843 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20113 |6843 |4 |itemid |0 | |NULL |NULL |43089 |NULL |NULL |NULL |NULL |
+ROW |20114 |6844 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20115 |6844 |4 |itemid |0 | |NULL |NULL |43094 |NULL |NULL |NULL |NULL |
+ROW |20116 |6845 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20117 |6845 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20118 |6845 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20119 |6845 |7 |graphid |0 | |NULL |NULL |NULL |2340 |NULL |NULL |NULL |
+ROW |20120 |6846 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20121 |6846 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20122 |6846 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20123 |6846 |7 |graphid |0 | |NULL |NULL |NULL |2339 |NULL |NULL |NULL |
+ROW |20124 |6847 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20125 |6847 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20126 |6847 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20127 |6847 |5 |itemid |0 | |NULL |NULL |43153 |NULL |NULL |NULL |NULL |
+ROW |20128 |6848 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20129 |6848 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20130 |6848 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20131 |6848 |5 |itemid |0 | |NULL |NULL |43152 |NULL |NULL |NULL |NULL |
+ROW |20132 |6849 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20133 |6849 |6 |graphid |0 | |NULL |NULL |NULL |2347 |NULL |NULL |NULL |
+ROW |20134 |6850 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20135 |6850 |6 |graphid |0 | |NULL |NULL |NULL |2354 |NULL |NULL |NULL |
+ROW |20136 |6851 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20137 |6851 |6 |graphid |0 | |NULL |NULL |NULL |1112 |NULL |NULL |NULL |
+ROW |20138 |6852 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20139 |6852 |6 |graphid |0 | |NULL |NULL |NULL |1113 |NULL |NULL |NULL |
+ROW |20140 |6853 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20141 |6853 |6 |graphid |0 | |NULL |NULL |NULL |1110 |NULL |NULL |NULL |
+ROW |20142 |6854 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20143 |6854 |6 |graphid |0 | |NULL |NULL |NULL |1109 |NULL |NULL |NULL |
+ROW |20144 |6855 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20145 |6855 |6 |graphid |0 | |NULL |NULL |NULL |1111 |NULL |NULL |NULL |
+ROW |20146 |6856 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20147 |6856 |6 |graphid |0 | |NULL |NULL |NULL |1114 |NULL |NULL |NULL |
+ROW |20148 |6857 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20149 |6857 |6 |graphid |0 | |NULL |NULL |NULL |1139 |NULL |NULL |NULL |
+ROW |20150 |6858 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20151 |6858 |6 |graphid |0 | |NULL |NULL |NULL |1140 |NULL |NULL |NULL |
+ROW |20152 |6859 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20153 |6859 |6 |graphid |0 | |NULL |NULL |NULL |1137 |NULL |NULL |NULL |
+ROW |20154 |6860 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20155 |6860 |6 |graphid |0 | |NULL |NULL |NULL |1136 |NULL |NULL |NULL |
+ROW |20156 |6861 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20157 |6861 |6 |graphid |0 | |NULL |NULL |NULL |1138 |NULL |NULL |NULL |
+ROW |20158 |6862 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20159 |6862 |6 |graphid |0 | |NULL |NULL |NULL |1141 |NULL |NULL |NULL |
+ROW |20160 |6863 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20161 |6863 |6 |graphid |0 | |NULL |NULL |NULL |1118 |NULL |NULL |NULL |
+ROW |20162 |6864 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20163 |6864 |6 |graphid |0 | |NULL |NULL |NULL |1119 |NULL |NULL |NULL |
+ROW |20164 |6865 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20165 |6865 |6 |graphid |0 | |NULL |NULL |NULL |1116 |NULL |NULL |NULL |
+ROW |20166 |6866 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20167 |6866 |6 |graphid |0 | |NULL |NULL |NULL |1115 |NULL |NULL |NULL |
+ROW |20168 |6867 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20169 |6867 |6 |graphid |0 | |NULL |NULL |NULL |1117 |NULL |NULL |NULL |
+ROW |20170 |6868 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20171 |6868 |6 |graphid |0 | |NULL |NULL |NULL |1120 |NULL |NULL |NULL |
+ROW |20172 |6869 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20173 |6869 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20174 |6869 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20175 |6869 |7 |graphid |0 | |NULL |NULL |NULL |1387 |NULL |NULL |NULL |
+ROW |20176 |6870 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20177 |6870 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20178 |6870 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20179 |6870 |7 |graphid |0 | |NULL |NULL |NULL |1382 |NULL |NULL |NULL |
+ROW |20180 |6871 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20181 |6871 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20182 |6871 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20183 |6871 |7 |graphid |0 | |NULL |NULL |NULL |1380 |NULL |NULL |NULL |
+ROW |20184 |6872 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20185 |6872 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20186 |6872 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20187 |6872 |7 |graphid |0 | |NULL |NULL |NULL |1386 |NULL |NULL |NULL |
+ROW |20188 |6873 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20189 |6873 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20190 |6873 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20191 |6873 |7 |graphid |0 | |NULL |NULL |NULL |1383 |NULL |NULL |NULL |
+ROW |20192 |6874 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20193 |6874 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20194 |6874 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20195 |6874 |7 |graphid |0 | |NULL |NULL |NULL |1381 |NULL |NULL |NULL |
+ROW |20196 |6875 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20197 |6875 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20198 |6875 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20199 |6875 |7 |graphid |0 | |NULL |NULL |NULL |1384 |NULL |NULL |NULL |
+ROW |20200 |6876 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20201 |6876 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20202 |6876 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20203 |6876 |7 |graphid |0 | |NULL |NULL |NULL |1385 |NULL |NULL |NULL |
+ROW |20204 |6877 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20205 |6877 |6 |graphid |0 | |NULL |NULL |NULL |1390 |NULL |NULL |NULL |
+ROW |20206 |6878 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20207 |6878 |6 |graphid |0 | |NULL |NULL |NULL |1393 |NULL |NULL |NULL |
+ROW |20208 |6879 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20209 |6879 |6 |graphid |0 | |NULL |NULL |NULL |1391 |NULL |NULL |NULL |
+ROW |20210 |6880 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20211 |6880 |6 |graphid |0 | |NULL |NULL |NULL |1394 |NULL |NULL |NULL |
+ROW |20212 |6881 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20213 |6881 |6 |graphid |0 | |NULL |NULL |NULL |1392 |NULL |NULL |NULL |
+ROW |20214 |6882 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20215 |6882 |6 |graphid |0 | |NULL |NULL |NULL |1395 |NULL |NULL |NULL |
+ROW |20216 |6883 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20217 |6883 |6 |graphid |0 | |NULL |NULL |NULL |1388 |NULL |NULL |NULL |
+ROW |20218 |6884 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20219 |6884 |6 |graphid |0 | |NULL |NULL |NULL |1389 |NULL |NULL |NULL |
+ROW |20220 |6885 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20221 |6885 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20222 |6885 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20223 |6885 |7 |graphid |0 | |NULL |NULL |NULL |1221 |NULL |NULL |NULL |
+ROW |20224 |6886 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20225 |6886 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20226 |6886 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20227 |6886 |7 |graphid |0 | |NULL |NULL |NULL |1219 |NULL |NULL |NULL |
+ROW |20228 |6887 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20229 |6887 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20230 |6887 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20231 |6887 |7 |graphid |0 | |NULL |NULL |NULL |1222 |NULL |NULL |NULL |
+ROW |20232 |6888 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20233 |6888 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20234 |6888 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20235 |6888 |7 |graphid |0 | |NULL |NULL |NULL |1220 |NULL |NULL |NULL |
+ROW |20236 |6889 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20237 |6889 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20238 |6889 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20239 |6889 |7 |graphid |0 | |NULL |NULL |NULL |2295 |NULL |NULL |NULL |
+ROW |20240 |6890 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20241 |6890 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20242 |6890 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20243 |6890 |7 |graphid |0 | |NULL |NULL |NULL |2296 |NULL |NULL |NULL |
+ROW |20244 |6891 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20245 |6891 |6 |graphid |0 | |NULL |NULL |NULL |1091 |NULL |NULL |NULL |
+ROW |20246 |6892 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20247 |6892 |6 |graphid |0 | |NULL |NULL |NULL |1095 |NULL |NULL |NULL |
+ROW |20248 |6893 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20249 |6893 |6 |graphid |0 | |NULL |NULL |NULL |1092 |NULL |NULL |NULL |
+ROW |20250 |6894 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20251 |6894 |6 |graphid |0 | |NULL |NULL |NULL |1094 |NULL |NULL |NULL |
+ROW |20252 |6895 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20253 |6895 |6 |graphid |0 | |NULL |NULL |NULL |1099 |NULL |NULL |NULL |
+ROW |20254 |6896 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20255 |6896 |6 |graphid |0 | |NULL |NULL |NULL |1100 |NULL |NULL |NULL |
+ROW |20256 |6897 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20257 |6897 |6 |graphid |0 | |NULL |NULL |NULL |1101 |NULL |NULL |NULL |
+ROW |20258 |6898 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20259 |6898 |6 |graphid |0 | |NULL |NULL |NULL |1102 |NULL |NULL |NULL |
+ROW |20260 |6899 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20261 |6899 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20262 |6899 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20263 |6899 |7 |graphid |0 | |NULL |NULL |NULL |1090 |NULL |NULL |NULL |
+ROW |20264 |6900 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20265 |6900 |6 |graphid |0 | |NULL |NULL |NULL |1093 |NULL |NULL |NULL |
+ROW |20266 |6901 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20267 |6901 |6 |graphid |0 | |NULL |NULL |NULL |1098 |NULL |NULL |NULL |
+ROW |20268 |6902 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20269 |6902 |6 |graphid |0 | |NULL |NULL |NULL |1096 |NULL |NULL |NULL |
+ROW |20270 |6903 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20271 |6903 |6 |graphid |0 | |NULL |NULL |NULL |1097 |NULL |NULL |NULL |
+ROW |20272 |6904 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20273 |6904 |6 |graphid |0 | |NULL |NULL |NULL |2120 |NULL |NULL |NULL |
+ROW |20274 |6905 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20275 |6905 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20276 |6905 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20277 |6905 |7 |graphid |0 | |NULL |NULL |NULL |2115 |NULL |NULL |NULL |
+ROW |20278 |6906 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20279 |6906 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20280 |6906 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20281 |6906 |7 |graphid |0 | |NULL |NULL |NULL |2114 |NULL |NULL |NULL |
+ROW |20282 |6907 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20283 |6907 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20284 |6907 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20285 |6907 |7 |graphid |0 | |NULL |NULL |NULL |741 |NULL |NULL |NULL |
+ROW |20286 |6908 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20287 |6908 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20288 |6908 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20289 |6908 |7 |graphid |0 | |NULL |NULL |NULL |745 |NULL |NULL |NULL |
+ROW |20290 |6909 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20291 |6909 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20292 |6909 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20293 |6909 |7 |graphid |0 | |NULL |NULL |NULL |766 |NULL |NULL |NULL |
+ROW |20294 |6910 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20295 |6910 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20296 |6910 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20297 |6910 |7 |graphid |0 | |NULL |NULL |NULL |899 |NULL |NULL |NULL |
+ROW |20298 |6911 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20299 |6911 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20300 |6911 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20301 |6911 |7 |graphid |0 | |NULL |NULL |NULL |1287 |NULL |NULL |NULL |
+ROW |20302 |6912 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20303 |6912 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20304 |6912 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20305 |6912 |7 |graphid |0 | |NULL |NULL |NULL |1238 |NULL |NULL |NULL |
+ROW |20306 |6913 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20307 |6913 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20308 |6913 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20309 |6913 |7 |graphid |0 | |NULL |NULL |NULL |1307 |NULL |NULL |NULL |
+ROW |20310 |6914 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20311 |6914 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20312 |6914 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20313 |6914 |7 |graphid |0 | |NULL |NULL |NULL |2123 |NULL |NULL |NULL |
+ROW |20314 |6915 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20315 |6915 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20316 |6915 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20317 |6915 |7 |graphid |0 | |NULL |NULL |NULL |2124 |NULL |NULL |NULL |
+ROW |20318 |6916 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20319 |6916 |6 |graphid |0 | |NULL |NULL |NULL |2127 |NULL |NULL |NULL |
+ROW |20320 |6917 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20321 |6917 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20322 |6917 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20323 |6917 |7 |graphid |0 | |NULL |NULL |NULL |2126 |NULL |NULL |NULL |
+ROW |20324 |6918 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20325 |6918 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20326 |6918 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20327 |6918 |7 |graphid |0 | |NULL |NULL |NULL |2125 |NULL |NULL |NULL |
+ROW |20328 |6919 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20329 |6919 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20330 |6919 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20331 |6919 |7 |graphid |0 | |NULL |NULL |NULL |2128 |NULL |NULL |NULL |
+ROW |20332 |6920 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20333 |6920 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20334 |6920 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20335 |6920 |7 |graphid |0 | |NULL |NULL |NULL |2129 |NULL |NULL |NULL |
+ROW |20336 |6921 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20337 |6921 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20338 |6921 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20339 |6921 |7 |graphid |0 | |NULL |NULL |NULL |2130 |NULL |NULL |NULL |
+ROW |20340 |6922 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20341 |6922 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20342 |6922 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20343 |6922 |7 |graphid |0 | |NULL |NULL |NULL |2138 |NULL |NULL |NULL |
+ROW |20344 |6923 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20345 |6923 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20346 |6923 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20347 |6923 |7 |graphid |0 | |NULL |NULL |NULL |2141 |NULL |NULL |NULL |
+ROW |20348 |6924 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20349 |6924 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20350 |6924 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20351 |6924 |7 |graphid |0 | |NULL |NULL |NULL |2143 |NULL |NULL |NULL |
+ROW |20352 |6925 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20353 |6925 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20354 |6925 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20355 |6925 |7 |graphid |0 | |NULL |NULL |NULL |2144 |NULL |NULL |NULL |
+ROW |20356 |6926 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20357 |6926 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20358 |6926 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20359 |6926 |7 |graphid |0 | |NULL |NULL |NULL |2145 |NULL |NULL |NULL |
+ROW |20360 |6927 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20361 |6927 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20362 |6927 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20363 |6927 |7 |graphid |0 | |NULL |NULL |NULL |2146 |NULL |NULL |NULL |
+ROW |20364 |6928 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20365 |6928 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20366 |6928 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20367 |6928 |7 |graphid |0 | |NULL |NULL |NULL |2147 |NULL |NULL |NULL |
+ROW |20368 |6929 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20369 |6929 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20370 |6929 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20371 |6929 |7 |graphid |0 | |NULL |NULL |NULL |2148 |NULL |NULL |NULL |
+ROW |20372 |6930 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20373 |6930 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20374 |6930 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20375 |6930 |7 |graphid |0 | |NULL |NULL |NULL |2149 |NULL |NULL |NULL |
+ROW |20376 |6931 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20377 |6931 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20378 |6931 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20379 |6931 |7 |graphid |0 | |NULL |NULL |NULL |2150 |NULL |NULL |NULL |
+ROW |20380 |6932 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20381 |6932 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20382 |6932 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20383 |6932 |7 |graphid |0 | |NULL |NULL |NULL |2151 |NULL |NULL |NULL |
+ROW |20384 |6933 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20385 |6933 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20386 |6933 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20387 |6933 |7 |graphid |0 | |NULL |NULL |NULL |2152 |NULL |NULL |NULL |
+ROW |20388 |6934 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20389 |6934 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20390 |6934 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20391 |6934 |7 |graphid |0 | |NULL |NULL |NULL |1564 |NULL |NULL |NULL |
+ROW |20392 |6935 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20393 |6935 |6 |graphid |0 | |NULL |NULL |NULL |1567 |NULL |NULL |NULL |
+ROW |20394 |6936 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20395 |6936 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20396 |6936 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20397 |6936 |7 |graphid |0 | |NULL |NULL |NULL |1566 |NULL |NULL |NULL |
+ROW |20398 |6937 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20399 |6937 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20400 |6937 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20401 |6937 |7 |graphid |0 | |NULL |NULL |NULL |1565 |NULL |NULL |NULL |
+ROW |20402 |6938 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20403 |6938 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20404 |6938 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20405 |6938 |7 |graphid |0 | |NULL |NULL |NULL |2153 |NULL |NULL |NULL |
+ROW |20406 |6939 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20407 |6939 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20408 |6939 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20409 |6939 |7 |graphid |0 | |NULL |NULL |NULL |2154 |NULL |NULL |NULL |
+ROW |20410 |6940 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20411 |6940 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20412 |6940 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20413 |6940 |7 |graphid |0 | |NULL |NULL |NULL |2155 |NULL |NULL |NULL |
+ROW |20414 |6941 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20415 |6941 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20416 |6941 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20417 |6941 |7 |graphid |0 | |NULL |NULL |NULL |2156 |NULL |NULL |NULL |
+ROW |20418 |6942 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20419 |6942 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20420 |6942 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20421 |6942 |7 |graphid |0 | |NULL |NULL |NULL |2157 |NULL |NULL |NULL |
+ROW |20422 |6943 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20423 |6943 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20424 |6943 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20425 |6943 |7 |graphid |0 | |NULL |NULL |NULL |2158 |NULL |NULL |NULL |
+ROW |20426 |6944 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20427 |6944 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20428 |6944 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20429 |6944 |7 |graphid |0 | |NULL |NULL |NULL |2159 |NULL |NULL |NULL |
+ROW |20430 |6945 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20431 |6945 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20432 |6945 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20433 |6945 |7 |graphid |0 | |NULL |NULL |NULL |2160 |NULL |NULL |NULL |
+ROW |20434 |6946 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20435 |6946 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20436 |6946 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20437 |6946 |7 |graphid |0 | |NULL |NULL |NULL |2161 |NULL |NULL |NULL |
+ROW |20438 |6947 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20439 |6947 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20440 |6947 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20441 |6947 |7 |graphid |0 | |NULL |NULL |NULL |2162 |NULL |NULL |NULL |
+ROW |20442 |6948 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20443 |6948 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20444 |6948 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20445 |6948 |7 |graphid |0 | |NULL |NULL |NULL |2163 |NULL |NULL |NULL |
+ROW |20446 |6949 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20447 |6949 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20448 |6949 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20449 |6949 |7 |graphid |0 | |NULL |NULL |NULL |2164 |NULL |NULL |NULL |
+ROW |20450 |6950 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20451 |6950 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20452 |6950 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20453 |6950 |7 |graphid |0 | |NULL |NULL |NULL |2165 |NULL |NULL |NULL |
+ROW |20454 |6951 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20455 |6951 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20456 |6951 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20457 |6951 |7 |graphid |0 | |NULL |NULL |NULL |2166 |NULL |NULL |NULL |
+ROW |20458 |6952 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20459 |6952 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20460 |6952 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20461 |6952 |7 |graphid |0 | |NULL |NULL |NULL |2167 |NULL |NULL |NULL |
+ROW |20462 |6953 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20463 |6953 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20464 |6953 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20465 |6953 |7 |graphid |0 | |NULL |NULL |NULL |2168 |NULL |NULL |NULL |
+ROW |20466 |6954 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20467 |6954 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20468 |6954 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20469 |6954 |7 |graphid |0 | |NULL |NULL |NULL |2169 |NULL |NULL |NULL |
+ROW |20470 |6955 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20471 |6955 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20472 |6955 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20473 |6955 |7 |graphid |0 | |NULL |NULL |NULL |2170 |NULL |NULL |NULL |
+ROW |20474 |6956 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20475 |6956 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20476 |6956 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20477 |6956 |7 |graphid |0 | |NULL |NULL |NULL |2171 |NULL |NULL |NULL |
+ROW |20478 |6957 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20479 |6957 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20480 |6957 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20481 |6957 |7 |graphid |0 | |NULL |NULL |NULL |2172 |NULL |NULL |NULL |
+ROW |20482 |6958 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20483 |6958 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20484 |6958 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20485 |6958 |7 |graphid |0 | |NULL |NULL |NULL |2173 |NULL |NULL |NULL |
+ROW |20486 |6959 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20487 |6959 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20488 |6959 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20489 |6959 |7 |graphid |0 | |NULL |NULL |NULL |2174 |NULL |NULL |NULL |
+ROW |20490 |6960 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20491 |6960 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20492 |6960 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20493 |6960 |7 |graphid |0 | |NULL |NULL |NULL |2175 |NULL |NULL |NULL |
+ROW |20494 |6961 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20495 |6961 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20496 |6961 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20497 |6961 |7 |graphid |0 | |NULL |NULL |NULL |2176 |NULL |NULL |NULL |
+ROW |20498 |6962 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20499 |6962 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20500 |6962 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20501 |6962 |7 |graphid |0 | |NULL |NULL |NULL |2177 |NULL |NULL |NULL |
+ROW |20502 |6963 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20503 |6963 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20504 |6963 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20505 |6963 |7 |graphid |0 | |NULL |NULL |NULL |2178 |NULL |NULL |NULL |
+ROW |20506 |6964 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20507 |6964 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20508 |6964 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20509 |6964 |7 |graphid |0 | |NULL |NULL |NULL |2179 |NULL |NULL |NULL |
+ROW |20510 |6965 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20511 |6965 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20512 |6965 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20513 |6965 |7 |graphid |0 | |NULL |NULL |NULL |2180 |NULL |NULL |NULL |
+ROW |20514 |6966 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20515 |6966 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20516 |6966 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20517 |6966 |7 |graphid |0 | |NULL |NULL |NULL |2181 |NULL |NULL |NULL |
+ROW |20518 |6967 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20519 |6967 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20520 |6967 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20521 |6967 |7 |graphid |0 | |NULL |NULL |NULL |2182 |NULL |NULL |NULL |
+ROW |20522 |6968 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20523 |6968 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20524 |6968 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20525 |6968 |7 |graphid |0 | |NULL |NULL |NULL |2183 |NULL |NULL |NULL |
+ROW |20526 |6969 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20527 |6969 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20528 |6969 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20529 |6969 |7 |graphid |0 | |NULL |NULL |NULL |2184 |NULL |NULL |NULL |
+ROW |20530 |6970 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20531 |6970 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20532 |6970 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20533 |6970 |7 |graphid |0 | |NULL |NULL |NULL |2185 |NULL |NULL |NULL |
+ROW |20534 |6971 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20535 |6971 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20536 |6971 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20537 |6971 |7 |graphid |0 | |NULL |NULL |NULL |2186 |NULL |NULL |NULL |
+ROW |20538 |6972 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20539 |6972 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20540 |6972 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20541 |6972 |7 |graphid |0 | |NULL |NULL |NULL |2187 |NULL |NULL |NULL |
+ROW |20542 |6973 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20543 |6973 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20544 |6973 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20545 |6973 |7 |graphid |0 | |NULL |NULL |NULL |2188 |NULL |NULL |NULL |
+ROW |20546 |6974 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20547 |6974 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20548 |6974 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20549 |6974 |7 |graphid |0 | |NULL |NULL |NULL |2189 |NULL |NULL |NULL |
+ROW |20550 |6975 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20551 |6975 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20552 |6975 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20553 |6975 |7 |graphid |0 | |NULL |NULL |NULL |2190 |NULL |NULL |NULL |
+ROW |20554 |6976 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20555 |6976 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20556 |6976 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20557 |6976 |7 |graphid |0 | |NULL |NULL |NULL |2191 |NULL |NULL |NULL |
+ROW |20558 |6977 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20559 |6977 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20560 |6977 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20561 |6977 |7 |graphid |0 | |NULL |NULL |NULL |2192 |NULL |NULL |NULL |
+ROW |20562 |6978 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20563 |6978 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20564 |6978 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20565 |6978 |7 |graphid |0 | |NULL |NULL |NULL |2193 |NULL |NULL |NULL |
+ROW |20566 |6979 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20567 |6979 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20568 |6979 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20569 |6979 |7 |graphid |0 | |NULL |NULL |NULL |2194 |NULL |NULL |NULL |
+ROW |20570 |6980 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20571 |6980 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20572 |6980 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20573 |6980 |7 |graphid |0 | |NULL |NULL |NULL |2195 |NULL |NULL |NULL |
+ROW |20574 |6981 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20575 |6981 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20576 |6981 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20577 |6981 |7 |graphid |0 | |NULL |NULL |NULL |2196 |NULL |NULL |NULL |
+ROW |20578 |6982 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20579 |6982 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20580 |6982 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20581 |6982 |7 |graphid |0 | |NULL |NULL |NULL |2197 |NULL |NULL |NULL |
+ROW |20582 |6983 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20583 |6983 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20584 |6983 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20585 |6983 |7 |graphid |0 | |NULL |NULL |NULL |2198 |NULL |NULL |NULL |
+ROW |20586 |6984 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20587 |6984 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20588 |6984 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20589 |6984 |7 |graphid |0 | |NULL |NULL |NULL |2199 |NULL |NULL |NULL |
+ROW |20590 |6985 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20591 |6985 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20592 |6985 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20593 |6985 |7 |graphid |0 | |NULL |NULL |NULL |2200 |NULL |NULL |NULL |
+ROW |20594 |6986 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20595 |6986 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20596 |6986 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20597 |6986 |7 |graphid |0 | |NULL |NULL |NULL |2201 |NULL |NULL |NULL |
+ROW |20598 |6987 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20599 |6987 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20600 |6987 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20601 |6987 |7 |graphid |0 | |NULL |NULL |NULL |2202 |NULL |NULL |NULL |
+ROW |20602 |6988 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20603 |6988 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20604 |6988 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20605 |6988 |7 |graphid |0 | |NULL |NULL |NULL |2203 |NULL |NULL |NULL |
+ROW |20606 |6989 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20607 |6989 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20608 |6989 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20609 |6989 |7 |graphid |0 | |NULL |NULL |NULL |2204 |NULL |NULL |NULL |
+ROW |20610 |6990 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20611 |6990 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20612 |6990 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20613 |6990 |7 |graphid |0 | |NULL |NULL |NULL |2205 |NULL |NULL |NULL |
+ROW |20614 |6991 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20615 |6991 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20616 |6991 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20617 |6991 |7 |graphid |0 | |NULL |NULL |NULL |2206 |NULL |NULL |NULL |
+ROW |20618 |6992 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20619 |6992 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20620 |6992 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20621 |6992 |7 |graphid |0 | |NULL |NULL |NULL |2207 |NULL |NULL |NULL |
+ROW |20622 |6993 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20623 |6993 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20624 |6993 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20625 |6993 |7 |graphid |0 | |NULL |NULL |NULL |2208 |NULL |NULL |NULL |
+ROW |20626 |6994 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20627 |6994 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20628 |6994 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20629 |6994 |7 |graphid |0 | |NULL |NULL |NULL |2209 |NULL |NULL |NULL |
+ROW |20630 |6995 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20631 |6995 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20632 |6995 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20633 |6995 |7 |graphid |0 | |NULL |NULL |NULL |2210 |NULL |NULL |NULL |
+ROW |20634 |6996 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20635 |6996 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20636 |6996 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20637 |6996 |7 |graphid |0 | |NULL |NULL |NULL |2211 |NULL |NULL |NULL |
+ROW |20638 |6997 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20639 |6997 |6 |graphid |0 | |NULL |NULL |NULL |469 |NULL |NULL |NULL |
+ROW |20640 |6998 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20641 |6998 |6 |graphid |0 | |NULL |NULL |NULL |471 |NULL |NULL |NULL |
+ROW |20642 |6999 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20643 |6999 |6 |graphid |0 | |NULL |NULL |NULL |498 |NULL |NULL |NULL |
+ROW |20644 |7000 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20645 |7000 |6 |graphid |0 | |NULL |NULL |NULL |540 |NULL |NULL |NULL |
+ROW |20646 |7001 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20647 |7001 |6 |graphid |0 | |NULL |NULL |NULL |463 |NULL |NULL |NULL |
+ROW |20648 |7002 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20649 |7002 |6 |graphid |0 | |NULL |NULL |NULL |462 |NULL |NULL |NULL |
+ROW |20650 |7003 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20651 |7003 |6 |graphid |0 | |NULL |NULL |NULL |541 |NULL |NULL |NULL |
+ROW |20652 |7004 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20653 |7004 |6 |graphid |0 | |NULL |NULL |NULL |464 |NULL |NULL |NULL |
+ROW |20654 |7005 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20655 |7005 |6 |graphid |0 | |NULL |NULL |NULL |475 |NULL |NULL |NULL |
+ROW |20656 |7006 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20657 |7006 |6 |graphid |0 | |NULL |NULL |NULL |474 |NULL |NULL |NULL |
+ROW |20658 |7007 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20659 |7007 |6 |graphid |0 | |NULL |NULL |NULL |542 |NULL |NULL |NULL |
+ROW |20660 |7008 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20661 |7008 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20662 |7008 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20663 |7008 |7 |graphid |0 | |NULL |NULL |NULL |2212 |NULL |NULL |NULL |
+ROW |20664 |7009 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20665 |7009 |6 |graphid |0 | |NULL |NULL |NULL |2229 |NULL |NULL |NULL |
+ROW |20666 |7010 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20667 |7010 |6 |graphid |0 | |NULL |NULL |NULL |2223 |NULL |NULL |NULL |
+ROW |20668 |7011 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20669 |7011 |6 |graphid |0 | |NULL |NULL |NULL |2225 |NULL |NULL |NULL |
+ROW |20670 |7012 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20671 |7012 |6 |graphid |0 | |NULL |NULL |NULL |2228 |NULL |NULL |NULL |
+ROW |20672 |7013 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20673 |7013 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20674 |7013 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20675 |7013 |7 |graphid |0 | |NULL |NULL |NULL |2216 |NULL |NULL |NULL |
+ROW |20676 |7014 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20677 |7014 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20678 |7014 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20679 |7014 |7 |graphid |0 | |NULL |NULL |NULL |2214 |NULL |NULL |NULL |
+ROW |20680 |7015 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20681 |7015 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20682 |7015 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20683 |7015 |7 |graphid |0 | |NULL |NULL |NULL |2213 |NULL |NULL |NULL |
+ROW |20684 |7016 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20685 |7016 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20686 |7016 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20687 |7016 |7 |graphid |0 | |NULL |NULL |NULL |2215 |NULL |NULL |NULL |
+ROW |20688 |7017 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20689 |7017 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20690 |7017 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20691 |7017 |7 |graphid |0 | |NULL |NULL |NULL |2212 |NULL |NULL |NULL |
+ROW |20692 |7018 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20693 |7018 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20694 |7018 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20695 |7018 |7 |graphid |0 | |NULL |NULL |NULL |2238 |NULL |NULL |NULL |
+ROW |20696 |7019 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20697 |7019 |6 |graphid |0 | |NULL |NULL |NULL |2250 |NULL |NULL |NULL |
+ROW |20698 |7020 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20699 |7020 |6 |graphid |0 | |NULL |NULL |NULL |2244 |NULL |NULL |NULL |
+ROW |20700 |7021 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20701 |7021 |6 |graphid |0 | |NULL |NULL |NULL |2246 |NULL |NULL |NULL |
+ROW |20702 |7022 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20703 |7022 |6 |graphid |0 | |NULL |NULL |NULL |2249 |NULL |NULL |NULL |
+ROW |20704 |7023 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20705 |7023 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20706 |7023 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20707 |7023 |7 |graphid |0 | |NULL |NULL |NULL |2242 |NULL |NULL |NULL |
+ROW |20708 |7024 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20709 |7024 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20710 |7024 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20711 |7024 |7 |graphid |0 | |NULL |NULL |NULL |2240 |NULL |NULL |NULL |
+ROW |20712 |7025 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20713 |7025 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20714 |7025 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20715 |7025 |7 |graphid |0 | |NULL |NULL |NULL |2239 |NULL |NULL |NULL |
+ROW |20716 |7026 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20717 |7026 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20718 |7026 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20719 |7026 |7 |graphid |0 | |NULL |NULL |NULL |2241 |NULL |NULL |NULL |
+ROW |20720 |7027 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20721 |7027 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20722 |7027 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20723 |7027 |7 |graphid |0 | |NULL |NULL |NULL |2238 |NULL |NULL |NULL |
+ROW |20724 |7028 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20725 |7028 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20726 |7028 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20727 |7028 |7 |graphid |0 | |NULL |NULL |NULL |952 |NULL |NULL |NULL |
+ROW |20728 |7029 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20729 |7029 |6 |graphid |0 | |NULL |NULL |NULL |957 |NULL |NULL |NULL |
+ROW |20730 |7030 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20731 |7030 |6 |graphid |0 | |NULL |NULL |NULL |959 |NULL |NULL |NULL |
+ROW |20732 |7031 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20733 |7031 |6 |graphid |0 | |NULL |NULL |NULL |962 |NULL |NULL |NULL |
+ROW |20734 |7032 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20735 |7032 |6 |graphid |0 | |NULL |NULL |NULL |963 |NULL |NULL |NULL |
+ROW |20736 |7033 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20737 |7033 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20738 |7033 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20739 |7033 |7 |graphid |0 | |NULL |NULL |NULL |953 |NULL |NULL |NULL |
+ROW |20740 |7034 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20741 |7034 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20742 |7034 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20743 |7034 |7 |graphid |0 | |NULL |NULL |NULL |954 |NULL |NULL |NULL |
+ROW |20744 |7035 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20745 |7035 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20746 |7035 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20747 |7035 |7 |graphid |0 | |NULL |NULL |NULL |955 |NULL |NULL |NULL |
+ROW |20748 |7036 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20749 |7036 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20750 |7036 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20751 |7036 |7 |graphid |0 | |NULL |NULL |NULL |956 |NULL |NULL |NULL |
+ROW |20752 |7037 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20753 |7037 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20754 |7037 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20755 |7037 |7 |graphid |0 | |NULL |NULL |NULL |952 |NULL |NULL |NULL |
+ROW |20756 |7038 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20757 |7038 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20758 |7038 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20759 |7038 |7 |graphid |0 | |NULL |NULL |NULL |2253 |NULL |NULL |NULL |
+ROW |20760 |7039 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20761 |7039 |6 |graphid |0 | |NULL |NULL |NULL |2260 |NULL |NULL |NULL |
+ROW |20762 |7040 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20763 |7040 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20764 |7040 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20765 |7040 |7 |graphid |0 | |NULL |NULL |NULL |2251 |NULL |NULL |NULL |
+ROW |20766 |7041 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20767 |7041 |6 |graphid |0 | |NULL |NULL |NULL |2257 |NULL |NULL |NULL |
+ROW |20768 |7042 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20769 |7042 |6 |graphid |0 | |NULL |NULL |NULL |2259 |NULL |NULL |NULL |
+ROW |20770 |7043 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20771 |7043 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20772 |7043 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20773 |7043 |7 |graphid |0 | |NULL |NULL |NULL |2255 |NULL |NULL |NULL |
+ROW |20774 |7044 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20775 |7044 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20776 |7044 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20777 |7044 |7 |graphid |0 | |NULL |NULL |NULL |2254 |NULL |NULL |NULL |
+ROW |20778 |7045 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20779 |7045 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20780 |7045 |0 |source_type |3 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20781 |7045 |5 |itemid |0 | |NULL |NULL |42436 |NULL |NULL |NULL |NULL |
+ROW |20782 |7046 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20783 |7046 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20784 |7046 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20785 |7046 |7 |graphid |0 | |NULL |NULL |NULL |2253 |NULL |NULL |NULL |
+ROW |20786 |7047 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20787 |7047 |6 |graphid |0 | |NULL |NULL |NULL |487 |NULL |NULL |NULL |
+ROW |20788 |7048 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20789 |7048 |6 |graphid |0 | |NULL |NULL |NULL |543 |NULL |NULL |NULL |
+ROW |20790 |7049 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20791 |7049 |6 |graphid |0 | |NULL |NULL |NULL |457 |NULL |NULL |NULL |
+ROW |20792 |7050 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20793 |7050 |6 |graphid |0 | |NULL |NULL |NULL |456 |NULL |NULL |NULL |
+ROW |20794 |7051 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20795 |7051 |6 |graphid |0 | |NULL |NULL |NULL |544 |NULL |NULL |NULL |
+ROW |20796 |7052 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20797 |7052 |6 |graphid |0 | |NULL |NULL |NULL |458 |NULL |NULL |NULL |
+ROW |20798 |7053 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20799 |7053 |6 |graphid |0 | |NULL |NULL |NULL |481 |NULL |NULL |NULL |
+ROW |20800 |7054 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20801 |7054 |6 |graphid |0 | |NULL |NULL |NULL |480 |NULL |NULL |NULL |
+ROW |20802 |7055 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20803 |7055 |6 |graphid |0 | |NULL |NULL |NULL |545 |NULL |NULL |NULL |
+ROW |20804 |7056 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20805 |7056 |6 |graphid |0 | |NULL |NULL |NULL |482 |NULL |NULL |NULL |
+ROW |20806 |7057 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20807 |7057 |4 |itemid |0 | |NULL |NULL |22998 |NULL |NULL |NULL |NULL |
+ROW |20808 |7058 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20809 |7058 |4 |itemid |0 | |NULL |NULL |22997 |NULL |NULL |NULL |NULL |
+ROW |20810 |7059 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20811 |7059 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20812 |7059 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20813 |7059 |7 |graphid |0 | |NULL |NULL |NULL |2261 |NULL |NULL |NULL |
+ROW |20814 |7060 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20815 |7060 |6 |graphid |0 | |NULL |NULL |NULL |2268 |NULL |NULL |NULL |
+ROW |20816 |7061 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20817 |7061 |4 |itemid |0 | |NULL |NULL |42472 |NULL |NULL |NULL |NULL |
+ROW |20818 |7062 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20819 |7062 |6 |graphid |0 | |NULL |NULL |NULL |2270 |NULL |NULL |NULL |
+ROW |20820 |7063 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20821 |7063 |6 |graphid |0 | |NULL |NULL |NULL |2271 |NULL |NULL |NULL |
+ROW |20822 |7064 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20823 |7064 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20824 |7064 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20825 |7064 |7 |graphid |0 | |NULL |NULL |NULL |2266 |NULL |NULL |NULL |
+ROW |20826 |7065 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20827 |7065 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20828 |7065 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20829 |7065 |7 |graphid |0 | |NULL |NULL |NULL |2264 |NULL |NULL |NULL |
+ROW |20830 |7066 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20831 |7066 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20832 |7066 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20833 |7066 |7 |graphid |0 | |NULL |NULL |NULL |2265 |NULL |NULL |NULL |
+ROW |20834 |7067 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20835 |7067 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20836 |7067 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20837 |7067 |7 |graphid |0 | |NULL |NULL |NULL |2261 |NULL |NULL |NULL |
+ROW |20838 |7068 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20839 |7068 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20840 |7068 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20841 |7068 |7 |graphid |0 | |NULL |NULL |NULL |2272 |NULL |NULL |NULL |
+ROW |20842 |7069 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20843 |7069 |6 |graphid |0 | |NULL |NULL |NULL |2279 |NULL |NULL |NULL |
+ROW |20844 |7070 |0 |source_type |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20845 |7070 |4 |itemid |0 | |NULL |NULL |42528 |NULL |NULL |NULL |NULL |
+ROW |20846 |7071 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20847 |7071 |6 |graphid |0 | |NULL |NULL |NULL |2281 |NULL |NULL |NULL |
+ROW |20848 |7072 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20849 |7072 |6 |graphid |0 | |NULL |NULL |NULL |2282 |NULL |NULL |NULL |
+ROW |20850 |7073 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20851 |7073 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20852 |7073 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20853 |7073 |7 |graphid |0 | |NULL |NULL |NULL |2277 |NULL |NULL |NULL |
+ROW |20854 |7074 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20855 |7074 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20856 |7074 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20857 |7074 |7 |graphid |0 | |NULL |NULL |NULL |2275 |NULL |NULL |NULL |
+ROW |20858 |7075 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20859 |7075 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20860 |7075 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20861 |7075 |7 |graphid |0 | |NULL |NULL |NULL |2276 |NULL |NULL |NULL |
+ROW |20862 |7076 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20863 |7076 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20864 |7076 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20865 |7076 |7 |graphid |0 | |NULL |NULL |NULL |2272 |NULL |NULL |NULL |
+ROW |20866 |7077 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20867 |7077 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20868 |7077 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20869 |7077 |7 |graphid |0 | |NULL |NULL |NULL |2283 |NULL |NULL |NULL |
+ROW |20870 |7078 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20871 |7078 |6 |graphid |0 | |NULL |NULL |NULL |2286 |NULL |NULL |NULL |
+ROW |20872 |7079 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20873 |7079 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20874 |7079 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20875 |7079 |7 |graphid |0 | |NULL |NULL |NULL |2285 |NULL |NULL |NULL |
+ROW |20876 |7080 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20877 |7080 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20878 |7080 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20879 |7080 |7 |graphid |0 | |NULL |NULL |NULL |2284 |NULL |NULL |NULL |
+ROW |20880 |7081 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20881 |7081 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20882 |7081 |4 |itemids |0 | |NULL |NULL |34453 |NULL |NULL |NULL |NULL |
+ROW |20883 |7082 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20884 |7082 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20885 |7082 |4 |itemids |0 | |NULL |NULL |34468 |NULL |NULL |NULL |NULL |
+ROW |20886 |7083 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20887 |7083 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20888 |7083 |4 |itemids |0 | |NULL |NULL |34452 |NULL |NULL |NULL |NULL |
+ROW |20889 |7084 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20890 |7084 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20891 |7084 |4 |itemids |0 | |NULL |NULL |34471 |NULL |NULL |NULL |NULL |
+ROW |20892 |7085 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20893 |7085 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20894 |7085 |4 |itemids |0 | |NULL |NULL |34472 |NULL |NULL |NULL |NULL |
+ROW |20895 |7086 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20896 |7086 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20897 |7086 |4 |itemids |0 | |NULL |NULL |34474 |NULL |NULL |NULL |NULL |
+ROW |20898 |7087 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20899 |7087 |6 |graphid |0 | |NULL |NULL |NULL |1583 |NULL |NULL |NULL |
+ROW |20900 |7088 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20901 |7088 |6 |graphid |0 | |NULL |NULL |NULL |1585 |NULL |NULL |NULL |
+ROW |20902 |7089 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20903 |7089 |6 |graphid |0 | |NULL |NULL |NULL |1584 |NULL |NULL |NULL |
+ROW |20904 |7090 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20905 |7090 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20906 |7090 |4 |itemids |0 | |NULL |NULL |34501 |NULL |NULL |NULL |NULL |
+ROW |20907 |7091 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20908 |7091 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20909 |7091 |4 |itemids |0 | |NULL |NULL |34516 |NULL |NULL |NULL |NULL |
+ROW |20910 |7092 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20911 |7092 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20912 |7092 |4 |itemids |0 | |NULL |NULL |34500 |NULL |NULL |NULL |NULL |
+ROW |20913 |7093 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20914 |7093 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20915 |7093 |4 |itemids |0 | |NULL |NULL |34519 |NULL |NULL |NULL |NULL |
+ROW |20916 |7094 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20917 |7094 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20918 |7094 |4 |itemids |0 | |NULL |NULL |34520 |NULL |NULL |NULL |NULL |
+ROW |20919 |7095 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20920 |7095 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20921 |7095 |4 |itemids |0 | |NULL |NULL |34522 |NULL |NULL |NULL |NULL |
+ROW |20922 |7096 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20923 |7096 |6 |graphid |0 | |NULL |NULL |NULL |1586 |NULL |NULL |NULL |
+ROW |20924 |7097 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20925 |7097 |6 |graphid |0 | |NULL |NULL |NULL |1588 |NULL |NULL |NULL |
+ROW |20926 |7098 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20927 |7098 |6 |graphid |0 | |NULL |NULL |NULL |1587 |NULL |NULL |NULL |
+ROW |20928 |7099 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20929 |7099 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20930 |7099 |4 |itemids |0 | |NULL |NULL |34549 |NULL |NULL |NULL |NULL |
+ROW |20931 |7100 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20932 |7100 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20933 |7100 |4 |itemids |0 | |NULL |NULL |34564 |NULL |NULL |NULL |NULL |
+ROW |20934 |7101 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20935 |7101 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20936 |7101 |4 |itemids |0 | |NULL |NULL |34548 |NULL |NULL |NULL |NULL |
+ROW |20937 |7102 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20938 |7102 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20939 |7102 |4 |itemids |0 | |NULL |NULL |34567 |NULL |NULL |NULL |NULL |
+ROW |20940 |7103 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20941 |7103 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20942 |7103 |4 |itemids |0 | |NULL |NULL |34568 |NULL |NULL |NULL |NULL |
+ROW |20943 |7104 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20944 |7104 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20945 |7104 |4 |itemids |0 | |NULL |NULL |34570 |NULL |NULL |NULL |NULL |
+ROW |20946 |7105 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20947 |7105 |6 |graphid |0 | |NULL |NULL |NULL |1589 |NULL |NULL |NULL |
+ROW |20948 |7106 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20949 |7106 |6 |graphid |0 | |NULL |NULL |NULL |1591 |NULL |NULL |NULL |
+ROW |20950 |7107 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20951 |7107 |6 |graphid |0 | |NULL |NULL |NULL |1590 |NULL |NULL |NULL |
+ROW |20952 |7108 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20953 |7108 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20954 |7108 |4 |itemids |0 | |NULL |NULL |34597 |NULL |NULL |NULL |NULL |
+ROW |20955 |7109 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20956 |7109 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20957 |7109 |4 |itemids |0 | |NULL |NULL |34612 |NULL |NULL |NULL |NULL |
+ROW |20958 |7110 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20959 |7110 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20960 |7110 |4 |itemids |0 | |NULL |NULL |34596 |NULL |NULL |NULL |NULL |
+ROW |20961 |7111 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20962 |7111 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20963 |7111 |4 |itemids |0 | |NULL |NULL |34615 |NULL |NULL |NULL |NULL |
+ROW |20964 |7112 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20965 |7112 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20966 |7112 |4 |itemids |0 | |NULL |NULL |34616 |NULL |NULL |NULL |NULL |
+ROW |20967 |7113 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20968 |7113 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20969 |7113 |4 |itemids |0 | |NULL |NULL |34618 |NULL |NULL |NULL |NULL |
+ROW |20970 |7114 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20971 |7114 |6 |graphid |0 | |NULL |NULL |NULL |1592 |NULL |NULL |NULL |
+ROW |20972 |7115 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20973 |7115 |6 |graphid |0 | |NULL |NULL |NULL |1594 |NULL |NULL |NULL |
+ROW |20974 |7116 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20975 |7116 |6 |graphid |0 | |NULL |NULL |NULL |1593 |NULL |NULL |NULL |
+ROW |20976 |7117 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20977 |7117 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20978 |7117 |4 |itemids |0 | |NULL |NULL |34645 |NULL |NULL |NULL |NULL |
+ROW |20979 |7118 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20980 |7118 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20981 |7118 |4 |itemids |0 | |NULL |NULL |34660 |NULL |NULL |NULL |NULL |
+ROW |20982 |7119 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20983 |7119 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20984 |7119 |4 |itemids |0 | |NULL |NULL |34644 |NULL |NULL |NULL |NULL |
+ROW |20985 |7120 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20986 |7120 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20987 |7120 |4 |itemids |0 | |NULL |NULL |34663 |NULL |NULL |NULL |NULL |
+ROW |20988 |7121 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20989 |7121 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20990 |7121 |4 |itemids |0 | |NULL |NULL |34664 |NULL |NULL |NULL |NULL |
+ROW |20991 |7122 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20992 |7122 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20993 |7122 |4 |itemids |0 | |NULL |NULL |34666 |NULL |NULL |NULL |NULL |
+ROW |20994 |7123 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20995 |7123 |6 |graphid |0 | |NULL |NULL |NULL |1595 |NULL |NULL |NULL |
+ROW |20996 |7124 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20997 |7124 |6 |graphid |0 | |NULL |NULL |NULL |1597 |NULL |NULL |NULL |
+ROW |20998 |7125 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |20999 |7125 |6 |graphid |0 | |NULL |NULL |NULL |1596 |NULL |NULL |NULL |
+ROW |21000 |7126 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21001 |7126 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21002 |7126 |4 |itemids |0 | |NULL |NULL |35018 |NULL |NULL |NULL |NULL |
+ROW |21003 |7127 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21004 |7127 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21005 |7127 |4 |itemids |0 | |NULL |NULL |35033 |NULL |NULL |NULL |NULL |
+ROW |21006 |7128 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21007 |7128 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21008 |7128 |4 |itemids |0 | |NULL |NULL |35017 |NULL |NULL |NULL |NULL |
+ROW |21009 |7129 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21010 |7129 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21011 |7129 |4 |itemids |0 | |NULL |NULL |35036 |NULL |NULL |NULL |NULL |
+ROW |21012 |7130 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21013 |7130 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21014 |7130 |4 |itemids |0 | |NULL |NULL |35037 |NULL |NULL |NULL |NULL |
+ROW |21015 |7131 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21016 |7131 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21017 |7131 |4 |itemids |0 | |NULL |NULL |35039 |NULL |NULL |NULL |NULL |
+ROW |21018 |7132 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21019 |7132 |6 |graphid |0 | |NULL |NULL |NULL |1619 |NULL |NULL |NULL |
+ROW |21020 |7133 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21021 |7133 |6 |graphid |0 | |NULL |NULL |NULL |1621 |NULL |NULL |NULL |
+ROW |21022 |7134 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21023 |7134 |6 |graphid |0 | |NULL |NULL |NULL |1620 |NULL |NULL |NULL |
+ROW |21024 |7135 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21025 |7135 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21026 |7135 |4 |itemids |0 | |NULL |NULL |34741 |NULL |NULL |NULL |NULL |
+ROW |21027 |7136 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21028 |7136 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21029 |7136 |4 |itemids |0 | |NULL |NULL |34756 |NULL |NULL |NULL |NULL |
+ROW |21030 |7137 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21031 |7137 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21032 |7137 |4 |itemids |0 | |NULL |NULL |34740 |NULL |NULL |NULL |NULL |
+ROW |21033 |7138 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21034 |7138 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21035 |7138 |4 |itemids |0 | |NULL |NULL |34759 |NULL |NULL |NULL |NULL |
+ROW |21036 |7139 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21037 |7139 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21038 |7139 |4 |itemids |0 | |NULL |NULL |34760 |NULL |NULL |NULL |NULL |
+ROW |21039 |7140 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21040 |7140 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21041 |7140 |4 |itemids |0 | |NULL |NULL |34762 |NULL |NULL |NULL |NULL |
+ROW |21042 |7141 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21043 |7141 |6 |graphid |0 | |NULL |NULL |NULL |1601 |NULL |NULL |NULL |
+ROW |21044 |7142 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21045 |7142 |6 |graphid |0 | |NULL |NULL |NULL |1603 |NULL |NULL |NULL |
+ROW |21046 |7143 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21047 |7143 |6 |graphid |0 | |NULL |NULL |NULL |1602 |NULL |NULL |NULL |
+ROW |21048 |7144 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21049 |7144 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21050 |7144 |4 |itemids |0 | |NULL |NULL |34181 |NULL |NULL |NULL |NULL |
+ROW |21051 |7145 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21052 |7145 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21053 |7145 |4 |itemids |0 | |NULL |NULL |34196 |NULL |NULL |NULL |NULL |
+ROW |21054 |7146 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21055 |7146 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21056 |7146 |4 |itemids |0 | |NULL |NULL |34191 |NULL |NULL |NULL |NULL |
+ROW |21057 |7147 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21058 |7147 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21059 |7147 |4 |itemids |0 | |NULL |NULL |34202 |NULL |NULL |NULL |NULL |
+ROW |21060 |7148 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21061 |7148 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21062 |7148 |4 |itemids |0 | |NULL |NULL |34203 |NULL |NULL |NULL |NULL |
+ROW |21063 |7149 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21064 |7149 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21065 |7149 |4 |itemids |0 | |NULL |NULL |34205 |NULL |NULL |NULL |NULL |
+ROW |21066 |7150 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21067 |7150 |6 |graphid |0 | |NULL |NULL |NULL |1604 |NULL |NULL |NULL |
+ROW |21068 |7151 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21069 |7151 |6 |graphid |0 | |NULL |NULL |NULL |1570 |NULL |NULL |NULL |
+ROW |21070 |7152 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21071 |7152 |6 |graphid |0 | |NULL |NULL |NULL |1569 |NULL |NULL |NULL |
+ROW |21072 |7153 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21073 |7153 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21074 |7153 |4 |itemids |0 | |NULL |NULL |34795 |NULL |NULL |NULL |NULL |
+ROW |21075 |7154 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21076 |7154 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21077 |7154 |4 |itemids |0 | |NULL |NULL |34810 |NULL |NULL |NULL |NULL |
+ROW |21078 |7155 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21079 |7155 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21080 |7155 |4 |itemids |0 | |NULL |NULL |34794 |NULL |NULL |NULL |NULL |
+ROW |21081 |7156 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21082 |7156 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21083 |7156 |4 |itemids |0 | |NULL |NULL |34813 |NULL |NULL |NULL |NULL |
+ROW |21084 |7157 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21085 |7157 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21086 |7157 |4 |itemids |0 | |NULL |NULL |34814 |NULL |NULL |NULL |NULL |
+ROW |21087 |7158 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21088 |7158 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21089 |7158 |4 |itemids |0 | |NULL |NULL |34816 |NULL |NULL |NULL |NULL |
+ROW |21090 |7159 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21091 |7159 |6 |graphid |0 | |NULL |NULL |NULL |1605 |NULL |NULL |NULL |
+ROW |21092 |7160 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21093 |7160 |6 |graphid |0 | |NULL |NULL |NULL |1607 |NULL |NULL |NULL |
+ROW |21094 |7161 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21095 |7161 |6 |graphid |0 | |NULL |NULL |NULL |1606 |NULL |NULL |NULL |
+ROW |21096 |7162 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21097 |7162 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21098 |7162 |4 |itemids |0 | |NULL |NULL |34843 |NULL |NULL |NULL |NULL |
+ROW |21099 |7163 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21100 |7163 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21101 |7163 |4 |itemids |0 | |NULL |NULL |34858 |NULL |NULL |NULL |NULL |
+ROW |21102 |7164 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21103 |7164 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21104 |7164 |4 |itemids |0 | |NULL |NULL |34842 |NULL |NULL |NULL |NULL |
+ROW |21105 |7165 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21106 |7165 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21107 |7165 |4 |itemids |0 | |NULL |NULL |34861 |NULL |NULL |NULL |NULL |
+ROW |21108 |7166 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21109 |7166 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21110 |7166 |4 |itemids |0 | |NULL |NULL |34862 |NULL |NULL |NULL |NULL |
+ROW |21111 |7167 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21112 |7167 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21113 |7167 |4 |itemids |0 | |NULL |NULL |34864 |NULL |NULL |NULL |NULL |
+ROW |21114 |7168 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21115 |7168 |6 |graphid |0 | |NULL |NULL |NULL |1608 |NULL |NULL |NULL |
+ROW |21116 |7169 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21117 |7169 |6 |graphid |0 | |NULL |NULL |NULL |1610 |NULL |NULL |NULL |
+ROW |21118 |7170 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21119 |7170 |6 |graphid |0 | |NULL |NULL |NULL |1609 |NULL |NULL |NULL |
+ROW |21120 |7171 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21121 |7171 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21122 |7171 |4 |itemids |0 | |NULL |NULL |34891 |NULL |NULL |NULL |NULL |
+ROW |21123 |7172 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21124 |7172 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21125 |7172 |4 |itemids |0 | |NULL |NULL |34906 |NULL |NULL |NULL |NULL |
+ROW |21126 |7173 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21127 |7173 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21128 |7173 |4 |itemids |0 | |NULL |NULL |34890 |NULL |NULL |NULL |NULL |
+ROW |21129 |7174 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21130 |7174 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21131 |7174 |4 |itemids |0 | |NULL |NULL |34909 |NULL |NULL |NULL |NULL |
+ROW |21132 |7175 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21133 |7175 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21134 |7175 |4 |itemids |0 | |NULL |NULL |34910 |NULL |NULL |NULL |NULL |
+ROW |21135 |7176 |0 |show_as_html |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21136 |7176 |0 |show_lines |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21137 |7176 |4 |itemids |0 | |NULL |NULL |34912 |NULL |NULL |NULL |NULL |
+ROW |21138 |7177 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21139 |7177 |6 |graphid |0 | |NULL |NULL |NULL |1611 |NULL |NULL |NULL |
+ROW |21140 |7178 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21141 |7178 |6 |graphid |0 | |NULL |NULL |NULL |1613 |NULL |NULL |NULL |
+ROW |21142 |7179 |0 |source_type |0 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21143 |7179 |6 |graphid |0 | |NULL |NULL |NULL |1612 |NULL |NULL |NULL |
+ROW |21144 |7180 |0 |source_type |2 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21145 |7180 |0 |columns |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21146 |7180 |0 |rows |1 | |NULL |NULL |NULL |NULL |NULL |NULL |NULL |
+ROW |21147 |7180 |7 |graphid |0 | |NULL |NULL |NULL |1805 |NULL |NULL |NULL |
diff --git a/create/src/schema.tmpl b/create/src/schema.tmpl
index e08e0d09529..555243bd78c 100644
--- a/create/src/schema.tmpl
+++ b/create/src/schema.tmpl
@@ -35,7 +35,7 @@ FIELD |username |t_varchar(100) |'' |NOT NULL |0
FIELD |name |t_varchar(100) |'' |NOT NULL |0
FIELD |surname |t_varchar(100) |'' |NOT NULL |0
FIELD |passwd |t_varchar(60) |'' |NOT NULL |0
-FIELD |url |t_varchar(255) |'' |NOT NULL |0
+FIELD |url |t_varchar(2048)|'' |NOT NULL |0
FIELD |autologin |t_integer |'0' |NOT NULL |0
FIELD |autologout |t_varchar(32) |'15m' |NOT NULL |0
FIELD |lang |t_varchar(7) |'default'|NOT NULL |ZBX_NODATA
@@ -1936,4 +1936,4 @@ TABLE|dbversion|dbversionid|
FIELD |dbversionid |t_id | |NOT NULL |0
FIELD |mandatory |t_integer |'0' |NOT NULL |
FIELD |optional |t_integer |'0' |NOT NULL |
-ROW |1 |6000000 |6000006
+ROW |1 |6000000 |6000007
diff --git a/create/src/templates.tmpl b/create/src/templates.tmpl
index 853524d0b32..eb7e3a715c8 100644
--- a/create/src/templates.tmpl
+++ b/create/src/templates.tmpl
@@ -31887,3739 +31887,3739 @@ ROW |86694 |2237 |42249 |0 |0 |1A7C11|0 |2 |0 |
ROW |86695 |2237 |42257 |0 |1 |2774A4|0 |2 |0 |
ROW |86696 |2237 |42259 |0 |2 |F63100|0 |2 |0 |
ROW |86697 |2237 |42260 |0 |3 |A54F10|1 |2 |0 |
-ROW |137051 |1397 |32451 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137052 |1397 |32450 |5 |1 |2774A4|0 |2 |0 |
-ROW |137053 |1398 |32452 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137054 |1398 |32449 |5 |1 |2774A4|0 |2 |0 |
-ROW |137055 |1399 |32444 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137056 |1399 |32446 |5 |1 |2774A4|0 |2 |0 |
-ROW |137057 |1399 |32448 |5 |2 |F63100|0 |2 |0 |
-ROW |137058 |1400 |32460 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137059 |1401 |32458 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137060 |1401 |32457 |5 |1 |2774A4|0 |2 |0 |
-ROW |137061 |1402 |32461 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137062 |1402 |32456 |5 |1 |2774A4|0 |2 |0 |
-ROW |137063 |1172 |30918 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137064 |1172 |30919 |0 |1 |2774A4|0 |2 |0 |
-ROW |137065 |1172 |30920 |0 |2 |F63100|0 |2 |0 |
-ROW |137066 |1172 |30921 |2 |3 |A54F10|0 |2 |0 |
-ROW |137067 |1173 |30922 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137068 |835 |28744 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137069 |835 |28745 |0 |1 |2774A4|0 |2 |0 |
-ROW |137070 |1174 |30913 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137071 |1175 |30906 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137072 |1175 |30908 |0 |1 |2774A4|0 |2 |0 |
-ROW |137073 |1175 |30915 |0 |2 |F63100|0 |2 |0 |
-ROW |137074 |1175 |30897 |0 |3 |A54F10|0 |2 |0 |
-ROW |137075 |1175 |30901 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137076 |1175 |30899 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137077 |1175 |30907 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137078 |1175 |30905 |0 |7 |611F27|0 |2 |0 |
-ROW |137079 |1175 |30904 |0 |8 |F230E0|0 |2 |0 |
-ROW |137080 |1175 |30900 |0 |9 |FFAD40|0 |2 |0 |
-ROW |137081 |1175 |30898 |0 |10 |40CDFF|0 |2 |0 |
-ROW |137082 |1176 |30910 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137083 |1176 |30909 |0 |1 |2774A4|0 |2 |0 |
-ROW |137084 |836 |28798 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137085 |836 |28799 |0 |1 |2774A4|0 |2 |0 |
-ROW |137086 |836 |28800 |0 |2 |F63100|0 |2 |0 |
-ROW |137087 |836 |28801 |2 |3 |A54F10|0 |2 |0 |
-ROW |137088 |837 |28803 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137089 |838 |28793 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137090 |840 |28787 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137091 |840 |28784 |0 |1 |2774A4|0 |2 |0 |
-ROW |137092 |840 |28782 |0 |2 |F63100|0 |2 |0 |
-ROW |137093 |840 |28781 |0 |3 |A54F10|0 |2 |0 |
-ROW |137094 |840 |28780 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137095 |840 |28778 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137096 |840 |28786 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137097 |840 |28785 |0 |7 |611F27|0 |2 |0 |
-ROW |137098 |840 |28783 |0 |8 |F230E0|0 |2 |0 |
-ROW |137099 |840 |28779 |0 |9 |FFAD40|0 |2 |0 |
-ROW |137100 |840 |28796 |0 |10 |40CDFF|0 |2 |0 |
-ROW |137101 |839 |28789 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137102 |839 |28788 |0 |1 |2774A4|0 |2 |0 |
-ROW |137103 |1339 |32172 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137104 |1339 |32173 |0 |1 |2774A4|0 |2 |0 |
-ROW |137105 |1403 |32511 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137106 |1403 |32514 |0 |1 |2774A4|0 |2 |0 |
-ROW |137107 |1404 |32512 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137108 |1404 |32515 |0 |1 |2774A4|0 |2 |0 |
-ROW |137109 |1405 |32507 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137110 |1405 |32508 |0 |1 |2774A4|0 |2 |0 |
-ROW |137111 |1405 |32513 |0 |2 |F63100|0 |2 |0 |
-ROW |137112 |1343 |32135 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137113 |1343 |32142 |0 |1 |2774A4|0 |2 |0 |
-ROW |137114 |1344 |32167 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137115 |1344 |32136 |0 |1 |2774A4|0 |2 |0 |
-ROW |137116 |1345 |32141 |1 |0 |1A7C11|0 |2 |0 |
-ROW |137117 |1345 |32138 |1 |1 |2774A4|0 |2 |0 |
-ROW |137118 |1346 |32156 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137119 |1346 |32158 |0 |1 |2774A4|0 |2 |0 |
-ROW |137120 |1346 |32159 |0 |2 |F63100|0 |2 |0 |
-ROW |137121 |1346 |32154 |2 |3 |A54F10|0 |2 |0 |
-ROW |137122 |1346 |32155 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137123 |1346 |32146 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137124 |1347 |32150 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137125 |1347 |32151 |0 |1 |2774A4|0 |2 |0 |
-ROW |137126 |1347 |32152 |0 |2 |F63100|0 |2 |0 |
-ROW |137127 |1622 |35078 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137128 |1622 |35091 |0 |1 |2774A4|0 |2 |0 |
-ROW |137129 |1622 |35098 |0 |2 |F63100|0 |2 |0 |
-ROW |137130 |1622 |35100 |0 |3 |A54F10|0 |2 |0 |
-ROW |137131 |1622 |35099 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137132 |1623 |35090 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137133 |1623 |35101 |0 |1 |2774A4|0 |2 |0 |
-ROW |137134 |1624 |35097 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137135 |1624 |35096 |0 |1 |2774A4|0 |2 |0 |
-ROW |137136 |1624 |35095 |0 |2 |F63100|0 |2 |0 |
-ROW |137137 |1625 |35089 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137138 |1625 |35088 |0 |1 |2774A4|0 |2 |0 |
-ROW |137139 |1625 |35087 |0 |2 |F63100|0 |2 |0 |
-ROW |137140 |1625 |35086 |0 |3 |A54F10|0 |2 |0 |
-ROW |137141 |1625 |35085 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137142 |1626 |35079 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137143 |1626 |35082 |0 |1 |2774A4|0 |2 |0 |
-ROW |137144 |1627 |35080 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137145 |1627 |35102 |0 |1 |2774A4|0 |2 |0 |
-ROW |137146 |1628 |35093 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137147 |1628 |35092 |0 |1 |2774A4|0 |2 |0 |
-ROW |137148 |1628 |35081 |0 |2 |F63100|0 |2 |0 |
-ROW |137149 |1628 |35084 |0 |3 |A54F10|0 |2 |0 |
-ROW |137150 |1628 |35083 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137151 |2325 |42962 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137152 |2325 |42972 |0 |1 |2774A4|0 |2 |0 |
-ROW |137153 |2326 |42941 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137154 |2326 |42940 |2 |1 |2774A4|0 |2 |0 |
-ROW |137155 |2327 |42983 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137156 |2327 |42942 |0 |1 |2774A4|0 |2 |0 |
-ROW |137157 |2328 |42949 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137158 |2328 |42947 |0 |1 |2774A4|0 |2 |0 |
-ROW |137159 |2328 |42935 |0 |2 |F63100|0 |2 |0 |
-ROW |137160 |2328 |42944 |0 |3 |A54F10|0 |2 |0 |
-ROW |137161 |2328 |42945 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137162 |1121 |30606 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137163 |1121 |30590 |5 |1 |2774A4|0 |2 |0 |
-ROW |137164 |1121 |30582 |5 |2 |F63100|0 |2 |0 |
-ROW |137165 |1122 |30580 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137166 |1122 |30578 |5 |1 |2774A4|0 |2 |0 |
-ROW |137167 |1123 |30586 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137168 |1123 |30608 |2 |1 |2774A4|0 |2 |0 |
-ROW |137169 |1123 |30585 |2 |2 |F63100|0 |2 |0 |
-ROW |137170 |1123 |30589 |2 |3 |A54F10|0 |2 |0 |
-ROW |137171 |1123 |30584 |2 |4 |FC6EA3|0 |2 |0 |
-ROW |137172 |1123 |30588 |2 |5 |6C59DC|0 |2 |0 |
-ROW |137173 |1124 |30583 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137174 |1124 |30587 |2 |1 |2774A4|0 |2 |0 |
-ROW |137175 |1125 |30555 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137176 |1125 |30554 |2 |1 |2774A4|0 |2 |0 |
-ROW |137177 |1125 |30556 |2 |2 |F63100|0 |2 |0 |
-ROW |137178 |1125 |30557 |2 |3 |A54F10|0 |2 |0 |
-ROW |137179 |1126 |30565 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137180 |1127 |30567 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137181 |1127 |30568 |2 |1 |2774A4|0 |2 |0 |
-ROW |137182 |1128 |30536 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137183 |1129 |30566 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137184 |1129 |30549 |2 |1 |2774A4|0 |2 |0 |
-ROW |137185 |1129 |30553 |2 |2 |F63100|0 |2 |0 |
-ROW |137186 |1129 |30570 |2 |3 |A54F10|0 |2 |0 |
-ROW |137187 |1143 |30714 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137188 |1143 |30716 |0 |1 |2774A4|0 |2 |0 |
-ROW |137189 |1143 |30717 |0 |2 |F63100|0 |2 |0 |
-ROW |137190 |1143 |30715 |0 |3 |A54F10|0 |2 |0 |
-ROW |137191 |1144 |30753 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137192 |1144 |30738 |0 |1 |2774A4|0 |2 |0 |
-ROW |137193 |1145 |30718 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137194 |1145 |30737 |0 |1 |2774A4|0 |2 |0 |
-ROW |137195 |1145 |30727 |0 |2 |F63100|0 |2 |0 |
-ROW |137196 |1145 |30729 |0 |3 |A54F10|0 |2 |0 |
-ROW |137197 |1146 |30730 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137198 |1146 |30732 |0 |1 |2774A4|0 |2 |0 |
-ROW |137199 |1146 |30731 |0 |2 |F63100|0 |2 |0 |
-ROW |137200 |1146 |30733 |0 |3 |A54F10|0 |2 |0 |
-ROW |137201 |1147 |30734 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137202 |1147 |30736 |0 |1 |2774A4|0 |2 |0 |
-ROW |137203 |1147 |30735 |0 |2 |F63100|0 |2 |0 |
-ROW |137204 |1147 |30758 |0 |3 |A54F10|0 |2 |0 |
-ROW |137205 |1148 |30711 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137206 |1148 |30706 |0 |1 |2774A4|0 |2 |0 |
-ROW |137207 |1148 |30710 |0 |2 |F63100|0 |2 |0 |
-ROW |137208 |1148 |30712 |0 |3 |A54F10|0 |2 |0 |
-ROW |137209 |1148 |30702 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137210 |1148 |30707 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137211 |1148 |30704 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137212 |2329 |43064 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137213 |2329 |43065 |0 |1 |2774A4|0 |2 |0 |
-ROW |137214 |2329 |43058 |0 |2 |F63100|0 |2 |0 |
-ROW |137215 |2329 |43063 |0 |3 |A54F10|0 |2 |0 |
-ROW |137216 |2329 |43072 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137217 |2330 |43069 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137218 |2330 |43067 |0 |1 |2774A4|0 |2 |0 |
-ROW |137219 |2331 |43074 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137220 |2331 |43076 |0 |1 |2774A4|0 |2 |0 |
-ROW |137221 |2332 |43025 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137222 |2332 |43048 |0 |1 |2774A4|0 |2 |0 |
-ROW |137223 |2333 |43050 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137224 |2333 |43049 |0 |1 |2774A4|0 |2 |0 |
-ROW |137225 |2333 |43051 |0 |2 |F63100|0 |2 |0 |
-ROW |137226 |2333 |43040 |0 |3 |A54F10|0 |2 |0 |
-ROW |137227 |2334 |43029 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137228 |2334 |43031 |0 |1 |2774A4|0 |2 |0 |
-ROW |137229 |2335 |43046 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137230 |2335 |43047 |0 |1 |2774A4|0 |2 |0 |
-ROW |137231 |2335 |43045 |0 |2 |F63100|0 |2 |0 |
-ROW |137232 |2335 |43044 |0 |3 |A54F10|0 |2 |0 |
-ROW |137233 |2336 |43037 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137234 |2336 |43026 |0 |1 |2774A4|0 |2 |0 |
-ROW |137235 |2336 |43039 |0 |2 |F63100|0 |2 |0 |
-ROW |137236 |2337 |43042 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137237 |2337 |43041 |0 |1 |2774A4|0 |2 |0 |
-ROW |137238 |2337 |43043 |0 |2 |F63100|0 |2 |0 |
-ROW |137239 |2337 |43038 |0 |3 |A54F10|0 |2 |0 |
-ROW |137240 |2338 |43030 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137241 |2338 |43031 |0 |1 |2774A4|0 |2 |0 |
-ROW |137242 |2338 |43032 |0 |2 |F63100|0 |2 |0 |
-ROW |137243 |1177 |30927 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137244 |1177 |30944 |2 |1 |2774A4|0 |2 |0 |
-ROW |137245 |1178 |30935 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137246 |1178 |30942 |0 |1 |2774A4|0 |2 |0 |
-ROW |137247 |1179 |30949 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137248 |1179 |30950 |0 |1 |2774A4|0 |2 |0 |
-ROW |137249 |1179 |30951 |0 |2 |F63100|0 |2 |0 |
-ROW |137250 |1180 |30952 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137251 |1180 |30954 |0 |1 |2774A4|0 |2 |0 |
-ROW |137252 |1180 |30955 |0 |2 |F63100|0 |2 |0 |
-ROW |137253 |1181 |30936 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137254 |1181 |30940 |5 |1 |2774A4|0 |2 |0 |
-ROW |137255 |1182 |30930 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137256 |1182 |30929 |0 |1 |2774A4|0 |2 |0 |
-ROW |137257 |1182 |30928 |0 |2 |F63100|0 |2 |0 |
-ROW |137258 |1182 |30931 |2 |3 |A54F10|1 |2 |0 |
-ROW |137259 |1183 |30934 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137260 |1183 |30941 |0 |1 |2774A4|0 |2 |0 |
-ROW |137261 |1406 |32532 |0 |0 |1A7C11|1 |2 |0 |
-ROW |137262 |1406 |32535 |0 |1 |2774A4|1 |2 |0 |
-ROW |137263 |1406 |32533 |0 |2 |F63100|0 |2 |0 |
-ROW |137264 |1406 |32534 |0 |3 |A54F10|0 |2 |0 |
-ROW |137265 |1406 |32536 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137266 |1406 |32537 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137267 |1407 |32543 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137268 |1407 |32544 |0 |1 |2774A4|0 |2 |0 |
-ROW |137269 |1408 |32518 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137270 |1408 |32521 |0 |1 |2774A4|0 |2 |0 |
-ROW |137271 |1408 |32523 |0 |2 |F63100|0 |2 |0 |
-ROW |137272 |1408 |32524 |0 |3 |A54F10|0 |2 |0 |
-ROW |137273 |1409 |32562 |0 |0 |1A7C11|1 |2 |0 |
-ROW |137274 |1409 |32565 |0 |1 |2774A4|1 |2 |0 |
-ROW |137275 |1409 |32563 |0 |2 |F63100|0 |2 |0 |
-ROW |137276 |1409 |32564 |0 |3 |A54F10|0 |2 |0 |
-ROW |137277 |1409 |32566 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137278 |1409 |32567 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137279 |1410 |32573 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137280 |1410 |32574 |0 |1 |2774A4|0 |2 |0 |
-ROW |137281 |1411 |32548 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137282 |1411 |32551 |0 |1 |2774A4|0 |2 |0 |
-ROW |137283 |1411 |32553 |0 |2 |F63100|0 |2 |0 |
-ROW |137284 |1411 |32554 |0 |3 |A54F10|0 |2 |0 |
-ROW |137285 |2287 |42691 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137286 |2288 |42694 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137287 |2288 |42693 |0 |1 |2774A4|0 |2 |0 |
-ROW |137288 |2288 |42695 |0 |2 |F63100|0 |2 |0 |
-ROW |137289 |1250 |31527 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137290 |1250 |31529 |0 |1 |2774A4|0 |2 |0 |
-ROW |137291 |1250 |31499 |0 |2 |F63100|0 |2 |0 |
-ROW |137292 |1259 |31516 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137293 |1259 |31517 |0 |1 |2774A4|0 |2 |0 |
-ROW |137294 |1260 |31523 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137295 |1260 |31522 |0 |1 |2774A4|0 |2 |0 |
-ROW |137296 |1260 |31524 |0 |2 |F63100|0 |2 |0 |
-ROW |137297 |1412 |32601 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137298 |1412 |32602 |0 |1 |2774A4|0 |2 |0 |
-ROW |137299 |1412 |32603 |0 |2 |F63100|0 |2 |0 |
-ROW |137300 |1412 |32604 |0 |3 |A54F10|0 |2 |0 |
-ROW |137301 |1412 |32606 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137302 |1412 |32606 |2 |5 |6C59DC|0 |2 |0 |
-ROW |137303 |1413 |32608 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137304 |1413 |32610 |0 |1 |2774A4|0 |2 |0 |
-ROW |137305 |1413 |32611 |0 |2 |F63100|0 |2 |0 |
-ROW |137306 |1414 |32582 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137307 |1414 |32580 |2 |1 |2774A4|0 |2 |0 |
-ROW |137308 |1414 |32581 |2 |2 |F63100|0 |2 |0 |
-ROW |137309 |1414 |32597 |0 |3 |A54F10|1 |2 |0 |
-ROW |137310 |1414 |32599 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |137311 |1414 |32588 |0 |5 |6C59DC|1 |2 |0 |
-ROW |137312 |1415 |32583 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137313 |1415 |32584 |0 |1 |2774A4|0 |2 |0 |
-ROW |137314 |1415 |32585 |0 |2 |F63100|0 |2 |0 |
-ROW |137315 |1415 |32579 |2 |3 |A54F10|0 |2 |0 |
-ROW |137316 |1416 |32587 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137317 |1416 |32590 |0 |1 |2774A4|0 |2 |0 |
-ROW |137318 |1416 |32589 |0 |2 |F63100|0 |2 |0 |
-ROW |137319 |1417 |32673 |1 |0 |1A7C11|0 |2 |0 |
-ROW |137320 |1417 |32679 |1 |1 |2774A4|0 |2 |0 |
-ROW |137321 |1629 |35114 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137322 |1629 |35113 |5 |1 |2774A4|0 |2 |0 |
-ROW |137323 |1075 |30204 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137324 |1075 |30205 |0 |1 |2774A4|0 |2 |0 |
-ROW |137325 |1630 |35112 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137326 |1630 |35111 |0 |1 |2774A4|0 |2 |0 |
-ROW |137327 |1630 |35110 |0 |2 |F63100|0 |2 |0 |
-ROW |137328 |1630 |35108 |0 |3 |A54F10|0 |2 |0 |
-ROW |137329 |1630 |35105 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137330 |1076 |30209 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137331 |1076 |30208 |0 |1 |2774A4|0 |2 |0 |
-ROW |137332 |1077 |30206 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137333 |1077 |30207 |5 |1 |2774A4|0 |2 |0 |
-ROW |137334 |1078 |30216 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137335 |1078 |30215 |0 |1 |2774A4|0 |2 |0 |
-ROW |137336 |1079 |30210 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137337 |1079 |30211 |0 |1 |2774A4|0 |2 |0 |
-ROW |137338 |1079 |30212 |0 |2 |F63100|0 |2 |0 |
-ROW |137339 |1079 |30213 |0 |3 |A54F10|0 |2 |0 |
-ROW |137340 |1079 |30214 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137341 |1631 |35127 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137342 |1631 |35126 |5 |1 |2774A4|0 |2 |0 |
-ROW |137343 |1632 |35124 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137344 |1632 |35123 |0 |1 |2774A4|0 |2 |0 |
-ROW |137345 |1632 |35122 |0 |2 |F63100|0 |2 |0 |
-ROW |137346 |1632 |30222 |0 |3 |A54F10|0 |2 |0 |
-ROW |137347 |1632 |30223 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137348 |1080 |30226 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137349 |1080 |30225 |0 |1 |2774A4|0 |2 |0 |
-ROW |137350 |1633 |35139 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137351 |1633 |35138 |5 |1 |2774A4|0 |2 |0 |
-ROW |137352 |1081 |30247 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137353 |1081 |30248 |0 |1 |2774A4|0 |2 |0 |
-ROW |137354 |1634 |35137 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137355 |1634 |35136 |0 |1 |2774A4|0 |2 |0 |
-ROW |137356 |1634 |35135 |0 |2 |F63100|0 |2 |0 |
-ROW |137357 |1634 |35133 |0 |3 |A54F10|0 |2 |0 |
-ROW |137358 |1634 |35130 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137359 |1082 |30252 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137360 |1082 |30251 |0 |1 |2774A4|0 |2 |0 |
-ROW |137361 |1083 |30249 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137362 |1083 |30250 |5 |1 |2774A4|0 |2 |0 |
-ROW |137363 |1084 |30259 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137364 |1084 |30258 |0 |1 |2774A4|0 |2 |0 |
-ROW |137365 |1085 |30253 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137366 |1085 |30254 |0 |1 |2774A4|0 |2 |0 |
-ROW |137367 |1085 |30255 |0 |2 |F63100|0 |2 |0 |
-ROW |137368 |1085 |30256 |0 |3 |A54F10|0 |2 |0 |
-ROW |137369 |1085 |30257 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137370 |1635 |35152 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137371 |1635 |35151 |5 |1 |2774A4|0 |2 |0 |
-ROW |137372 |1636 |35149 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137373 |1636 |35148 |0 |1 |2774A4|0 |2 |0 |
-ROW |137374 |1636 |35147 |0 |2 |F63100|0 |2 |0 |
-ROW |137375 |1636 |30265 |0 |3 |A54F10|0 |2 |0 |
-ROW |137376 |1636 |30266 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137377 |1086 |30269 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137378 |1086 |30268 |0 |1 |2774A4|0 |2 |0 |
-ROW |137379 |1184 |30982 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137380 |1184 |30980 |5 |1 |2774A4|0 |2 |0 |
-ROW |137381 |1185 |30983 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137382 |1185 |30981 |0 |1 |2774A4|0 |2 |0 |
-ROW |137383 |1186 |30976 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137384 |1186 |30985 |0 |1 |2774A4|0 |2 |0 |
-ROW |137385 |1186 |30997 |0 |2 |F63100|0 |2 |0 |
-ROW |137386 |1186 |30970 |0 |3 |A54F10|0 |2 |0 |
-ROW |137387 |1186 |30973 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137388 |1186 |30995 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137389 |1186 |30998 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137390 |1186 |30978 |0 |7 |611F27|0 |2 |0 |
-ROW |137391 |1187 |31024 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137392 |1187 |31022 |5 |1 |2774A4|0 |2 |0 |
-ROW |137393 |1188 |31025 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137394 |1188 |31023 |0 |1 |2774A4|0 |2 |0 |
-ROW |137395 |1189 |31018 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137396 |1189 |31027 |0 |1 |2774A4|0 |2 |0 |
-ROW |137397 |1189 |31039 |0 |2 |F63100|0 |2 |0 |
-ROW |137398 |1189 |31012 |0 |3 |A54F10|0 |2 |0 |
-ROW |137399 |1189 |31015 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137400 |1189 |31037 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137401 |1189 |31040 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137402 |1189 |31020 |0 |7 |611F27|0 |2 |0 |
-ROW |137403 |1499 |33478 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137404 |1499 |33467 |0 |1 |2774A4|0 |2 |0 |
-ROW |137405 |1500 |33468 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137406 |1500 |33479 |0 |1 |2774A4|0 |2 |0 |
-ROW |137407 |1501 |33442 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137408 |1501 |33441 |0 |1 |2774A4|0 |2 |0 |
-ROW |137409 |1501 |33440 |0 |2 |F63100|0 |2 |0 |
-ROW |137410 |1502 |33423 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137411 |1502 |33419 |0 |1 |2774A4|0 |2 |0 |
-ROW |137412 |1502 |33422 |0 |2 |F63100|0 |2 |0 |
-ROW |137413 |1502 |33421 |0 |3 |A54F10|0 |2 |0 |
-ROW |137414 |1502 |33412 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137415 |1418 |32700 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137416 |1418 |32699 |0 |1 |2774A4|0 |2 |0 |
-ROW |137417 |1419 |32710 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137418 |1419 |32709 |0 |1 |2774A4|0 |2 |0 |
-ROW |137419 |1420 |32693 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137420 |1420 |32724 |0 |1 |2774A4|0 |2 |0 |
-ROW |137421 |1421 |32730 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137422 |1421 |32731 |0 |1 |2774A4|0 |2 |0 |
-ROW |137423 |1421 |32728 |0 |2 |F63100|0 |2 |0 |
-ROW |137424 |1421 |32729 |0 |3 |A54F10|0 |2 |0 |
-ROW |137425 |1422 |32705 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137426 |1422 |32706 |0 |1 |2774A4|0 |2 |0 |
-ROW |137427 |1423 |32702 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137428 |1423 |32703 |0 |1 |2774A4|0 |2 |0 |
-ROW |137429 |1424 |32708 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137430 |1424 |32722 |2 |1 |2774A4|0 |2 |0 |
-ROW |137431 |1424 |32695 |0 |2 |F63100|0 |2 |0 |
-ROW |137432 |1424 |32753 |0 |3 |A54F10|0 |2 |0 |
-ROW |137433 |1424 |32740 |2 |4 |FC6EA3|0 |2 |0 |
-ROW |137434 |1424 |32723 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137435 |1424 |32747 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137436 |1424 |32748 |2 |7 |611F27|0 |2 |0 |
-ROW |137437 |1424 |32749 |0 |8 |F230E0|0 |2 |0 |
-ROW |137438 |1424 |32750 |0 |9 |FFAD40|0 |2 |0 |
-ROW |137439 |1424 |32751 |2 |10 |40CDFF|0 |2 |0 |
-ROW |137440 |1424 |32752 |0 |11 |40FFA0|0 |2 |0 |
-ROW |137441 |1425 |32746 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137442 |1425 |32745 |2 |1 |2774A4|0 |2 |0 |
-ROW |137443 |1425 |32744 |0 |2 |F63100|0 |2 |0 |
-ROW |137444 |1425 |32743 |0 |3 |A54F10|0 |2 |0 |
-ROW |137445 |1425 |32742 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137446 |1426 |32720 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137447 |1426 |32721 |0 |1 |2774A4|0 |2 |0 |
-ROW |137448 |1426 |32719 |0 |2 |F63100|0 |2 |0 |
-ROW |137449 |1426 |32718 |0 |3 |A54F10|0 |2 |0 |
-ROW |137450 |2085 |39861 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137451 |2085 |39863 |0 |1 |2774A4|0 |2 |0 |
-ROW |137452 |2085 |39864 |0 |2 |F63100|0 |2 |0 |
-ROW |137453 |2085 |39862 |0 |3 |A54F10|0 |2 |0 |
-ROW |137454 |2086 |39849 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137455 |2086 |39833 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137456 |2086 |39848 |0 |1 |2774A4|0 |2 |0 |
-ROW |137457 |2086 |39832 |0 |1 |2774A4|0 |2 |0 |
-ROW |137458 |2086 |39847 |0 |2 |F63100|0 |2 |0 |
-ROW |137459 |2086 |39831 |0 |2 |F63100|0 |2 |0 |
-ROW |137460 |2086 |39846 |0 |3 |A54F10|0 |2 |0 |
-ROW |137461 |2086 |39850 |0 |3 |A54F10|0 |2 |0 |
-ROW |137462 |2086 |39841 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137463 |2087 |39900 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137464 |2088 |39901 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137465 |2089 |39892 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137466 |2089 |39893 |0 |1 |2774A4|0 |2 |0 |
-ROW |137467 |2089 |39890 |0 |2 |F63100|0 |2 |0 |
-ROW |137468 |2089 |39891 |0 |3 |A54F10|0 |2 |0 |
-ROW |137469 |2089 |39896 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137470 |2089 |39897 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137471 |2089 |39895 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137472 |2089 |39894 |0 |7 |611F27|0 |2 |0 |
-ROW |137473 |2090 |39888 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137474 |2090 |39887 |0 |1 |2774A4|0 |2 |0 |
-ROW |137475 |2091 |39880 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137476 |2091 |39879 |0 |1 |2774A4|0 |2 |0 |
-ROW |137477 |2091 |39878 |0 |2 |F63100|0 |2 |0 |
-ROW |137478 |2091 |39877 |0 |3 |A54F10|0 |2 |0 |
-ROW |137479 |2092 |39922 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137480 |2092 |39923 |0 |1 |2774A4|0 |2 |0 |
-ROW |137481 |2092 |39924 |0 |2 |F63100|0 |2 |0 |
-ROW |137482 |2092 |39921 |0 |3 |A54F10|0 |2 |0 |
-ROW |137483 |2093 |39966 |2 |0 |4CAF50|0 |2 |0 |
-ROW |137484 |2093 |39963 |2 |1 |AB47BC|0 |2 |0 |
-ROW |137485 |2093 |39969 |5 |2 |1E88E5|0 |4 |0 |
-ROW |137486 |2094 |40004 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137487 |2094 |40003 |0 |1 |2774A4|0 |2 |0 |
-ROW |137488 |2094 |40005 |0 |2 |F63100|0 |2 |0 |
-ROW |137489 |2094 |40006 |0 |3 |A54F10|0 |2 |0 |
-ROW |137490 |2289 |42698 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137491 |2289 |42697 |0 |1 |2774A4|0 |2 |0 |
-ROW |137492 |2289 |42699 |0 |2 |F63100|0 |2 |0 |
-ROW |137493 |2289 |42700 |0 |3 |A54F10|0 |2 |0 |
-ROW |137494 |2290 |42702 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137495 |2290 |42701 |0 |1 |2774A4|0 |2 |0 |
-ROW |137496 |2290 |42703 |0 |2 |F63100|0 |2 |0 |
-ROW |137497 |2290 |42704 |0 |3 |A54F10|0 |2 |0 |
-ROW |137498 |2096 |39994 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137499 |2096 |39993 |0 |1 |2774A4|0 |2 |0 |
-ROW |137500 |2097 |39986 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137501 |2097 |39988 |0 |1 |2774A4|0 |2 |0 |
-ROW |137502 |2097 |39990 |0 |2 |F63100|0 |2 |0 |
-ROW |137503 |2097 |39998 |0 |3 |A54F10|0 |2 |0 |
-ROW |137504 |2099 |39996 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137505 |2099 |39997 |0 |1 |2774A4|0 |2 |0 |
-ROW |137506 |2099 |39995 |0 |2 |F63100|0 |2 |0 |
-ROW |137507 |1130 |30613 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137508 |1130 |30635 |0 |1 |2774A4|0 |2 |0 |
-ROW |137509 |1130 |30625 |0 |2 |F63100|0 |2 |0 |
-ROW |137510 |1131 |30632 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137511 |1131 |30633 |5 |1 |2774A4|0 |2 |0 |
-ROW |137512 |1131 |30629 |5 |2 |F63100|0 |2 |0 |
-ROW |137513 |1132 |30630 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137514 |1132 |30628 |2 |1 |2774A4|0 |2 |0 |
-ROW |137515 |1132 |30631 |2 |2 |F63100|0 |2 |0 |
-ROW |137516 |1133 |30619 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137517 |1133 |30618 |0 |1 |2774A4|0 |2 |0 |
-ROW |137518 |1134 |30623 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137519 |1134 |30622 |5 |1 |2774A4|0 |2 |0 |
-ROW |137520 |1135 |30615 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137521 |841 |28813 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137522 |841 |28811 |0 |1 |2774A4|0 |2 |0 |
-ROW |137523 |841 |28812 |0 |2 |F63100|0 |2 |0 |
-ROW |137524 |841 |28814 |0 |3 |A54F10|0 |2 |0 |
-ROW |137525 |842 |28817 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137526 |842 |28815 |0 |1 |2774A4|0 |2 |0 |
-ROW |137527 |842 |28816 |0 |2 |F63100|0 |2 |0 |
-ROW |137528 |844 |28808 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137529 |844 |28807 |0 |1 |2774A4|0 |2 |0 |
-ROW |137530 |843 |28818 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137531 |845 |28829 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137532 |845 |28831 |0 |1 |2774A4|0 |2 |0 |
-ROW |137533 |845 |28832 |0 |2 |F63100|0 |2 |0 |
-ROW |137534 |845 |28830 |0 |3 |A54F10|0 |2 |0 |
-ROW |137535 |846 |28826 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137536 |846 |28828 |0 |1 |2774A4|0 |2 |0 |
-ROW |137537 |846 |28827 |0 |2 |F63100|0 |2 |0 |
-ROW |137538 |847 |28825 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137539 |1637 |35187 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137540 |1638 |35189 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137541 |1638 |35188 |5 |1 |2774A4|0 |2 |0 |
-ROW |137542 |1638 |35190 |5 |2 |F63100|0 |2 |0 |
-ROW |137543 |1638 |35191 |5 |3 |A54F10|0 |2 |0 |
-ROW |137544 |1638 |35192 |5 |4 |FC6EA3|0 |2 |0 |
-ROW |137545 |1639 |35198 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137546 |1640 |35200 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137547 |1640 |35199 |5 |1 |2774A4|0 |2 |0 |
-ROW |137548 |1640 |35201 |5 |2 |F63100|0 |2 |0 |
-ROW |137549 |1640 |35202 |5 |3 |A54F10|0 |2 |0 |
-ROW |137550 |1640 |35203 |5 |4 |FC6EA3|0 |2 |0 |
-ROW |137551 |1641 |35221 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137552 |1641 |35220 |5 |1 |2774A4|0 |2 |0 |
-ROW |137553 |1641 |35219 |5 |2 |F63100|0 |2 |0 |
-ROW |137554 |1642 |35214 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137555 |1642 |35216 |5 |1 |2774A4|0 |2 |0 |
-ROW |137556 |1642 |35207 |5 |2 |F63100|0 |2 |0 |
-ROW |137557 |1642 |35213 |5 |3 |A54F10|0 |2 |0 |
-ROW |137558 |1642 |35212 |5 |4 |FC6EA3|0 |2 |0 |
-ROW |137559 |1643 |35228 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137560 |1643 |35229 |5 |1 |2774A4|0 |2 |0 |
-ROW |137561 |1643 |35227 |5 |2 |F63100|0 |2 |0 |
-ROW |137562 |1644 |35231 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137563 |1644 |35230 |5 |1 |2774A4|0 |2 |0 |
-ROW |137564 |1644 |35235 |5 |2 |F63100|0 |2 |0 |
-ROW |137565 |1644 |35233 |5 |3 |A54F10|0 |2 |0 |
-ROW |137566 |1644 |35232 |5 |4 |FC6EA3|0 |2 |0 |
-ROW |137567 |1644 |35234 |5 |5 |6C59DC|0 |2 |0 |
-ROW |137568 |1644 |35236 |5 |6 |AC8C14|0 |2 |0 |
-ROW |137569 |1644 |35237 |5 |7 |611F27|0 |2 |0 |
-ROW |137570 |1645 |35243 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137571 |1645 |35244 |5 |1 |2774A4|0 |2 |0 |
-ROW |137572 |1645 |35245 |5 |2 |F63100|0 |2 |0 |
-ROW |137573 |1646 |35252 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137574 |1646 |35253 |5 |1 |2774A4|0 |2 |0 |
-ROW |137575 |1646 |35254 |5 |2 |F63100|0 |2 |0 |
-ROW |137576 |1647 |35172 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137577 |1647 |35168 |5 |1 |2774A4|0 |2 |0 |
-ROW |137578 |1647 |35164 |5 |2 |F63100|0 |2 |0 |
-ROW |137579 |1647 |35163 |5 |3 |A54F10|0 |2 |0 |
-ROW |137580 |1648 |35170 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137581 |1649 |35167 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137582 |1649 |35166 |5 |1 |2774A4|0 |2 |0 |
-ROW |137583 |1649 |35165 |5 |2 |F63100|0 |2 |0 |
-ROW |137584 |1650 |35176 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137585 |2291 |42736 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137586 |2292 |42737 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137587 |2293 |42738 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137588 |2294 |42739 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137589 |2402 |43682 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137590 |2402 |43662 |0 |1 |F63100|0 |2 |0 |
-ROW |137591 |2402 |43680 |0 |2 |2774A4|0 |2 |0 |
-ROW |137592 |2402 |43686 |0 |3 |A54F10|0 |2 |0 |
-ROW |137593 |2402 |43681 |0 |4 |6C59DC|1 |2 |0 |
-ROW |137594 |2402 |43675 |0 |5 |FC6EA3|1 |2 |0 |
-ROW |137595 |2402 |43679 |0 |6 |AC8C14|1 |2 |0 |
-ROW |137596 |2402 |43685 |0 |7 |611F27|1 |2 |0 |
-ROW |137597 |2403 |43678 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137598 |2403 |43667 |2 |1 |2774A4|0 |2 |0 |
-ROW |137599 |2403 |43672 |0 |2 |F63100|1 |2 |0 |
-ROW |137600 |2403 |43683 |0 |3 |A54F10|1 |2 |0 |
-ROW |137601 |2403 |43673 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |137602 |2403 |43684 |0 |5 |6C59DC|1 |2 |0 |
-ROW |137603 |2404 |43671 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137604 |2404 |43677 |0 |1 |F63100|0 |2 |0 |
-ROW |137605 |2404 |43669 |0 |2 |2774A4|0 |2 |0 |
-ROW |137606 |2404 |43674 |0 |3 |A54F10|0 |2 |0 |
-ROW |137607 |2404 |43670 |0 |4 |6C59DC|1 |2 |0 |
-ROW |137608 |2404 |43676 |0 |5 |FC6EA3|1 |2 |0 |
-ROW |137609 |2404 |43668 |0 |6 |AC8C14|1 |2 |0 |
-ROW |137610 |2404 |43663 |0 |7 |611F27|1 |2 |0 |
-ROW |137611 |2405 |43656 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137612 |2405 |43658 |0 |1 |2774A4|0 |2 |0 |
-ROW |137613 |2405 |43657 |0 |2 |F63100|0 |2 |0 |
-ROW |137614 |2405 |43653 |0 |3 |A54F10|0 |2 |0 |
-ROW |137615 |2405 |43654 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137616 |2405 |43655 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137617 |2102 |40167 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137618 |2102 |40147 |0 |1 |F63100|0 |2 |0 |
-ROW |137619 |2102 |40165 |0 |2 |2774A4|0 |2 |0 |
-ROW |137620 |2102 |40171 |0 |3 |A54F10|0 |2 |0 |
-ROW |137621 |2102 |40166 |0 |4 |6C59DC|1 |2 |0 |
-ROW |137622 |2102 |40160 |0 |5 |FC6EA3|1 |2 |0 |
-ROW |137623 |2102 |40164 |0 |6 |AC8C14|1 |2 |0 |
-ROW |137624 |2102 |40170 |0 |7 |611F27|1 |2 |0 |
-ROW |137625 |2103 |40163 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137626 |2103 |40152 |2 |1 |2774A4|0 |2 |0 |
-ROW |137627 |2103 |40157 |0 |2 |F63100|1 |2 |0 |
-ROW |137628 |2103 |40168 |0 |3 |A54F10|1 |2 |0 |
-ROW |137629 |2103 |40158 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |137630 |2103 |40169 |0 |5 |6C59DC|1 |2 |0 |
-ROW |137631 |2104 |40156 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137632 |2104 |40162 |0 |1 |F63100|0 |2 |0 |
-ROW |137633 |2104 |40154 |0 |2 |2774A4|0 |2 |0 |
-ROW |137634 |2104 |40159 |0 |3 |A54F10|0 |2 |0 |
-ROW |137635 |2104 |40155 |0 |4 |6C59DC|1 |2 |0 |
-ROW |137636 |2104 |40161 |0 |5 |FC6EA3|1 |2 |0 |
-ROW |137637 |2104 |40153 |0 |6 |AC8C14|1 |2 |0 |
-ROW |137638 |2104 |40148 |0 |7 |611F27|1 |2 |0 |
-ROW |137639 |2110 |40124 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137640 |2110 |40122 |0 |1 |2774A4|0 |2 |0 |
-ROW |137641 |2110 |40123 |0 |2 |F63100|0 |2 |0 |
-ROW |137642 |2110 |40126 |0 |3 |A54F10|0 |2 |0 |
-ROW |137643 |2110 |40117 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137644 |2110 |40125 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137645 |1262 |31592 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137646 |1262 |31584 |0 |1 |2774A4|0 |2 |0 |
-ROW |137647 |1262 |31582 |0 |2 |F63100|0 |2 |0 |
-ROW |137648 |1262 |31585 |0 |3 |A54F10|0 |2 |0 |
-ROW |137649 |1263 |31591 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137650 |1263 |31583 |0 |1 |2774A4|0 |2 |0 |
-ROW |137651 |1263 |31590 |0 |2 |F63100|0 |2 |0 |
-ROW |137652 |1264 |31602 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137653 |1264 |31597 |0 |1 |2774A4|0 |2 |0 |
-ROW |137654 |1264 |31601 |0 |2 |F63100|0 |2 |0 |
-ROW |137655 |1264 |31604 |0 |3 |A54F10|0 |2 |0 |
-ROW |137656 |1265 |31609 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137657 |1265 |31610 |0 |1 |2774A4|0 |2 |0 |
-ROW |137658 |1265 |31608 |0 |2 |F63100|0 |2 |0 |
-ROW |137659 |2297 |42767 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137660 |2298 |42769 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137661 |2298 |42768 |5 |1 |2774A4|0 |2 |0 |
-ROW |137662 |2299 |42771 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137663 |2299 |42770 |5 |1 |2774A4|0 |2 |0 |
-ROW |137664 |2300 |42772 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137665 |2300 |42773 |5 |1 |2774A4|0 |2 |0 |
-ROW |137666 |2301 |42776 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137667 |2301 |42784 |5 |1 |2774A4|0 |2 |0 |
-ROW |137668 |2301 |42791 |5 |2 |F63100|0 |2 |0 |
-ROW |137669 |2302 |42788 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137670 |2302 |42789 |5 |1 |2774A4|0 |2 |0 |
-ROW |137671 |2303 |42787 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137672 |2303 |42786 |5 |1 |2774A4|0 |2 |0 |
-ROW |137673 |2304 |42782 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137674 |2304 |42777 |5 |1 |2774A4|0 |2 |0 |
-ROW |137675 |2305 |42780 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137676 |2305 |42781 |5 |1 |2774A4|0 |2 |0 |
-ROW |137677 |2306 |42794 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137678 |2307 |42796 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137679 |2307 |42795 |5 |1 |2774A4|0 |2 |0 |
-ROW |137680 |2308 |42798 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137681 |2308 |42797 |5 |1 |2774A4|0 |2 |0 |
-ROW |137682 |2307 |42799 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137683 |2307 |42800 |5 |1 |2774A4|0 |2 |0 |
-ROW |137684 |2310 |42804 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137685 |2310 |42805 |5 |1 |2774A4|0 |2 |0 |
-ROW |137686 |1001 |29729 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137687 |1001 |29728 |0 |1 |2774A4|0 |2 |0 |
-ROW |137688 |1001 |29727 |0 |2 |F63100|0 |2 |0 |
-ROW |137689 |1001 |29725 |0 |3 |A54F10|0 |2 |0 |
-ROW |137690 |1001 |29723 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137691 |1001 |29733 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137692 |1001 |29737 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137693 |1001 |29731 |0 |7 |611F27|0 |2 |0 |
-ROW |137694 |1000 |29720 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137695 |1000 |29730 |0 |1 |2774A4|0 |2 |0 |
-ROW |137696 |1000 |29721 |0 |2 |F63100|0 |2 |0 |
-ROW |137697 |1000 |29726 |0 |3 |A54F10|0 |2 |0 |
-ROW |137698 |1000 |29724 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137699 |1000 |29734 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137700 |1000 |29722 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137701 |1000 |29732 |0 |7 |611F27|0 |2 |0 |
-ROW |137702 |1027 |30022 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137703 |1027 |30021 |0 |1 |2774A4|0 |2 |0 |
-ROW |137704 |1027 |30019 |0 |2 |F63100|0 |2 |0 |
-ROW |137705 |1008 |29698 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137706 |1008 |29700 |2 |1 |FF0000|0 |2 |0 |
-ROW |137707 |1007 |29691 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137708 |1013 |29657 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137709 |1013 |29658 |0 |1 |2774A4|0 |2 |0 |
-ROW |137710 |1009 |29687 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137711 |1009 |29694 |2 |1 |FF0000|0 |2 |0 |
-ROW |137712 |1029 |30017 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137713 |1029 |30016 |0 |1 |2774A4|0 |2 |0 |
-ROW |137714 |1029 |30015 |0 |2 |F63100|0 |2 |0 |
-ROW |137715 |1031 |30007 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137716 |1031 |30013 |0 |1 |2774A4|0 |2 |0 |
-ROW |137717 |1031 |30011 |0 |2 |F63100|0 |2 |0 |
-ROW |137718 |1031 |30009 |0 |3 |A54F10|0 |2 |0 |
-ROW |137719 |1031 |30005 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137720 |1031 |30003 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137721 |1031 |30023 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137722 |1031 |30001 |0 |7 |611F27|0 |2 |0 |
-ROW |137723 |1030 |30008 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137724 |1030 |30014 |0 |1 |2774A4|0 |2 |0 |
-ROW |137725 |1030 |30012 |0 |2 |F63100|0 |2 |0 |
-ROW |137726 |1030 |30010 |0 |3 |A54F10|0 |2 |0 |
-ROW |137727 |1030 |30006 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137728 |1030 |30004 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137729 |1030 |30000 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137730 |1030 |30002 |0 |7 |611F27|0 |2 |0 |
-ROW |137731 |1011 |29695 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137732 |1028 |30020 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137733 |1010 |29701 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137734 |1010 |29697 |0 |1 |2774A4|0 |2 |0 |
-ROW |137735 |1012 |29692 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137736 |1015 |29812 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137737 |1015 |29811 |0 |1 |2774A4|0 |2 |0 |
-ROW |137738 |1015 |29810 |0 |2 |F63100|0 |2 |0 |
-ROW |137739 |1015 |29808 |0 |3 |A54F10|0 |2 |0 |
-ROW |137740 |1015 |29806 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137741 |1015 |29816 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137742 |1015 |29820 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137743 |1015 |29814 |0 |7 |611F27|0 |2 |0 |
-ROW |137744 |1014 |29803 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137745 |1014 |29813 |0 |1 |2774A4|0 |2 |0 |
-ROW |137746 |1014 |29804 |0 |2 |F63100|0 |2 |0 |
-ROW |137747 |1014 |29809 |0 |3 |A54F10|0 |2 |0 |
-ROW |137748 |1014 |29807 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137749 |1014 |29817 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137750 |1014 |29805 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137751 |1014 |29815 |0 |7 |611F27|0 |2 |0 |
-ROW |137752 |1016 |29768 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137753 |1016 |29767 |0 |1 |2774A4|0 |2 |0 |
-ROW |137754 |1016 |29765 |0 |2 |F63100|0 |2 |0 |
-ROW |137755 |1022 |29782 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137756 |1022 |29781 |2 |1 |FF0000|0 |2 |0 |
-ROW |137757 |1021 |29783 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137758 |1023 |29780 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137759 |1023 |29784 |2 |1 |FF0000|0 |2 |0 |
-ROW |137760 |1018 |29763 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137761 |1018 |29762 |0 |1 |2774A4|0 |2 |0 |
-ROW |137762 |1018 |29761 |0 |2 |F63100|0 |2 |0 |
-ROW |137763 |1020 |29753 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137764 |1020 |29759 |0 |1 |2774A4|0 |2 |0 |
-ROW |137765 |1020 |29757 |0 |2 |F63100|0 |2 |0 |
-ROW |137766 |1020 |29755 |0 |3 |A54F10|0 |2 |0 |
-ROW |137767 |1020 |29751 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137768 |1020 |29749 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137769 |1020 |29769 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137770 |1020 |29747 |0 |7 |611F27|0 |2 |0 |
-ROW |137771 |1019 |29754 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137772 |1019 |29760 |0 |1 |2774A4|0 |2 |0 |
-ROW |137773 |1019 |29758 |0 |2 |F63100|0 |2 |0 |
-ROW |137774 |1019 |29756 |0 |3 |A54F10|0 |2 |0 |
-ROW |137775 |1019 |29752 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137776 |1019 |29750 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137777 |1019 |29746 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137778 |1019 |29748 |0 |7 |611F27|0 |2 |0 |
-ROW |137779 |1025 |29775 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137780 |1017 |29766 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137781 |1024 |29776 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137782 |1024 |29777 |0 |1 |2774A4|0 |2 |0 |
-ROW |137783 |1026 |29772 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137784 |1356 |32276 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137785 |1356 |32275 |0 |1 |2774A4|0 |2 |0 |
-ROW |137786 |1357 |32281 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137787 |1357 |32267 |0 |1 |2774A4|0 |2 |0 |
-ROW |137788 |1357 |32279 |0 |2 |F63100|0 |2 |0 |
-ROW |137789 |1358 |32268 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137790 |1358 |32274 |0 |1 |2774A4|0 |2 |0 |
-ROW |137791 |1358 |32271 |0 |2 |F63100|0 |2 |0 |
-ROW |137792 |1359 |32288 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137793 |1359 |32291 |0 |1 |2774A4|0 |2 |0 |
-ROW |137794 |1360 |32247 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137795 |1360 |32245 |0 |1 |2774A4|0 |2 |0 |
-ROW |137796 |1360 |32246 |0 |2 |F63100|0 |2 |0 |
-ROW |137797 |1361 |32248 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137798 |1361 |32249 |0 |1 |2774A4|0 |2 |0 |
-ROW |137799 |1361 |32250 |0 |2 |F63100|0 |2 |0 |
-ROW |137800 |1362 |32240 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137801 |1362 |32273 |0 |1 |2774A4|0 |2 |0 |
-ROW |137802 |1363 |32282 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137803 |1363 |32283 |0 |1 |2774A4|0 |2 |0 |
-ROW |137804 |1363 |32289 |0 |2 |F63100|0 |2 |0 |
-ROW |137805 |1363 |32290 |0 |3 |A54F10|0 |2 |0 |
-ROW |137806 |1363 |32286 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137807 |1363 |32287 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137808 |1363 |32241 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137809 |1363 |32242 |0 |7 |611F27|0 |2 |0 |
-ROW |137810 |1363 |32243 |0 |8 |F230E0|0 |2 |0 |
-ROW |137811 |1363 |32244 |0 |9 |FFAD40|0 |2 |0 |
-ROW |137812 |1363 |32277 |0 |10 |40CDFF|0 |2 |0 |
-ROW |137813 |1363 |32278 |0 |11 |40FFA0|0 |2 |0 |
-ROW |137814 |1427 |32768 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137815 |1427 |32767 |5 |1 |2774A4|0 |2 |0 |
-ROW |137816 |1428 |32774 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137817 |1428 |32772 |5 |1 |2774A4|0 |2 |0 |
-ROW |137818 |1428 |32775 |5 |2 |F63100|0 |2 |0 |
-ROW |137819 |1428 |32773 |5 |3 |A54F10|0 |2 |0 |
-ROW |137820 |1429 |32779 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137821 |1429 |32777 |5 |1 |2774A4|0 |2 |0 |
-ROW |137822 |1429 |32778 |5 |2 |F63100|0 |2 |0 |
-ROW |137823 |1806 |36785 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137824 |1806 |36786 |0 |1 |2774A4|0 |2 |0 |
-ROW |137825 |1806 |36787 |0 |2 |F63100|0 |2 |0 |
-ROW |137826 |2311 |42860 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137827 |2311 |42861 |0 |1 |2774A4|0 |2 |0 |
-ROW |137828 |2311 |42859 |0 |2 |F63100|0 |2 |0 |
-ROW |137829 |2311 |42858 |0 |3 |A54F10|0 |2 |0 |
-ROW |137830 |2311 |42857 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137831 |2312 |42891 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137832 |2313 |42864 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137833 |2313 |42867 |2 |1 |2774A4|0 |2 |0 |
-ROW |137834 |2313 |42866 |0 |2 |F63100|1 |2 |0 |
-ROW |137835 |2313 |42863 |0 |3 |A54F10|1 |2 |0 |
-ROW |137836 |2313 |42865 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |137837 |2313 |42862 |0 |5 |6C59DC|1 |2 |0 |
-ROW |137838 |2314 |42874 |0 |0 |969696|0 |9 |2 |
-ROW |137839 |2314 |42875 |0 |1 |C80000|0 |9 |0 |
-ROW |137840 |2315 |42879 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137841 |2315 |42883 |5 |1 |2774A4|0 |2 |0 |
-ROW |137842 |2316 |42881 |0 |0 |969696|0 |9 |2 |
-ROW |137843 |2316 |42882 |0 |1 |C80000|0 |9 |0 |
-ROW |137844 |2317 |42886 |0 |0 |969696|0 |9 |2 |
-ROW |137845 |2317 |42887 |0 |1 |C80000|0 |9 |0 |
-ROW |137846 |2318 |42888 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137847 |2318 |42890 |5 |1 |2774A4|0 |2 |0 |
-ROW |137848 |2319 |42839 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137849 |2319 |42826 |0 |1 |2774A4|0 |2 |0 |
-ROW |137850 |2320 |42837 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137851 |2320 |42832 |0 |1 |2774A4|0 |2 |0 |
-ROW |137852 |2321 |42824 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137853 |2321 |42820 |5 |1 |2774A4|0 |2 |0 |
-ROW |137854 |2322 |42825 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137855 |2323 |42842 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137856 |2323 |42844 |0 |1 |2774A4|0 |2 |0 |
-ROW |137857 |2324 |42833 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137858 |2324 |42834 |0 |1 |2774A4|0 |2 |0 |
-ROW |137859 |2324 |42835 |0 |2 |F63100|0 |2 |0 |
-ROW |137860 |2324 |42836 |0 |3 |A54F10|1 |2 |0 |
-ROW |137861 |1430 |32837 |2 |0 |1A7C11|0 |2 |0 |
-ROW |137862 |1430 |32836 |2 |1 |2774A4|0 |2 |0 |
-ROW |137863 |1430 |32835 |2 |2 |F63100|0 |2 |0 |
-ROW |137864 |1431 |32856 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137865 |1432 |32828 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137866 |1433 |32847 |5 |0 |34bdeb|0 |2 |0 |
-ROW |137867 |1434 |32797 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137868 |1434 |32796 |5 |1 |2774A4|0 |2 |0 |
-ROW |137869 |1434 |32801 |2 |2 |F63100|0 |2 |0 |
-ROW |137870 |1435 |32834 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137871 |1436 |32819 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137872 |1437 |32826 |5 |0 |1A7C11|0 |2 |0 |
-ROW |137873 |1614 |34976 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137874 |1614 |34975 |0 |1 |2774A4|0 |2 |0 |
-ROW |137875 |1614 |34978 |0 |2 |F63100|0 |2 |0 |
-ROW |137876 |1614 |34979 |0 |3 |A54F10|0 |2 |0 |
-ROW |137877 |1614 |34980 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137878 |1615 |34982 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137879 |1615 |34997 |0 |1 |2774A4|0 |2 |0 |
-ROW |137880 |1615 |35001 |0 |2 |F63100|0 |2 |0 |
-ROW |137881 |1615 |35000 |0 |3 |A54F10|0 |2 |0 |
-ROW |137882 |1615 |34998 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137883 |1615 |34996 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137884 |1616 |35015 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137885 |1616 |35014 |0 |1 |2774A4|0 |2 |0 |
-ROW |137886 |1617 |35012 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137887 |1617 |35013 |0 |1 |2774A4|0 |2 |0 |
-ROW |137888 |1618 |34951 |0 |0 |1A7C11|0 |2 |0 |
-ROW |137889 |1618 |34952 |0 |1 |2774A4|0 |2 |0 |
-ROW |137890 |1618 |34953 |0 |2 |F63100|0 |2 |0 |
-ROW |137891 |1618 |34954 |0 |3 |A54F10|0 |2 |0 |
-ROW |137892 |1618 |34956 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |137893 |1618 |34950 |0 |5 |6C59DC|0 |2 |0 |
-ROW |137894 |1618 |34957 |0 |6 |AC8C14|0 |2 |0 |
-ROW |137895 |1618 |34959 |0 |7 |611F27|0 |2 |0 |
-ROW |137896 |1618 |34965 |0 |8 |F230E0|0 |2 |0 |
-ROW |137897 |529 |23357 |0 |0 |DD0000|0 |2 |0 |
-ROW |137898 |529 |23341 |0 |1 |00DDDD|0 |2 |0 |
-ROW |137899 |529 |23342 |0 |2 |3333FF|0 |2 |0 |
-ROW |137900 |529 |28251 |0 |3 |00FF00|0 |2 |0 |
-ROW |137901 |530 |23345 |0 |0 |990099|0 |2 |0 |
-ROW |137902 |530 |23348 |0 |1 |990000|0 |2 |0 |
-ROW |137903 |530 |23355 |0 |2 |0000EE|0 |2 |0 |
-ROW |137904 |530 |23352 |0 |3 |FF33FF|0 |2 |0 |
-ROW |137905 |530 |23356 |0 |4 |007700|0 |2 |0 |
-ROW |137906 |530 |23354 |0 |5 |003300|0 |2 |0 |
-ROW |137907 |530 |23346 |0 |6 |33FFFF|0 |2 |0 |
-ROW |137908 |530 |23349 |0 |7 |DD0000|0 |2 |0 |
-ROW |137909 |530 |23344 |0 |8 |000099|0 |2 |0 |
-ROW |137910 |530 |28250 |0 |9 |00FF00|0 |2 |0 |
-ROW |137911 |530 |33019 |0 |10 |5A2B57|0 |2 |0 |
-ROW |137912 |530 |39826 |0 |11 |9FA8DA|0 |2 |0 |
-ROW |137913 |531 |23353 |0 |0 |FFAA00|0 |2 |0 |
-ROW |137914 |531 |23347 |0 |1 |990099|0 |2 |0 |
-ROW |137915 |531 |23350 |0 |2 |EE0000|0 |2 |0 |
-ROW |137916 |531 |23343 |0 |3 |FF66FF|0 |2 |0 |
-ROW |137917 |531 |23351 |0 |4 |0000EE|0 |2 |0 |
-ROW |137918 |531 |23360 |0 |5 |00EE00|0 |2 |0 |
-ROW |137919 |531 |25369 |0 |6 |009999|0 |2 |0 |
-ROW |137920 |531 |25368 |0 |7 |BBBB00|0 |2 |0 |
-ROW |137921 |531 |28618 |0 |8 |990000|0 |2 |0 |
-ROW |137922 |531 |28619 |0 |9 |008800|0 |2 |0 |
-ROW |137923 |531 |33018 |0 |10 |2B5429|0 |2 |0 |
-ROW |137924 |807 |28617 |0 |0 |008800|0 |2 |0 |
-ROW |137925 |532 |23340 |5 |0 |00C800|0 |2 |0 |
-ROW |137926 |532 |23358 |0 |1 |C80000|0 |2 |0 |
-ROW |137927 |803 |28599 |0 |0 |DD0000|0 |2 |0 |
-ROW |137928 |803 |28596 |0 |1 |00DDDD|0 |2 |0 |
-ROW |137929 |803 |28597 |0 |2 |3333FF|0 |2 |0 |
-ROW |137930 |803 |28598 |0 |3 |00FF00|0 |2 |0 |
-ROW |137931 |804 |28602 |0 |0 |990099|0 |2 |0 |
-ROW |137932 |804 |28606 |0 |1 |990000|0 |2 |0 |
-ROW |137933 |804 |28608 |0 |2 |0000EE|0 |2 |0 |
-ROW |137934 |804 |28615 |0 |3 |FF33FF|0 |2 |0 |
-ROW |137935 |804 |28610 |0 |4 |007700|0 |2 |0 |
-ROW |137936 |804 |28611 |0 |5 |003300|0 |2 |0 |
-ROW |137937 |804 |28616 |0 |6 |33FFFF|0 |2 |0 |
-ROW |137938 |804 |28607 |0 |7 |DD0000|0 |2 |0 |
-ROW |137939 |804 |28604 |0 |8 |000099|0 |2 |0 |
-ROW |137940 |804 |28588 |0 |9 |00FF00|0 |2 |0 |
-ROW |137941 |804 |33013 |0 |10 |5A2B57|0 |2 |0 |
-ROW |137942 |804 |39825 |0 |11 |9FA8DA|0 |2 |0 |
-ROW |137943 |805 |28612 |0 |0 |FFAA00|0 |2 |0 |
-ROW |137944 |805 |28600 |0 |1 |990099|0 |2 |0 |
-ROW |137945 |805 |28613 |0 |2 |EE0000|0 |2 |0 |
-ROW |137946 |805 |28605 |0 |3 |FF66FF|0 |2 |0 |
-ROW |137947 |805 |28614 |0 |4 |0000EE|0 |2 |0 |
-ROW |137948 |805 |28601 |0 |5 |00EE00|0 |2 |0 |
-ROW |137949 |805 |28603 |0 |6 |009999|0 |2 |0 |
-ROW |137950 |805 |28609 |0 |7 |BBBB00|0 |2 |0 |
-ROW |137951 |805 |40188 |0 |8 |990000|0 |2 |0 |
-ROW |137952 |805 |40189 |0 |9 |008800|0 |2 |0 |
-ROW |137953 |805 |33012 |0 |10 |2B5429|0 |2 |0 |
-ROW |137954 |2113 |40187 |0 |0 |008800|0 |2 |0 |
-ROW |137955 |806 |28595 |5 |0 |00C800|0 |2 |0 |
-ROW |137956 |806 |28586 |0 |1 |C80000|0 |2 |0 |
-ROW |137957 |1445 |22404 |0 |0 |990099|0 |2 |0 |
-ROW |137958 |1445 |22399 |0 |1 |990000|0 |2 |0 |
-ROW |137959 |1445 |22416 |0 |2 |0000EE|0 |2 |0 |
-ROW |137960 |1445 |25366 |0 |3 |FF33FF|0 |2 |0 |
-ROW |137961 |1445 |22418 |0 |4 |009600|0 |2 |0 |
-ROW |137962 |1445 |22402 |0 |5 |003300|0 |2 |0 |
-ROW |137963 |1445 |22400 |0 |6 |33FFFF|0 |2 |0 |
-ROW |137964 |1445 |22689 |0 |7 |DD0000|0 |2 |0 |
-ROW |137965 |1445 |23171 |0 |8 |000099|0 |2 |0 |
-ROW |137966 |1445 |22401 |0 |9 |00FF00|0 |2 |0 |
-ROW |137967 |1445 |33023 |0 |10 |5A2B57|0 |2 |0 |
-ROW |137968 |1445 |39822 |0 |11 |9FA8DA|0 |2 |0 |
-ROW |137969 |1651 |22406 |0 |0 |00EE00|0 |2 |0 |
-ROW |137970 |1651 |25665 |0 |1 |0000EE|0 |2 |0 |
-ROW |137971 |1651 |25666 |0 |2 |FFAA00|0 |2 |0 |
-ROW |137972 |1651 |28537 |0 |3 |00EEEE|0 |2 |0 |
-ROW |137973 |1651 |28535 |0 |4 |990099|0 |2 |0 |
-ROW |137974 |1652 |22426 |0 |0 |00EE00|0 |2 |0 |
-ROW |137975 |1652 |22408 |0 |1 |FFAA00|0 |2 |0 |
-ROW |137976 |1652 |22412 |0 |2 |990099|0 |2 |0 |
-ROW |137977 |1652 |22414 |0 |3 |FF66FF|0 |2 |0 |
-ROW |137978 |1652 |23663 |0 |4 |009999|0 |2 |0 |
-ROW |137979 |1652 |33022 |0 |5 |2B5429|0 |2 |0 |
-ROW |137980 |1652 |22430 |0 |6 |8048B4|0 |2 |0 |
-ROW |137981 |1652 |22420 |0 |7 |FD5434|0 |2 |0 |
-ROW |137982 |1653 |22422 |0 |0 |00EE00|0 |2 |0 |
-ROW |137983 |1653 |22424 |0 |1 |0000EE|0 |2 |0 |
-ROW |137984 |1653 |25370 |0 |2 |FFAA00|0 |2 |0 |
-ROW |137985 |1653 |29822 |0 |3 |00EEEE|0 |2 |0 |
-ROW |137986 |1653 |34317 |0 |4 |990099|0 |2 |0 |
-ROW |137987 |1653 |34316 |0 |5 |EE0000|0 |2 |0 |
-ROW |137988 |1654 |33021 |0 |0 |C80000|0 |2 |0 |
-ROW |137989 |1654 |33020 |0 |1 |00C800|0 |2 |0 |
-ROW |137990 |527 |22199 |0 |0 |C80000|0 |2 |0 |
-ROW |137991 |527 |22196 |0 |1 |00C800|0 |2 |0 |
-ROW |137992 |410 |22185 |0 |0 |009900|0 |2 |0 |
-ROW |137993 |410 |22189 |0 |1 |DD0000|0 |2 |0 |
-ROW |137994 |410 |22396 |0 |2 |00DDDD|0 |2 |0 |
-ROW |137995 |410 |22183 |0 |3 |3333FF|0 |2 |0 |
-ROW |137996 |410 |22191 |0 |4 |999900|0 |2 |0 |
-ROW |137997 |410 |23634 |0 |5 |00FF00|0 |2 |0 |
-ROW |137998 |404 |22404 |0 |0 |990099|0 |2 |0 |
-ROW |137999 |404 |22399 |0 |1 |990000|0 |2 |0 |
-ROW |138000 |404 |22416 |0 |2 |0000EE|0 |2 |0 |
-ROW |138001 |404 |22430 |0 |3 |FF33FF|0 |2 |0 |
-ROW |138002 |404 |22418 |0 |4 |009600|0 |2 |0 |
-ROW |138003 |404 |22402 |0 |5 |003300|0 |2 |0 |
-ROW |138004 |404 |22420 |0 |6 |CCCC00|0 |2 |0 |
-ROW |138005 |404 |22400 |0 |7 |33FFFF|0 |2 |0 |
-ROW |138006 |404 |22689 |0 |8 |DD0000|0 |2 |0 |
-ROW |138007 |404 |23171 |0 |9 |000099|0 |2 |0 |
-ROW |138008 |404 |22401 |0 |10 |00FF00|0 |2 |0 |
-ROW |138009 |404 |33023 |0 |11 |5A2B57|0 |2 |0 |
-ROW |138010 |404 |39822 |0 |12 |9FA8DA|0 |2 |0 |
-ROW |138011 |406 |22426 |0 |0 |00EE00|0 |2 |0 |
-ROW |138012 |406 |22422 |0 |1 |0000EE|0 |2 |0 |
-ROW |138013 |406 |22408 |0 |2 |FFAA00|0 |2 |0 |
-ROW |138014 |406 |22424 |0 |3 |00EEEE|0 |2 |0 |
-ROW |138015 |406 |22412 |0 |4 |990099|0 |2 |0 |
-ROW |138016 |406 |22406 |0 |5 |EE0000|0 |2 |0 |
-ROW |138017 |406 |22414 |0 |6 |FF66FF|0 |2 |0 |
-ROW |138018 |406 |23663 |0 |7 |009999|0 |2 |0 |
-ROW |138019 |406 |25366 |0 |8 |BBBB00|0 |2 |0 |
-ROW |138020 |406 |25370 |0 |9 |AA0000|0 |2 |0 |
-ROW |138021 |406 |25665 |0 |10 |990000|0 |2 |0 |
-ROW |138022 |406 |25666 |0 |11 |008800|0 |2 |0 |
-ROW |138023 |406 |28535 |0 |12 |80B0E0|0 |2 |0 |
-ROW |138024 |406 |28537 |0 |13 |4080B0|0 |2 |0 |
-ROW |138025 |406 |29822 |0 |14 |8000FF|0 |2 |0 |
-ROW |138026 |406 |33022 |0 |15 |2B5429|0 |2 |0 |
-ROW |138027 |406 |34317 |0 |16 |8048B4|0 |2 |0 |
-ROW |138028 |406 |34316 |0 |17 |FD5434|0 |2 |0 |
-ROW |138029 |406 |35274 |0 |18 |790E1F|0 |2 |0 |
-ROW |138030 |406 |35272 |0 |19 |87AC4D|0 |2 |0 |
-ROW |138031 |788 |28248 |0 |0 |008800|0 |2 |0 |
-ROW |138032 |788 |28533 |0 |1 |EE0000|0 |2 |0 |
-ROW |138033 |392 |22187 |5 |0 |00C800|0 |2 |0 |
-ROW |138034 |392 |23251 |0 |1 |F63100|0 |2 |0 |
-ROW |138035 |1444 |28581 |0 |0 |990099|0 |2 |0 |
-ROW |138036 |1444 |28574 |0 |1 |990000|0 |2 |0 |
-ROW |138037 |1444 |28571 |0 |2 |0000EE|0 |2 |0 |
-ROW |138038 |1444 |28562 |0 |3 |FF33FF|0 |2 |0 |
-ROW |138039 |1444 |28570 |0 |4 |009600|0 |2 |0 |
-ROW |138040 |1444 |28569 |0 |5 |003300|0 |2 |0 |
-ROW |138041 |1444 |28552 |0 |6 |33FFFF|0 |2 |0 |
-ROW |138042 |1444 |28573 |0 |7 |DD0000|0 |2 |0 |
-ROW |138043 |1444 |28579 |0 |8 |000099|0 |2 |0 |
-ROW |138044 |1444 |28559 |0 |9 |00FF00|0 |2 |0 |
-ROW |138045 |1444 |33017 |0 |10 |5A2B57|0 |2 |0 |
-ROW |138046 |1444 |39824 |0 |11 |9FA8DA|0 |2 |0 |
-ROW |138047 |1659 |28567 |0 |0 |00EE00|0 |2 |0 |
-ROW |138048 |1659 |28575 |0 |1 |0000EE|0 |2 |0 |
-ROW |138049 |1659 |28576 |0 |2 |FFAA00|0 |2 |0 |
-ROW |138050 |1659 |28583 |0 |3 |00EEEE|0 |2 |0 |
-ROW |138051 |1659 |28582 |0 |4 |990099|0 |2 |0 |
-ROW |138052 |1660 |28572 |0 |0 |00EE00|0 |2 |0 |
-ROW |138053 |1660 |28568 |0 |1 |FFAA00|0 |2 |0 |
-ROW |138054 |1660 |28564 |0 |2 |990099|0 |2 |0 |
-ROW |138055 |1660 |28578 |0 |3 |FF66FF|0 |2 |0 |
-ROW |138056 |1660 |28580 |0 |4 |009999|0 |2 |0 |
-ROW |138057 |1660 |33016 |0 |5 |2B5429|0 |2 |0 |
-ROW |138058 |1660 |28565 |0 |6 |8048B4|0 |2 |0 |
-ROW |138059 |1660 |28577 |0 |7 |FD5434|0 |2 |0 |
-ROW |138060 |1661 |28566 |0 |0 |00EE00|0 |2 |0 |
-ROW |138061 |1661 |28561 |0 |1 |0000EE|0 |2 |0 |
-ROW |138062 |1661 |28563 |0 |2 |FFAA00|0 |2 |0 |
-ROW |138063 |1661 |29821 |0 |3 |00EEEE|0 |2 |0 |
-ROW |138064 |1661 |34314 |0 |4 |990099|0 |2 |0 |
-ROW |138065 |1661 |34315 |0 |5 |EE0000|0 |2 |0 |
-ROW |138066 |1662 |33015 |0 |0 |C80000|0 |2 |0 |
-ROW |138067 |1662 |33014 |0 |1 |00C800|0 |2 |0 |
-ROW |138068 |797 |28546 |0 |0 |C80000|0 |2 |0 |
-ROW |138069 |797 |28545 |0 |1 |00C800|0 |2 |0 |
-ROW |138070 |798 |28551 |0 |0 |009900|0 |2 |0 |
-ROW |138071 |798 |28543 |0 |1 |DD0000|0 |2 |0 |
-ROW |138072 |798 |28542 |0 |2 |00DDDD|0 |2 |0 |
-ROW |138073 |798 |28549 |0 |3 |3333FF|0 |2 |0 |
-ROW |138074 |798 |28544 |0 |4 |999900|0 |2 |0 |
-ROW |138075 |798 |28548 |0 |5 |00FF00|0 |2 |0 |
-ROW |138076 |799 |28581 |0 |0 |990099|0 |2 |0 |
-ROW |138077 |799 |28574 |0 |1 |990000|0 |2 |0 |
-ROW |138078 |799 |28571 |0 |2 |0000EE|0 |2 |0 |
-ROW |138079 |799 |28565 |0 |3 |FF33FF|0 |2 |0 |
-ROW |138080 |799 |28570 |0 |4 |009600|0 |2 |0 |
-ROW |138081 |799 |28569 |0 |5 |003300|0 |2 |0 |
-ROW |138082 |799 |28577 |0 |6 |CCCC00|0 |2 |0 |
-ROW |138083 |799 |28552 |0 |7 |33FFFF|0 |2 |0 |
-ROW |138084 |799 |28573 |0 |8 |DD0000|0 |2 |0 |
-ROW |138085 |799 |28579 |0 |9 |000099|0 |2 |0 |
-ROW |138086 |799 |28559 |0 |10 |00FF00|0 |2 |0 |
-ROW |138087 |799 |33017 |0 |11 |5A2B57|0 |2 |0 |
-ROW |138088 |799 |39824 |0 |12 |9FA8DA|0 |2 |0 |
-ROW |138089 |800 |28572 |0 |0 |00EE00|0 |2 |0 |
-ROW |138090 |800 |28566 |0 |1 |0000EE|0 |2 |0 |
-ROW |138091 |800 |28568 |0 |2 |FFAA00|0 |2 |0 |
-ROW |138092 |800 |28561 |0 |3 |00EEEE|0 |2 |0 |
-ROW |138093 |800 |28564 |0 |4 |990099|0 |2 |0 |
-ROW |138094 |800 |28567 |0 |5 |EE0000|0 |2 |0 |
-ROW |138095 |800 |28578 |0 |6 |FF66FF|0 |2 |0 |
-ROW |138096 |800 |28580 |0 |7 |009999|0 |2 |0 |
-ROW |138097 |800 |28562 |0 |8 |BBBB00|0 |2 |0 |
-ROW |138098 |800 |28563 |0 |9 |AA0000|0 |2 |0 |
-ROW |138099 |800 |28575 |0 |10 |990000|0 |2 |0 |
-ROW |138100 |800 |28576 |0 |11 |008800|0 |2 |0 |
-ROW |138101 |800 |28582 |0 |12 |80B0E0|0 |2 |0 |
-ROW |138102 |800 |28583 |0 |13 |4080B0|0 |2 |0 |
-ROW |138103 |800 |29821 |0 |14 |8000FF|0 |2 |0 |
-ROW |138104 |800 |33016 |0 |15 |2B5429|0 |2 |0 |
-ROW |138105 |800 |34314 |0 |16 |8048B4|0 |2 |0 |
-ROW |138106 |800 |34315 |0 |17 |FD5434|0 |2 |0 |
-ROW |138107 |800 |35279 |0 |18 |790E1F|0 |2 |0 |
-ROW |138108 |800 |35278 |0 |19 |87AC4D|0 |2 |0 |
-ROW |138109 |801 |28560 |0 |0 |008800|0 |2 |0 |
-ROW |138110 |801 |28584 |0 |1 |EE0000|0 |2 |0 |
-ROW |138111 |802 |28550 |5 |0 |00C800|0 |2 |0 |
-ROW |138112 |802 |28540 |0 |1 |F63100|0 |2 |0 |
-ROW |138113 |1438 |33001 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138114 |1438 |33002 |0 |1 |2774A4|0 |2 |0 |
-ROW |138115 |1438 |33000 |2 |2 |F63100|0 |2 |0 |
-ROW |138116 |1439 |33005 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138117 |1439 |33004 |0 |1 |2774A4|0 |2 |0 |
-ROW |138118 |1440 |32980 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138119 |1440 |32970 |0 |1 |2774A4|0 |2 |0 |
-ROW |138120 |1441 |32967 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138121 |1441 |32968 |0 |1 |2774A4|0 |2 |0 |
-ROW |138122 |1441 |32995 |2 |2 |F63100|0 |2 |0 |
-ROW |138123 |1442 |32997 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138124 |1442 |32984 |0 |1 |2774A4|0 |2 |0 |
-ROW |138125 |1443 |32973 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138126 |1443 |32971 |0 |1 |2774A4|0 |2 |0 |
-ROW |138127 |1503 |33518 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138128 |1504 |33501 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138129 |1447 |33113 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138130 |1447 |33112 |0 |1 |2774A4|0 |2 |0 |
-ROW |138131 |1447 |33099 |0 |2 |F63100|0 |2 |0 |
-ROW |138132 |1447 |33098 |0 |3 |A54F10|0 |2 |0 |
-ROW |138133 |1448 |33125 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138134 |1448 |33110 |0 |1 |2774A4|0 |2 |0 |
-ROW |138135 |1449 |33080 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138136 |1449 |33081 |2 |1 |2774A4|0 |2 |0 |
-ROW |138137 |1450 |33089 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138138 |1450 |33085 |2 |1 |2774A4|0 |2 |0 |
-ROW |138139 |1451 |33082 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138140 |1451 |33086 |2 |1 |2774A4|0 |2 |0 |
-ROW |138141 |1451 |33083 |0 |2 |F63100|0 |2 |0 |
-ROW |138142 |1451 |33084 |0 |3 |A54F10|0 |2 |0 |
-ROW |138143 |1451 |33087 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138144 |1451 |33088 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138145 |1452 |33093 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138146 |1452 |33092 |2 |1 |2774A4|0 |2 |0 |
-ROW |138147 |1453 |33077 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138148 |1453 |33063 |2 |1 |2774A4|0 |2 |0 |
-ROW |138149 |1454 |33094 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138150 |1454 |33059 |0 |1 |2774A4|0 |2 |0 |
-ROW |138151 |1455 |33066 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138152 |1455 |33071 |2 |1 |2774A4|0 |2 |0 |
-ROW |138153 |1455 |33067 |0 |2 |F63100|0 |2 |0 |
-ROW |138154 |1455 |33068 |0 |3 |A54F10|0 |2 |0 |
-ROW |138155 |1455 |33072 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138156 |1455 |33073 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138157 |1159 |30886 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138158 |1159 |30887 |0 |1 |2774A4|0 |2 |0 |
-ROW |138159 |1160 |30888 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138160 |1160 |30882 |0 |1 |2774A4|0 |2 |0 |
-ROW |138161 |1160 |30890 |0 |2 |F63100|0 |2 |0 |
-ROW |138162 |1160 |30881 |0 |3 |A54F10|0 |2 |0 |
-ROW |138163 |1160 |30889 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138164 |1161 |30847 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138165 |1161 |30872 |2 |1 |2774A4|0 |2 |0 |
-ROW |138166 |1162 |30853 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138167 |1162 |30849 |2 |1 |2774A4|0 |2 |0 |
-ROW |138168 |1162 |30852 |2 |2 |F63100|0 |2 |0 |
-ROW |138169 |1162 |30851 |2 |3 |A54F10|0 |2 |0 |
-ROW |138170 |1162 |30848 |2 |4 |FC6EA3|0 |2 |0 |
-ROW |138171 |1163 |30856 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138172 |1163 |30855 |0 |1 |2774A4|0 |2 |0 |
-ROW |138173 |1163 |30854 |2 |2 |F63100|1 |2 |0 |
-ROW |138174 |1164 |30859 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138175 |1164 |30870 |2 |1 |2774A4|0 |2 |0 |
-ROW |138176 |1165 |30860 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138177 |1165 |30871 |2 |1 |2774A4|0 |2 |0 |
-ROW |138178 |1166 |30868 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138179 |1166 |30869 |0 |1 |2774A4|0 |2 |0 |
-ROW |138180 |1166 |30867 |0 |2 |F63100|0 |2 |0 |
-ROW |138181 |1166 |30866 |0 |3 |A54F10|0 |2 |0 |
-ROW |138182 |1166 |30865 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138183 |1167 |30850 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138184 |1167 |30863 |5 |1 |2774A4|0 |2 |0 |
-ROW |138185 |1167 |30861 |5 |2 |F63100|0 |2 |0 |
-ROW |138186 |1168 |30833 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138187 |1168 |30841 |2 |1 |2774A4|0 |2 |0 |
-ROW |138188 |1168 |30857 |2 |2 |F63100|0 |2 |0 |
-ROW |138189 |1169 |30834 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138190 |1169 |30831 |2 |1 |2774A4|0 |2 |0 |
-ROW |138191 |1170 |30846 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138192 |1576 |34320 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138193 |1576 |30845 |0 |1 |2774A4|0 |2 |0 |
-ROW |138194 |1576 |30842 |0 |2 |F63100|0 |2 |0 |
-ROW |138195 |1576 |30873 |2 |3 |A54F10|1 |2 |0 |
-ROW |138196 |2339 |43148 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138197 |2339 |43146 |0 |1 |2774A4|0 |2 |0 |
-ROW |138198 |2340 |43144 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138199 |2340 |43145 |0 |1 |2774A4|0 |2 |0 |
-ROW |138200 |2340 |43170 |0 |2 |F63100|0 |2 |0 |
-ROW |138201 |2341 |43142 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138202 |2341 |43156 |0 |1 |2774A4|0 |2 |0 |
-ROW |138203 |2341 |43168 |0 |2 |F63100|0 |2 |0 |
-ROW |138204 |2341 |43167 |0 |3 |A54F10|0 |2 |0 |
-ROW |138205 |2341 |43169 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138206 |2341 |43166 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138207 |2341 |43165 |0 |6 |AC8C14|0 |2 |0 |
-ROW |138208 |2341 |43164 |0 |7 |611F27|0 |2 |0 |
-ROW |138209 |2342 |43163 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138210 |2342 |43155 |0 |1 |2774A4|0 |2 |0 |
-ROW |138211 |2342 |43162 |0 |2 |F63100|0 |2 |0 |
-ROW |138212 |2342 |43161 |0 |3 |A54F10|0 |2 |0 |
-ROW |138213 |2343 |43158 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138214 |2343 |43157 |0 |1 |2774A4|0 |2 |0 |
-ROW |138215 |2344 |43117 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138216 |2344 |43116 |0 |1 |2774A4|0 |2 |0 |
-ROW |138217 |2345 |43124 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138218 |2345 |43114 |0 |1 |2774A4|0 |2 |0 |
-ROW |138219 |2346 |43122 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138220 |2346 |43123 |0 |1 |2774A4|0 |2 |0 |
-ROW |138221 |2347 |43119 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138222 |2347 |43120 |0 |1 |2774A4|0 |2 |0 |
-ROW |138223 |2348 |43131 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138224 |2348 |43130 |0 |1 |2774A4|0 |2 |0 |
-ROW |138225 |2349 |43138 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138226 |2349 |43135 |0 |1 |2774A4|0 |2 |0 |
-ROW |138227 |2349 |43136 |0 |2 |F63100|0 |2 |0 |
-ROW |138228 |2349 |43133 |0 |3 |A54F10|0 |2 |0 |
-ROW |138229 |2349 |43134 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138230 |2350 |43113 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138231 |2350 |43098 |0 |1 |2774A4|0 |2 |0 |
-ROW |138232 |2351 |43087 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138233 |2351 |43088 |0 |1 |2774A4|0 |2 |0 |
-ROW |138234 |2352 |43101 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138235 |2352 |43100 |0 |1 |2774A4|0 |2 |0 |
-ROW |138236 |2352 |43099 |0 |2 |F63100|0 |2 |0 |
-ROW |138237 |2352 |43093 |0 |3 |A54F10|0 |2 |0 |
-ROW |138238 |2353 |43104 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138239 |2353 |43103 |0 |1 |2774A4|0 |2 |0 |
-ROW |138240 |2353 |43106 |0 |2 |F63100|0 |2 |0 |
-ROW |138241 |2353 |43102 |0 |3 |A54F10|0 |2 |0 |
-ROW |138242 |2354 |43108 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138243 |2354 |43107 |0 |1 |2774A4|0 |2 |0 |
-ROW |138244 |1663 |35291 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138245 |1663 |35300 |0 |1 |2774A4|0 |2 |0 |
-ROW |138246 |1664 |35295 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138247 |1664 |35296 |0 |1 |2774A4|0 |2 |0 |
-ROW |138248 |1665 |35301 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138249 |1665 |35306 |0 |1 |2774A4|0 |2 |0 |
-ROW |138250 |1665 |35304 |0 |2 |F63100|0 |2 |0 |
-ROW |138251 |1665 |35302 |0 |3 |A54F10|0 |2 |0 |
-ROW |138252 |1666 |35308 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138253 |1666 |35310 |0 |1 |2774A4|0 |2 |0 |
-ROW |138254 |1666 |35309 |0 |2 |F63100|0 |2 |0 |
-ROW |138255 |1667 |35322 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138256 |1667 |35320 |0 |1 |2774A4|0 |2 |0 |
-ROW |138257 |1668 |35329 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138258 |1668 |35330 |0 |1 |2774A4|0 |2 |0 |
-ROW |138259 |1669 |35332 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138260 |1669 |35334 |0 |1 |2774A4|0 |2 |0 |
-ROW |138261 |1670 |35335 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138262 |1670 |35333 |0 |1 |2774A4|0 |2 |0 |
-ROW |138263 |1671 |35338 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138264 |1671 |35341 |0 |1 |2774A4|0 |2 |0 |
-ROW |138265 |1671 |35339 |0 |2 |F63100|0 |2 |0 |
-ROW |138266 |1671 |35340 |0 |3 |A54F10|0 |2 |0 |
-ROW |138267 |1672 |35347 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138268 |1672 |35346 |0 |1 |2774A4|0 |2 |0 |
-ROW |138269 |1672 |35345 |0 |2 |F63100|0 |2 |0 |
-ROW |138270 |1673 |35350 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138271 |1673 |35351 |0 |1 |2774A4|0 |2 |0 |
-ROW |138272 |1674 |35349 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138273 |1674 |35352 |0 |1 |2774A4|0 |2 |0 |
-ROW |138274 |1674 |35353 |0 |2 |F63100|0 |2 |0 |
-ROW |138275 |1675 |35355 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138276 |1675 |35356 |0 |1 |2774A4|0 |2 |0 |
-ROW |138277 |1505 |33553 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138278 |1505 |33562 |0 |1 |2774A4|0 |2 |0 |
-ROW |138279 |1506 |33557 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138280 |1506 |33558 |0 |1 |2774A4|0 |2 |0 |
-ROW |138281 |1507 |33563 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138282 |1507 |33568 |0 |1 |2774A4|0 |2 |0 |
-ROW |138283 |1507 |33566 |0 |2 |F63100|0 |2 |0 |
-ROW |138284 |1507 |33564 |0 |3 |A54F10|0 |2 |0 |
-ROW |138285 |1508 |33570 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138286 |1508 |33572 |0 |1 |2774A4|0 |2 |0 |
-ROW |138287 |1508 |33571 |0 |2 |F63100|0 |2 |0 |
-ROW |138288 |1509 |33584 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138289 |1509 |33582 |0 |1 |2774A4|0 |2 |0 |
-ROW |138290 |1510 |33591 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138291 |1510 |33592 |0 |1 |2774A4|0 |2 |0 |
-ROW |138292 |1511 |33594 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138293 |1511 |33596 |0 |1 |2774A4|0 |2 |0 |
-ROW |138294 |1512 |33597 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138295 |1512 |33595 |0 |1 |2774A4|0 |2 |0 |
-ROW |138296 |1513 |33600 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138297 |1513 |33603 |0 |1 |2774A4|0 |2 |0 |
-ROW |138298 |1513 |33601 |0 |2 |F63100|0 |2 |0 |
-ROW |138299 |1513 |33602 |0 |3 |A54F10|0 |2 |0 |
-ROW |138300 |1514 |33609 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138301 |1514 |33608 |0 |1 |2774A4|0 |2 |0 |
-ROW |138302 |1514 |33607 |0 |2 |F63100|0 |2 |0 |
-ROW |138303 |1515 |33612 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138304 |1515 |33613 |0 |1 |2774A4|0 |2 |0 |
-ROW |138305 |1516 |33611 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138306 |1516 |33614 |0 |1 |2774A4|0 |2 |0 |
-ROW |138307 |1516 |33615 |0 |2 |F63100|0 |2 |0 |
-ROW |138308 |1517 |33617 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138309 |1517 |33618 |0 |1 |2774A4|0 |2 |0 |
-ROW |138310 |1807 |36817 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138311 |1807 |36816 |0 |1 |2774A4|0 |2 |0 |
-ROW |138312 |1808 |36815 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138313 |1808 |36814 |0 |1 |2774A4|0 |2 |0 |
-ROW |138314 |1808 |36818 |0 |2 |F63100|0 |2 |0 |
-ROW |138315 |1808 |36819 |0 |3 |A54F10|0 |2 |0 |
-ROW |138316 |1809 |36805 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138317 |1809 |36804 |0 |1 |2774A4|0 |2 |0 |
-ROW |138318 |1527 |33819 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138319 |1527 |33839 |0 |1 |2774A4|0 |2 |0 |
-ROW |138320 |1528 |33820 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138321 |1528 |33816 |0 |1 |2774A4|0 |2 |0 |
-ROW |138322 |1529 |33826 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138323 |1529 |33831 |0 |1 |2774A4|0 |2 |0 |
-ROW |138324 |1529 |33829 |0 |2 |F63100|0 |2 |0 |
-ROW |138325 |1529 |33821 |0 |3 |A54F10|0 |2 |0 |
-ROW |138326 |1529 |33825 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138327 |1529 |33833 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138328 |1529 |33823 |2 |6 |AC8C14|0 |2 |0 |
-ROW |138329 |1530 |33828 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138330 |1530 |33832 |0 |1 |2774A4|0 |2 |0 |
-ROW |138331 |1530 |33830 |0 |2 |F63100|0 |2 |0 |
-ROW |138332 |1530 |33822 |0 |3 |A54F10|0 |2 |0 |
-ROW |138333 |1530 |33815 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138334 |1530 |33834 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138335 |1530 |33824 |2 |6 |AC8C14|0 |2 |0 |
-ROW |138336 |1531 |33840 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138337 |1531 |33845 |0 |1 |2774A4|0 |2 |0 |
-ROW |138338 |1532 |33844 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138339 |1532 |33847 |0 |1 |2774A4|0 |2 |0 |
-ROW |138340 |1532 |33843 |0 |2 |F63100|0 |2 |0 |
-ROW |138341 |1532 |33841 |0 |3 |A54F10|0 |2 |0 |
-ROW |138342 |1533 |33863 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138343 |1534 |33792 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138344 |1534 |33791 |0 |1 |2774A4|0 |2 |0 |
-ROW |138345 |1534 |33793 |0 |2 |F63100|0 |2 |0 |
-ROW |138346 |1535 |33802 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138347 |1535 |33770 |0 |1 |2774A4|0 |2 |0 |
-ROW |138348 |1536 |33800 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138349 |1536 |33799 |0 |1 |2774A4|0 |2 |0 |
-ROW |138350 |1536 |33801 |0 |2 |F63100|0 |2 |0 |
-ROW |138351 |1537 |33798 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138352 |1537 |33806 |0 |1 |2774A4|0 |2 |0 |
-ROW |138353 |1537 |33774 |0 |2 |F63100|0 |2 |0 |
-ROW |138354 |1538 |33769 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138355 |1538 |33787 |0 |1 |2774A4|0 |2 |0 |
-ROW |138356 |1538 |33789 |0 |2 |F63100|0 |2 |0 |
-ROW |138357 |1538 |33790 |0 |3 |A54F10|0 |2 |0 |
-ROW |138358 |1539 |33785 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138359 |1539 |33772 |0 |1 |2774A4|0 |2 |0 |
-ROW |138360 |1539 |33773 |0 |2 |F63100|0 |2 |0 |
-ROW |138361 |1539 |33771 |0 |3 |A54F10|0 |2 |0 |
-ROW |138362 |1540 |33776 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138363 |1540 |33775 |0 |1 |2774A4|0 |2 |0 |
-ROW |138364 |1541 |33782 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138365 |1541 |33781 |0 |1 |2774A4|0 |2 |0 |
-ROW |138366 |1541 |33780 |0 |2 |F63100|0 |2 |0 |
-ROW |138367 |1541 |33783 |0 |3 |A54F10|0 |2 |0 |
-ROW |138368 |1541 |33777 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138369 |1541 |33778 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138370 |1542 |33804 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138371 |1542 |33803 |2 |1 |2774A4|0 |2 |0 |
-ROW |138372 |1542 |33805 |2 |2 |F63100|0 |2 |0 |
-ROW |138373 |1543 |33937 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138374 |1543 |33940 |0 |1 |2774A4|0 |2 |0 |
-ROW |138375 |1543 |33936 |0 |2 |F63100|0 |2 |0 |
-ROW |138376 |1543 |33934 |0 |3 |A54F10|0 |2 |0 |
-ROW |138377 |1544 |33915 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138378 |1544 |33911 |0 |1 |2774A4|0 |2 |0 |
-ROW |138379 |1544 |33912 |0 |2 |F63100|0 |2 |0 |
-ROW |138380 |1544 |33910 |0 |3 |A54F10|0 |2 |0 |
-ROW |138381 |1544 |33914 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138382 |1545 |33918 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138383 |1545 |33905 |0 |1 |2774A4|0 |2 |0 |
-ROW |138384 |1545 |33917 |0 |2 |F63100|0 |2 |0 |
-ROW |138385 |1545 |33916 |2 |3 |A54F10|1 |2 |0 |
-ROW |138386 |1546 |33908 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138387 |1546 |33909 |0 |1 |2774A4|0 |2 |0 |
-ROW |138388 |1546 |33902 |0 |2 |F63100|0 |2 |0 |
-ROW |138389 |1547 |33893 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138390 |1547 |33892 |0 |1 |2774A4|0 |2 |0 |
-ROW |138391 |1548 |33899 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138392 |1548 |33898 |2 |1 |2774A4|0 |2 |0 |
-ROW |138393 |1548 |33895 |2 |2 |F63100|0 |2 |0 |
-ROW |138394 |1548 |33900 |2 |3 |A54F10|0 |2 |0 |
-ROW |138395 |1548 |33896 |2 |4 |FC6EA3|0 |2 |0 |
-ROW |138396 |1548 |33891 |2 |5 |6C59DC|0 |2 |0 |
-ROW |138397 |1190 |31140 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138398 |1190 |31141 |0 |1 |2774A4|0 |2 |0 |
-ROW |138399 |1261 |31145 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138400 |1261 |31146 |0 |1 |2774A4|0 |2 |0 |
-ROW |138401 |1261 |31147 |0 |2 |F63100|0 |2 |0 |
-ROW |138402 |1191 |31138 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138403 |1192 |31157 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138404 |1192 |31158 |0 |1 |2774A4|0 |2 |0 |
-ROW |138405 |1193 |31092 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138406 |1193 |31108 |0 |1 |2774A4|0 |2 |0 |
-ROW |138407 |1193 |31110 |0 |2 |F63100|0 |2 |0 |
-ROW |138408 |1193 |31067 |0 |3 |A54F10|0 |2 |0 |
-ROW |138409 |1193 |31086 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138410 |1193 |31087 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138411 |1194 |31120 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138412 |1194 |31105 |0 |1 |2774A4|0 |2 |0 |
-ROW |138413 |1194 |31071 |0 |2 |F63100|0 |2 |0 |
-ROW |138414 |1194 |31081 |0 |3 |A54F10|0 |2 |0 |
-ROW |138415 |1195 |31098 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138416 |1195 |31099 |0 |1 |2774A4|0 |2 |0 |
-ROW |138417 |1196 |31072 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138418 |1196 |31072 |0 |1 |2774A4|0 |2 |0 |
-ROW |138419 |1197 |31103 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138420 |1197 |31074 |0 |1 |2774A4|0 |2 |0 |
-ROW |138421 |1198 |31104 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138422 |1198 |31063 |0 |1 |2774A4|0 |2 |0 |
-ROW |138423 |1198 |31111 |0 |2 |F63100|0 |2 |0 |
-ROW |138424 |1198 |31112 |0 |3 |A54F10|0 |2 |0 |
-ROW |138425 |1198 |31084 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138426 |1199 |31115 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138427 |1199 |31116 |0 |1 |2774A4|0 |2 |0 |
-ROW |138428 |1199 |31062 |0 |2 |F63100|0 |2 |0 |
-ROW |138429 |1199 |31118 |0 |3 |A54F10|0 |2 |0 |
-ROW |138430 |1199 |31056 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138431 |1200 |31107 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138432 |1200 |31090 |0 |1 |2774A4|0 |2 |0 |
-ROW |138433 |1201 |31097 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138434 |1201 |31096 |0 |1 |2774A4|0 |2 |0 |
-ROW |138435 |1202 |31089 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138436 |1202 |31061 |0 |1 |2774A4|0 |2 |0 |
-ROW |138437 |1203 |31064 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138438 |1204 |31065 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138439 |1204 |31066 |0 |1 |2774A4|0 |2 |0 |
-ROW |138440 |1204 |31068 |0 |2 |F63100|0 |2 |0 |
-ROW |138441 |1204 |31070 |0 |3 |A54F10|0 |2 |0 |
-ROW |138442 |1204 |31101 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138443 |1204 |31106 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138444 |1204 |31114 |0 |6 |AC8C14|0 |2 |0 |
-ROW |138445 |1205 |31069 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138446 |1206 |31076 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138447 |1206 |31078 |0 |1 |2774A4|0 |2 |0 |
-ROW |138448 |1206 |31109 |0 |2 |F63100|0 |2 |0 |
-ROW |138449 |1206 |31075 |0 |3 |A54F10|0 |2 |0 |
-ROW |138450 |1207 |31080 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138451 |1207 |31095 |0 |1 |2774A4|0 |2 |0 |
-ROW |138452 |1208 |31113 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138453 |1208 |31118 |0 |1 |2774A4|0 |2 |0 |
-ROW |138454 |1209 |31058 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138455 |1209 |31077 |0 |1 |2774A4|0 |2 |0 |
-ROW |138456 |1209 |31056 |0 |2 |F63100|0 |2 |0 |
-ROW |138457 |1209 |31117 |0 |3 |A54F10|0 |2 |0 |
-ROW |138458 |1109 |30453 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138459 |1109 |30455 |5 |1 |2774A4|0 |2 |0 |
-ROW |138460 |1110 |30471 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138461 |1110 |30470 |0 |1 |2774A4|0 |2 |0 |
-ROW |138462 |1110 |30466 |0 |2 |F63100|0 |2 |0 |
-ROW |138463 |1110 |30441 |0 |3 |A54F10|0 |2 |0 |
-ROW |138464 |1111 |30463 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138465 |1111 |30452 |0 |1 |2774A4|0 |2 |0 |
-ROW |138466 |1111 |30451 |0 |2 |F63100|0 |2 |0 |
-ROW |138467 |1111 |30437 |0 |3 |A54F10|0 |2 |0 |
-ROW |138468 |1112 |30456 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138469 |1112 |30457 |0 |1 |2774A4|0 |2 |0 |
-ROW |138470 |1112 |30458 |0 |2 |F63100|0 |2 |0 |
-ROW |138471 |1112 |30459 |0 |3 |A54F10|0 |2 |0 |
-ROW |138472 |1113 |30442 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138473 |1113 |30444 |0 |1 |2774A4|0 |2 |0 |
-ROW |138474 |1113 |30445 |0 |2 |F63100|0 |2 |0 |
-ROW |138475 |1114 |30446 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138476 |1114 |30447 |0 |1 |2774A4|0 |2 |0 |
-ROW |138477 |1114 |31168 |0 |2 |F63100|0 |2 |0 |
-ROW |138478 |1114 |30449 |0 |3 |A54F10|0 |2 |0 |
-ROW |138479 |1136 |30659 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138480 |1136 |30661 |5 |1 |2774A4|0 |2 |0 |
-ROW |138481 |1137 |30677 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138482 |1137 |30676 |0 |1 |2774A4|0 |2 |0 |
-ROW |138483 |1137 |30672 |0 |2 |F63100|0 |2 |0 |
-ROW |138484 |1137 |30647 |0 |3 |A54F10|0 |2 |0 |
-ROW |138485 |1138 |30669 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138486 |1138 |30658 |0 |1 |2774A4|0 |2 |0 |
-ROW |138487 |1138 |30657 |0 |2 |F63100|0 |2 |0 |
-ROW |138488 |1138 |30643 |0 |3 |A54F10|0 |2 |0 |
-ROW |138489 |1139 |30662 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138490 |1139 |30663 |0 |1 |2774A4|0 |2 |0 |
-ROW |138491 |1139 |30664 |0 |2 |F63100|0 |2 |0 |
-ROW |138492 |1139 |30665 |0 |3 |A54F10|0 |2 |0 |
-ROW |138493 |1140 |30648 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138494 |1140 |30650 |0 |1 |2774A4|0 |2 |0 |
-ROW |138495 |1140 |30651 |0 |2 |F63100|0 |2 |0 |
-ROW |138496 |1141 |30652 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138497 |1141 |30653 |0 |1 |2774A4|0 |2 |0 |
-ROW |138498 |1141 |31172 |0 |2 |F63100|0 |2 |0 |
-ROW |138499 |1141 |30655 |0 |3 |A54F10|0 |2 |0 |
-ROW |138500 |1115 |30506 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138501 |1115 |30507 |5 |1 |2774A4|0 |2 |0 |
-ROW |138502 |1116 |30504 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138503 |1116 |30505 |0 |1 |2774A4|0 |2 |0 |
-ROW |138504 |1116 |30518 |0 |2 |F63100|0 |2 |0 |
-ROW |138505 |1116 |30492 |0 |3 |A54F10|0 |2 |0 |
-ROW |138506 |1117 |30493 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138507 |1117 |30500 |0 |1 |2774A4|0 |2 |0 |
-ROW |138508 |1117 |30486 |0 |2 |F63100|0 |2 |0 |
-ROW |138509 |1117 |30488 |0 |3 |A54F10|0 |2 |0 |
-ROW |138510 |1118 |30508 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138511 |1118 |30509 |0 |1 |2774A4|0 |2 |0 |
-ROW |138512 |1118 |30503 |0 |2 |F63100|0 |2 |0 |
-ROW |138513 |1118 |30510 |0 |3 |A54F10|0 |2 |0 |
-ROW |138514 |1119 |30491 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138515 |1119 |30494 |0 |1 |2774A4|0 |2 |0 |
-ROW |138516 |1119 |30495 |0 |2 |F63100|0 |2 |0 |
-ROW |138517 |1120 |30496 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138518 |1120 |30497 |0 |1 |2774A4|0 |2 |0 |
-ROW |138519 |1120 |31176 |0 |2 |F63100|0 |2 |0 |
-ROW |138520 |1120 |30499 |0 |3 |A54F10|0 |2 |0 |
-ROW |138521 |1266 |31773 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138522 |1266 |31774 |0 |1 |2774A4|0 |2 |0 |
-ROW |138523 |1267 |31777 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138524 |1267 |31779 |0 |1 |2774A4|0 |2 |0 |
-ROW |138525 |1267 |33168 |0 |2 |F63100|0 |2 |0 |
-ROW |138526 |1268 |31685 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138527 |1268 |31738 |0 |1 |2774A4|0 |2 |0 |
-ROW |138528 |1269 |31723 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138529 |1269 |31757 |0 |1 |2774A4|0 |2 |0 |
-ROW |138530 |1269 |31721 |0 |2 |F63100|0 |2 |0 |
-ROW |138531 |1270 |31728 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138532 |1270 |31759 |0 |1 |2774A4|0 |2 |0 |
-ROW |138533 |1271 |31745 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138534 |1271 |31727 |0 |1 |2774A4|0 |2 |0 |
-ROW |138535 |1272 |31687 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138536 |1272 |31710 |0 |1 |2774A4|0 |2 |0 |
-ROW |138537 |1273 |31705 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138538 |1273 |31703 |0 |1 |2774A4|0 |2 |0 |
-ROW |138539 |1273 |31706 |0 |2 |F63100|0 |2 |0 |
-ROW |138540 |1273 |31701 |0 |3 |A54F10|0 |2 |0 |
-ROW |138541 |1273 |31708 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138542 |1274 |31715 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138543 |1274 |31726 |0 |1 |2774A4|0 |2 |0 |
-ROW |138544 |1274 |31717 |0 |2 |F63100|0 |2 |0 |
-ROW |138545 |1274 |31716 |0 |3 |A54F10|0 |2 |0 |
-ROW |138546 |1274 |31714 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138547 |1274 |31713 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138548 |1210 |31261 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138549 |1210 |31262 |0 |1 |2774A4|0 |2 |0 |
-ROW |138550 |1211 |31269 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138551 |1211 |31271 |0 |1 |2774A4|0 |2 |0 |
-ROW |138552 |1211 |33170 |0 |2 |F63100|0 |2 |0 |
-ROW |138553 |1212 |31233 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138554 |1212 |31234 |0 |1 |2774A4|0 |2 |0 |
-ROW |138555 |1213 |31216 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138556 |1213 |31237 |0 |1 |2774A4|0 |2 |0 |
-ROW |138557 |1213 |31214 |0 |2 |F63100|0 |2 |0 |
-ROW |138558 |1214 |31191 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138559 |1214 |31221 |0 |1 |2774A4|0 |2 |0 |
-ROW |138560 |1215 |31206 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138561 |1215 |31220 |0 |1 |2774A4|0 |2 |0 |
-ROW |138562 |1216 |31192 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138563 |1216 |31193 |0 |1 |2774A4|0 |2 |0 |
-ROW |138564 |1217 |31200 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138565 |1217 |31197 |0 |1 |2774A4|0 |2 |0 |
-ROW |138566 |1217 |31201 |0 |2 |F63100|0 |2 |0 |
-ROW |138567 |1217 |31198 |0 |3 |A54F10|0 |2 |0 |
-ROW |138568 |1217 |31202 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138569 |1218 |31207 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138570 |1218 |31208 |0 |1 |2774A4|0 |2 |0 |
-ROW |138571 |1218 |31210 |0 |2 |F63100|0 |2 |0 |
-ROW |138572 |1218 |31209 |0 |3 |A54F10|0 |2 |0 |
-ROW |138573 |1218 |31219 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138574 |1218 |31205 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138575 |1380 |32423 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138576 |1380 |32421 |0 |1 |2774A4|0 |2 |0 |
-ROW |138577 |1381 |32405 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138578 |1382 |32426 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138579 |1382 |32408 |0 |1 |2774A4|0 |2 |0 |
-ROW |138580 |1382 |32422 |0 |2 |F63100|0 |2 |0 |
-ROW |138581 |1382 |32425 |0 |3 |A54F10|0 |2 |0 |
-ROW |138582 |1383 |32409 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138583 |1384 |32419 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138584 |1384 |32416 |0 |1 |2774A4|1 |2 |0 |
-ROW |138585 |1384 |32413 |0 |2 |F63100|1 |2 |0 |
-ROW |138586 |1384 |32418 |5 |3 |A54F10|0 |2 |0 |
-ROW |138587 |1384 |32415 |5 |4 |FC6EA3|0 |2 |0 |
-ROW |138588 |1384 |32412 |5 |5 |6C59DC|0 |2 |0 |
-ROW |138589 |1385 |32420 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138590 |1385 |32417 |0 |1 |2774A4|0 |2 |0 |
-ROW |138591 |1385 |32414 |0 |2 |F63100|0 |2 |0 |
-ROW |138592 |1386 |32433 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138593 |1386 |32432 |0 |1 |2774A4|1 |2 |0 |
-ROW |138594 |1387 |32431 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138595 |1387 |32430 |0 |1 |2774A4|0 |2 |0 |
-ROW |138596 |1387 |32429 |0 |2 |F63100|0 |2 |0 |
-ROW |138597 |1387 |32428 |0 |3 |A54F10|0 |2 |0 |
-ROW |138598 |1387 |32427 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138599 |1388 |32386 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138600 |1388 |32391 |0 |1 |2774A4|1 |2 |0 |
-ROW |138601 |1388 |32387 |0 |2 |F63100|1 |2 |0 |
-ROW |138602 |1388 |32390 |0 |3 |A54F10|1 |2 |0 |
-ROW |138603 |1388 |32395 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138604 |1388 |32389 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138605 |1389 |32393 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138606 |1389 |32392 |0 |1 |2774A4|0 |2 |0 |
-ROW |138607 |1389 |32394 |0 |2 |F63100|1 |2 |0 |
-ROW |138608 |1389 |32388 |0 |3 |A54F10|1 |2 |0 |
-ROW |138609 |1390 |32401 |5 |0 |1A7C11|1 |2 |0 |
-ROW |138610 |1390 |32402 |0 |1 |2774A4|0 |2 |0 |
-ROW |138611 |1390 |32397 |0 |2 |F63100|1 |2 |0 |
-ROW |138612 |1390 |32398 |0 |3 |A54F10|1 |2 |0 |
-ROW |138613 |1390 |32399 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138614 |1390 |32400 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138615 |1390 |32396 |0 |6 |AC8C14|1 |2 |0 |
-ROW |138616 |1391 |32367 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138617 |1391 |32366 |0 |1 |2774A4|1 |2 |0 |
-ROW |138618 |1392 |32370 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138619 |1393 |32382 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138620 |1393 |32381 |0 |1 |2774A4|1 |2 |0 |
-ROW |138621 |1393 |32383 |0 |2 |F63100|1 |2 |0 |
-ROW |138622 |1393 |32384 |0 |3 |A54F10|1 |2 |0 |
-ROW |138623 |1394 |32377 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138624 |1394 |32374 |0 |1 |2774A4|1 |2 |0 |
-ROW |138625 |1395 |32403 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138626 |1395 |32385 |0 |1 |2774A4|1 |2 |0 |
-ROW |138627 |1219 |31363 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138628 |1219 |31346 |0 |1 |2774A4|0 |2 |0 |
-ROW |138629 |1219 |31345 |0 |2 |F63100|0 |2 |0 |
-ROW |138630 |1219 |31344 |0 |3 |A54F10|0 |2 |0 |
-ROW |138631 |1219 |31343 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138632 |1219 |31342 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138633 |1219 |31340 |0 |6 |AC8C14|0 |2 |0 |
-ROW |138634 |1219 |31339 |0 |7 |611F27|0 |2 |0 |
-ROW |138635 |1219 |31341 |0 |8 |F230E0|0 |2 |0 |
-ROW |138636 |1219 |31341 |0 |9 |FFAD40|0 |2 |0 |
-ROW |138637 |1220 |31337 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138638 |1221 |31360 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138639 |1221 |31359 |0 |1 |2774A4|0 |2 |0 |
-ROW |138640 |1221 |31357 |0 |2 |F63100|0 |2 |0 |
-ROW |138641 |1221 |31356 |0 |3 |A54F10|0 |2 |0 |
-ROW |138642 |1221 |31354 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138643 |1221 |31353 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138644 |1221 |31352 |0 |6 |AC8C14|0 |2 |0 |
-ROW |138645 |1221 |31350 |0 |7 |611F27|0 |2 |0 |
-ROW |138646 |1221 |31351 |0 |8 |F230E0|0 |2 |0 |
-ROW |138647 |1221 |31338 |0 |9 |FFAD40|0 |2 |0 |
-ROW |138648 |1221 |31349 |0 |10 |40CDFF|0 |2 |0 |
-ROW |138649 |1221 |31348 |0 |11 |40FFA0|0 |2 |0 |
-ROW |138650 |1221 |31347 |0 |12 |AE4500|0 |2 |0 |
-ROW |138651 |2295 |42744 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138652 |2295 |42748 |0 |1 |2774A4|1 |2 |0 |
-ROW |138653 |2295 |42751 |0 |2 |F63100|1 |2 |0 |
-ROW |138654 |2295 |42746 |5 |3 |A54F10|0 |2 |0 |
-ROW |138655 |2295 |42749 |5 |4 |FC6EA3|0 |2 |0 |
-ROW |138656 |2295 |42752 |5 |5 |6C59DC|0 |2 |0 |
-ROW |138657 |1222 |31336 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138658 |2296 |42745 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138659 |2296 |42747 |0 |1 |2774A4|0 |2 |0 |
-ROW |138660 |2296 |42750 |0 |2 |F63100|0 |2 |0 |
-ROW |138661 |1456 |33178 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138662 |1456 |33179 |0 |1 |2774A4|0 |2 |0 |
-ROW |138663 |1456 |33180 |0 |2 |F63100|0 |2 |0 |
-ROW |138664 |1087 |30346 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138665 |1087 |30345 |0 |1 |2774A4|0 |2 |0 |
-ROW |138666 |1088 |30350 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138667 |1088 |30349 |5 |1 |2774A4|0 |2 |0 |
-ROW |138668 |1089 |30396 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138669 |1090 |30398 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138670 |1091 |30322 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138671 |1091 |30277 |5 |1 |2774A4|0 |2 |0 |
-ROW |138672 |1092 |30284 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138673 |1093 |30313 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138674 |1093 |30314 |0 |1 |2774A4|0 |2 |0 |
-ROW |138675 |1093 |30315 |5 |2 |F63100|0 |2 |0 |
-ROW |138676 |1093 |30316 |0 |3 |A54F10|0 |2 |0 |
-ROW |138677 |1094 |30279 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138678 |1094 |30280 |2 |1 |2774A4|0 |2 |0 |
-ROW |138679 |1095 |30290 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138680 |1095 |30293 |0 |1 |2774A4|0 |2 |0 |
-ROW |138681 |1096 |30318 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138682 |1096 |30308 |2 |1 |2774A4|0 |2 |0 |
-ROW |138683 |1096 |30320 |2 |2 |F63100|0 |2 |0 |
-ROW |138684 |1097 |30317 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138685 |1098 |30289 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138686 |1098 |30291 |5 |1 |2774A4|0 |2 |0 |
-ROW |138687 |1099 |30334 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138688 |1099 |30325 |2 |1 |2774A4|0 |2 |0 |
-ROW |138689 |1100 |30306 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138690 |1101 |30274 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138691 |1102 |30281 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138692 |1577 |34351 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138693 |1577 |34350 |0 |1 |2774A4|0 |2 |0 |
-ROW |138694 |1578 |34387 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138695 |1578 |34388 |2 |1 |2774A4|0 |2 |0 |
-ROW |138696 |1579 |34393 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138697 |1579 |34386 |0 |1 |2774A4|0 |2 |0 |
-ROW |138698 |1580 |34370 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138699 |1580 |34384 |0 |1 |2774A4|0 |2 |0 |
-ROW |138700 |1580 |34383 |0 |2 |F63100|0 |2 |0 |
-ROW |138701 |1581 |34438 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138702 |1581 |34413 |0 |1 |2774A4|0 |2 |0 |
-ROW |138703 |1581 |34427 |0 |2 |F63100|0 |2 |0 |
-ROW |138704 |1582 |34420 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138705 |1582 |34419 |0 |1 |2774A4|0 |2 |0 |
-ROW |138706 |1582 |34418 |0 |2 |F63100|0 |2 |0 |
-ROW |138707 |675 |27294 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138708 |1035 |30094 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138709 |1038 |30101 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138710 |786 |28246 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138711 |687 |27417 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138712 |691 |27376 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138713 |1060 |30159 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138714 |2114 |40461 |0 |0 |969696|0 |9 |2 |
-ROW |138715 |2114 |40462 |0 |1 |C80000|0 |9 |0 |
-ROW |138716 |2115 |40465 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138717 |1065 |30161 |0 |0 |969696|0 |9 |2 |
-ROW |138718 |1065 |30162 |0 |1 |C80000|0 |9 |0 |
-ROW |138719 |2120 |40451 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138720 |1070 |30142 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138721 |741 |27084 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138722 |741 |27085 |2 |1 |2774A4|0 |2 |0 |
-ROW |138723 |741 |27083 |0 |2 |F63100|1 |2 |0 |
-ROW |138724 |741 |27086 |0 |3 |A54F10|1 |2 |0 |
-ROW |138725 |741 |27082 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138726 |741 |27079 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138727 |745 |27104 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138728 |745 |27105 |2 |1 |2774A4|0 |2 |0 |
-ROW |138729 |745 |27103 |0 |2 |F63100|1 |2 |0 |
-ROW |138730 |745 |27106 |0 |3 |A54F10|1 |2 |0 |
-ROW |138731 |745 |27102 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138732 |745 |27099 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138733 |766 |27124 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138734 |766 |27125 |2 |1 |2774A4|0 |2 |0 |
-ROW |138735 |766 |27123 |0 |2 |F63100|1 |2 |0 |
-ROW |138736 |766 |27126 |0 |3 |A54F10|1 |2 |0 |
-ROW |138737 |766 |27122 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138738 |766 |27119 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138739 |1223 |31370 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138740 |1223 |31371 |5 |1 |2774A4|0 |2 |0 |
-ROW |138741 |1226 |31380 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138742 |1226 |31383 |5 |1 |2774A4|0 |2 |0 |
-ROW |138743 |1229 |31379 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138744 |1229 |31382 |5 |1 |2774A4|0 |2 |0 |
-ROW |138745 |887 |29211 |0 |0 |969696|0 |9 |2 |
-ROW |138746 |887 |29210 |0 |1 |C80000|0 |9 |0 |
-ROW |138747 |899 |29216 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138748 |899 |29217 |2 |1 |2774A4|0 |2 |0 |
-ROW |138749 |899 |29218 |0 |2 |F63100|1 |2 |0 |
-ROW |138750 |899 |29219 |0 |3 |A54F10|1 |2 |0 |
-ROW |138751 |899 |29220 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138752 |899 |29221 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138753 |911 |29089 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138754 |911 |29102 |0 |1 |2774A4|0 |2 |0 |
-ROW |138755 |908 |29098 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138756 |908 |29097 |0 |1 |2774A4|0 |2 |0 |
-ROW |138757 |908 |29095 |0 |2 |F63100|0 |2 |0 |
-ROW |138758 |908 |29088 |0 |3 |A54F10|0 |2 |0 |
-ROW |138759 |908 |29094 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138760 |908 |29093 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138761 |908 |29092 |0 |6 |AC8C14|0 |2 |0 |
-ROW |138762 |908 |29091 |0 |7 |611F27|0 |2 |0 |
-ROW |138763 |908 |29090 |0 |8 |F230E0|0 |2 |0 |
-ROW |138764 |905 |29198 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138765 |917 |29104 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138766 |917 |29105 |5 |1 |2774A4|0 |2 |0 |
-ROW |138767 |914 |31364 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138768 |923 |29118 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138769 |923 |29119 |0 |1 |2774A4|0 |2 |0 |
-ROW |138770 |923 |29117 |0 |2 |F63100|0 |2 |0 |
-ROW |138771 |920 |29107 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138772 |920 |29106 |0 |1 |2774A4|0 |2 |0 |
-ROW |138773 |902 |29096 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138774 |902 |29101 |0 |1 |2774A4|0 |2 |0 |
-ROW |138775 |902 |29100 |0 |2 |F63100|0 |2 |0 |
-ROW |138776 |902 |29087 |0 |3 |A54F10|1 |2 |0 |
-ROW |138777 |1279 |31902 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138778 |1279 |31903 |5 |1 |2774A4|0 |2 |0 |
-ROW |138779 |1281 |31933 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138780 |1281 |31936 |5 |1 |2774A4|0 |2 |0 |
-ROW |138781 |1283 |31932 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138782 |1283 |31935 |5 |1 |2774A4|0 |2 |0 |
-ROW |138783 |1285 |31907 |0 |0 |969696|0 |9 |2 |
-ROW |138784 |1285 |31908 |0 |1 |C80000|0 |9 |0 |
-ROW |138785 |1287 |31911 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138786 |1287 |31914 |2 |1 |2774A4|0 |2 |0 |
-ROW |138787 |1287 |31913 |0 |2 |F63100|1 |2 |0 |
-ROW |138788 |1287 |31910 |0 |3 |A54F10|1 |2 |0 |
-ROW |138789 |1287 |31912 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138790 |1287 |31909 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138791 |1289 |31831 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138792 |1289 |31820 |0 |1 |2774A4|0 |2 |0 |
-ROW |138793 |1291 |31822 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138794 |1291 |31835 |0 |1 |2774A4|0 |2 |0 |
-ROW |138795 |1291 |31825 |0 |2 |F63100|0 |2 |0 |
-ROW |138796 |1291 |31826 |0 |3 |A54F10|0 |2 |0 |
-ROW |138797 |1291 |31823 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138798 |1291 |31827 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138799 |1291 |31824 |0 |6 |AC8C14|0 |2 |0 |
-ROW |138800 |1291 |31828 |0 |7 |611F27|0 |2 |0 |
-ROW |138801 |1291 |31830 |0 |8 |F230E0|0 |2 |0 |
-ROW |138802 |1293 |31892 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138803 |1295 |31855 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138804 |1295 |31853 |5 |1 |2774A4|0 |2 |0 |
-ROW |138805 |1297 |31893 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138806 |1299 |31838 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138807 |1299 |31839 |0 |1 |2774A4|0 |2 |0 |
-ROW |138808 |1299 |31837 |0 |2 |F63100|0 |2 |0 |
-ROW |138809 |1301 |31850 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138810 |1301 |31852 |0 |1 |2774A4|0 |2 |0 |
-ROW |138811 |1303 |31829 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138812 |1303 |31833 |0 |1 |2774A4|0 |2 |0 |
-ROW |138813 |1303 |31834 |0 |2 |F63100|0 |2 |0 |
-ROW |138814 |1303 |31832 |0 |3 |A54F10|1 |2 |0 |
-ROW |138815 |866 |29014 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138816 |866 |29015 |5 |1 |2774A4|0 |2 |0 |
-ROW |138817 |868 |29018 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138818 |868 |29019 |0 |1 |2774A4|0 |2 |0 |
-ROW |138819 |868 |29022 |0 |2 |F63100|0 |2 |0 |
-ROW |138820 |868 |29023 |0 |3 |A54F10|0 |2 |0 |
-ROW |138821 |868 |29020 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138822 |868 |29024 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138823 |868 |29021 |0 |6 |AC8C14|0 |2 |0 |
-ROW |138824 |868 |29025 |0 |7 |611F27|0 |2 |0 |
-ROW |138825 |868 |29026 |0 |8 |F230E0|0 |2 |0 |
-ROW |138826 |870 |29048 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138827 |872 |29028 |0 |0 |969696|0 |9 |2 |
-ROW |138828 |872 |29027 |0 |1 |C80000|0 |9 |0 |
-ROW |138829 |882 |28992 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138830 |882 |28991 |0 |1 |2774A4|0 |2 |0 |
-ROW |138831 |876 |28982 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138832 |876 |28983 |5 |1 |2774A4|0 |2 |0 |
-ROW |138833 |874 |28978 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138834 |878 |28985 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138835 |878 |28984 |0 |1 |2774A4|0 |2 |0 |
-ROW |138836 |880 |28987 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138837 |880 |28988 |0 |1 |2774A4|0 |2 |0 |
-ROW |138838 |880 |28989 |0 |2 |F63100|0 |2 |0 |
-ROW |138839 |880 |28990 |0 |3 |A54F10|1 |2 |0 |
-ROW |138840 |964 |29513 |0 |0 |969696|0 |9 |2 |
-ROW |138841 |964 |29512 |0 |1 |C80000|0 |9 |0 |
-ROW |138842 |1238 |31435 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138843 |1238 |31438 |2 |1 |2774A4|0 |2 |0 |
-ROW |138844 |1238 |31437 |0 |2 |F63100|1 |2 |0 |
-ROW |138845 |1238 |31434 |0 |3 |A54F10|1 |2 |0 |
-ROW |138846 |1238 |31436 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138847 |1238 |31433 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138848 |1488 |33321 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138849 |1488 |33324 |0 |1 |2774A4|0 |2 |0 |
-ROW |138850 |1490 |33322 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138851 |1490 |33323 |5 |1 |2774A4|0 |2 |0 |
-ROW |138852 |1240 |31441 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138853 |1240 |31442 |5 |1 |2774A4|0 |2 |0 |
-ROW |138854 |1242 |31440 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138855 |1242 |31439 |5 |1 |2774A4|0 |2 |0 |
-ROW |138856 |974 |29456 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138857 |974 |29455 |0 |1 |2774A4|0 |2 |0 |
-ROW |138858 |976 |29458 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138859 |976 |29457 |0 |1 |2774A4|0 |2 |0 |
-ROW |138860 |972 |29454 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138861 |978 |29462 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138862 |980 |31421 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138863 |980 |29466 |0 |1 |2774A4|0 |2 |0 |
-ROW |138864 |1305 |32013 |0 |0 |969696|0 |9 |2 |
-ROW |138865 |1305 |32014 |0 |1 |C80000|0 |9 |0 |
-ROW |138866 |1307 |32017 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138867 |1307 |32020 |2 |1 |2774A4|0 |2 |0 |
-ROW |138868 |1307 |32019 |0 |2 |F63100|1 |2 |0 |
-ROW |138869 |1307 |32016 |0 |3 |A54F10|1 |2 |0 |
-ROW |138870 |1307 |32018 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138871 |1307 |32015 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138872 |1492 |33329 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138873 |1492 |33332 |0 |1 |2774A4|0 |2 |0 |
-ROW |138874 |1494 |33330 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138875 |1494 |33331 |5 |1 |2774A4|0 |2 |0 |
-ROW |138876 |1309 |32023 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138877 |1309 |32024 |5 |1 |2774A4|0 |2 |0 |
-ROW |138878 |1311 |32022 |0 |0 |1A7C11|1 |2 |0 |
-ROW |138879 |1311 |32021 |5 |1 |2774A4|0 |2 |0 |
-ROW |138880 |1313 |31952 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138881 |1313 |31949 |0 |1 |2774A4|0 |2 |0 |
-ROW |138882 |1315 |31951 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138883 |1315 |31950 |0 |1 |2774A4|0 |2 |0 |
-ROW |138884 |1317 |31954 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138885 |1319 |31973 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138886 |1321 |31969 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138887 |1321 |31970 |0 |1 |2774A4|0 |2 |0 |
-ROW |138888 |2123 |40493 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138889 |2123 |40496 |2 |1 |2774A4|0 |2 |0 |
-ROW |138890 |2123 |40495 |0 |2 |F63100|1 |2 |0 |
-ROW |138891 |2123 |40492 |0 |3 |A54F10|1 |2 |0 |
-ROW |138892 |2123 |40494 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138893 |2123 |40491 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138894 |668 |27208 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138895 |1032 |30088 |2 |0 |1A7C11|0 |2 |0 |
-ROW |138896 |1032 |30087 |5 |1 |2774A4|0 |2 |0 |
-ROW |138897 |1033 |30089 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138898 |2124 |40519 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138899 |2124 |40522 |2 |1 |2774A4|0 |2 |0 |
-ROW |138900 |2124 |40521 |0 |2 |F63100|1 |2 |0 |
-ROW |138901 |2124 |40518 |0 |3 |A54F10|1 |2 |0 |
-ROW |138902 |2124 |40520 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138903 |2124 |40517 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138904 |2125 |40528 |0 |0 |969696|0 |9 |2 |
-ROW |138905 |2125 |40529 |0 |1 |C80000|0 |9 |0 |
-ROW |138906 |2126 |40532 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138907 |2127 |40506 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138908 |2128 |40547 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138909 |2128 |40550 |2 |1 |2774A4|0 |2 |0 |
-ROW |138910 |2128 |40549 |0 |2 |F63100|1 |2 |0 |
-ROW |138911 |2128 |40546 |0 |3 |A54F10|1 |2 |0 |
-ROW |138912 |2128 |40548 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138913 |2128 |40545 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138914 |671 |27240 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138915 |1034 |30093 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138916 |2129 |40584 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138917 |2129 |40587 |2 |1 |2774A4|0 |2 |0 |
-ROW |138918 |2129 |40586 |0 |2 |F63100|1 |2 |0 |
-ROW |138919 |2129 |40583 |0 |3 |A54F10|1 |2 |0 |
-ROW |138920 |2129 |40585 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138921 |2129 |40582 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138922 |2130 |40593 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138923 |2130 |40596 |2 |1 |2774A4|0 |2 |0 |
-ROW |138924 |2130 |40595 |0 |2 |F63100|1 |2 |0 |
-ROW |138925 |2130 |40592 |0 |3 |A54F10|1 |2 |0 |
-ROW |138926 |2130 |40594 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138927 |2130 |40591 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138928 |2131 |40559 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138929 |2132 |40572 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138930 |2133 |40565 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138931 |2134 |40578 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138932 |1676 |35369 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138933 |1677 |35372 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138934 |1678 |35379 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138935 |1678 |35386 |0 |1 |2774A4|0 |2 |0 |
-ROW |138936 |1678 |35377 |0 |2 |F63100|0 |2 |0 |
-ROW |138937 |1678 |35384 |0 |3 |A54F10|0 |2 |0 |
-ROW |138938 |1678 |35376 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |138939 |1678 |35383 |0 |5 |6C59DC|0 |2 |0 |
-ROW |138940 |1679 |35387 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138941 |1679 |35380 |0 |1 |2774A4|0 |2 |0 |
-ROW |138942 |1680 |35378 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138943 |1680 |35385 |0 |1 |2774A4|0 |2 |0 |
-ROW |138944 |1681 |35403 |0 |0 |1A7C11|0 |2 |0 |
-ROW |138945 |1681 |35404 |0 |1 |2774A4|0 |2 |0 |
-ROW |138946 |1549 |33966 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138947 |1550 |33971 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138948 |1551 |33974 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138949 |1551 |33977 |2 |1 |2774A4|0 |2 |0 |
-ROW |138950 |1551 |33976 |0 |2 |F63100|1 |2 |0 |
-ROW |138951 |1551 |33973 |0 |3 |A54F10|1 |2 |0 |
-ROW |138952 |1551 |33975 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138953 |1551 |33972 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138954 |1552 |34007 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138955 |1553 |34012 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138956 |1554 |34015 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138957 |1554 |34018 |2 |1 |2774A4|0 |2 |0 |
-ROW |138958 |1554 |34017 |0 |2 |F63100|1 |2 |0 |
-ROW |138959 |1554 |34014 |0 |3 |A54F10|1 |2 |0 |
-ROW |138960 |1554 |34016 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138961 |1554 |34013 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138962 |1555 |34048 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138963 |1556 |34053 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138964 |1557 |34056 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138965 |1557 |34059 |2 |1 |2774A4|0 |2 |0 |
-ROW |138966 |1557 |34058 |0 |2 |F63100|1 |2 |0 |
-ROW |138967 |1557 |34055 |0 |3 |A54F10|1 |2 |0 |
-ROW |138968 |1557 |34057 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138969 |1557 |34054 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138970 |1558 |34089 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138971 |1559 |34094 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138972 |1560 |34097 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138973 |1560 |34100 |2 |1 |2774A4|0 |2 |0 |
-ROW |138974 |1560 |34099 |0 |2 |F63100|1 |2 |0 |
-ROW |138975 |1560 |34096 |0 |3 |A54F10|1 |2 |0 |
-ROW |138976 |1560 |34098 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138977 |1560 |34095 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138978 |1561 |34130 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138979 |1562 |34135 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138980 |1563 |34138 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138981 |1563 |34141 |2 |1 |2774A4|0 |2 |0 |
-ROW |138982 |1563 |34140 |0 |2 |F63100|1 |2 |0 |
-ROW |138983 |1563 |34137 |0 |3 |A54F10|1 |2 |0 |
-ROW |138984 |1563 |34139 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138985 |1563 |34136 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138986 |2135 |40667 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138987 |2136 |40671 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138988 |2137 |40676 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138989 |2138 |40679 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138990 |2138 |40682 |2 |1 |2774A4|0 |2 |0 |
-ROW |138991 |2138 |40681 |0 |2 |F63100|1 |2 |0 |
-ROW |138992 |2138 |40678 |0 |3 |A54F10|1 |2 |0 |
-ROW |138993 |2138 |40680 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |138994 |2138 |40677 |0 |5 |6C59DC|1 |2 |0 |
-ROW |138995 |2139 |40690 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138996 |2140 |40695 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138997 |2141 |40698 |5 |0 |1A7C11|0 |2 |0 |
-ROW |138998 |2141 |40701 |2 |1 |2774A4|0 |2 |0 |
-ROW |138999 |2141 |40700 |0 |2 |F63100|1 |2 |0 |
-ROW |139000 |2141 |40697 |0 |3 |A54F10|1 |2 |0 |
-ROW |139001 |2141 |40699 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139002 |2141 |40696 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139003 |2142 |40605 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139004 |694 |27478 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139005 |1042 |30105 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139006 |2143 |40723 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139007 |2143 |40726 |2 |1 |2774A4|0 |2 |0 |
-ROW |139008 |2143 |40725 |0 |2 |F63100|1 |2 |0 |
-ROW |139009 |2143 |40722 |0 |3 |A54F10|1 |2 |0 |
-ROW |139010 |2143 |40724 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139011 |2143 |40721 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139012 |1043 |30107 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139013 |2144 |40745 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139014 |2144 |40748 |2 |1 |2774A4|0 |2 |0 |
-ROW |139015 |2144 |40747 |0 |2 |F63100|1 |2 |0 |
-ROW |139016 |2144 |40744 |0 |3 |A54F10|1 |2 |0 |
-ROW |139017 |2144 |40746 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139018 |2144 |40743 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139019 |698 |27511 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139020 |1044 |30108 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139021 |2145 |40767 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139022 |2145 |40770 |2 |1 |2774A4|0 |2 |0 |
-ROW |139023 |2145 |40769 |0 |2 |F63100|1 |2 |0 |
-ROW |139024 |2145 |40766 |0 |3 |A54F10|1 |2 |0 |
-ROW |139025 |2145 |40768 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139026 |2145 |40765 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139027 |701 |27547 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139028 |1045 |27591 |2 |0 |1A7C11|0 |2 |0 |
-ROW |139029 |1045 |30110 |5 |1 |2774A4|0 |2 |0 |
-ROW |139030 |1046 |30111 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139031 |2146 |40790 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139032 |2146 |40793 |2 |1 |2774A4|0 |2 |0 |
-ROW |139033 |2146 |40792 |0 |2 |F63100|1 |2 |0 |
-ROW |139034 |2146 |40789 |0 |3 |A54F10|1 |2 |0 |
-ROW |139035 |2146 |40791 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139036 |2146 |40788 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139037 |704 |27586 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139038 |1682 |35439 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139039 |1683 |35441 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139040 |1684 |35443 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139041 |1685 |35446 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139042 |1686 |35450 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139043 |1686 |35465 |0 |1 |2774A4|0 |2 |0 |
-ROW |139044 |1686 |35456 |0 |2 |F63100|0 |2 |0 |
-ROW |139045 |1686 |35447 |0 |3 |A54F10|0 |2 |0 |
-ROW |139046 |1686 |35468 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |139047 |1686 |35471 |0 |5 |6C59DC|0 |2 |0 |
-ROW |139048 |1686 |35459 |0 |6 |AC8C14|0 |2 |0 |
-ROW |139049 |1687 |35449 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139050 |1687 |35464 |0 |1 |2774A4|0 |2 |0 |
-ROW |139051 |1687 |35455 |0 |2 |F63100|0 |2 |0 |
-ROW |139052 |1687 |35461 |0 |3 |A54F10|0 |2 |0 |
-ROW |139053 |1687 |35467 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |139054 |1687 |35470 |0 |5 |6C59DC|0 |2 |0 |
-ROW |139055 |1687 |35457 |0 |6 |AC8C14|0 |2 |0 |
-ROW |139056 |1688 |35473 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139057 |1688 |35463 |0 |1 |2774A4|0 |2 |0 |
-ROW |139058 |1688 |35454 |0 |2 |F63100|0 |2 |0 |
-ROW |139059 |1688 |35472 |0 |3 |A54F10|0 |2 |0 |
-ROW |139060 |1688 |35466 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |139061 |1688 |35469 |0 |5 |6C59DC|0 |2 |0 |
-ROW |139062 |1688 |35458 |0 |6 |AC8C14|0 |2 |0 |
-ROW |139063 |1689 |35474 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139064 |1690 |35476 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139065 |1691 |35478 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139066 |1691 |35480 |0 |1 |2774A4|0 |2 |0 |
-ROW |139067 |1692 |35487 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139068 |1692 |35484 |0 |1 |2774A4|0 |2 |0 |
-ROW |139069 |1693 |35486 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139070 |1693 |35483 |0 |1 |2774A4|0 |2 |0 |
-ROW |139071 |1694 |35490 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139072 |1694 |35488 |0 |1 |2774A4|0 |2 |0 |
-ROW |139073 |1694 |35489 |0 |2 |F63100|0 |2 |0 |
-ROW |139074 |1695 |35497 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139075 |1695 |35493 |0 |1 |2774A4|1 |2 |0 |
-ROW |139076 |1695 |35503 |0 |2 |F63100|0 |2 |0 |
-ROW |139077 |1695 |35499 |0 |3 |A54F10|1 |2 |0 |
-ROW |139078 |1695 |35496 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |139079 |1695 |35502 |0 |5 |6C59DC|0 |2 |0 |
-ROW |139080 |1696 |35508 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139081 |1696 |35507 |0 |1 |2774A4|1 |2 |0 |
-ROW |139082 |1696 |35510 |0 |2 |F63100|0 |2 |0 |
-ROW |139083 |1696 |35509 |0 |3 |A54F10|1 |2 |0 |
-ROW |139084 |1697 |35516 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139085 |1697 |35515 |0 |1 |2774A4|1 |2 |0 |
-ROW |139086 |1697 |35518 |0 |2 |F63100|0 |2 |0 |
-ROW |139087 |1697 |35517 |0 |3 |A54F10|1 |2 |0 |
-ROW |139088 |1698 |35524 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139089 |1698 |35523 |0 |1 |2774A4|1 |2 |0 |
-ROW |139090 |1698 |35526 |0 |2 |F63100|0 |2 |0 |
-ROW |139091 |1698 |35525 |0 |3 |A54F10|1 |2 |0 |
-ROW |139092 |1699 |35531 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139093 |1699 |35529 |0 |1 |2774A4|0 |2 |0 |
-ROW |139094 |1699 |35530 |0 |2 |F63100|0 |2 |0 |
-ROW |139095 |1700 |35411 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139096 |1700 |35409 |0 |1 |2774A4|0 |2 |0 |
-ROW |139097 |1700 |35407 |0 |2 |F63100|0 |2 |0 |
-ROW |139098 |1700 |35413 |0 |3 |A54F10|0 |2 |0 |
-ROW |139099 |1700 |35412 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |139100 |1700 |35410 |0 |5 |6C59DC|0 |2 |0 |
-ROW |139101 |2147 |40813 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139102 |2147 |40816 |2 |1 |2774A4|0 |2 |0 |
-ROW |139103 |2147 |40815 |0 |2 |F63100|1 |2 |0 |
-ROW |139104 |2147 |40812 |0 |3 |A54F10|1 |2 |0 |
-ROW |139105 |2147 |40814 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139106 |2147 |40811 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139107 |708 |27671 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139108 |1047 |30112 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139109 |2148 |40836 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139110 |2148 |40839 |2 |1 |2774A4|0 |2 |0 |
-ROW |139111 |2148 |40838 |0 |2 |F63100|1 |2 |0 |
-ROW |139112 |2148 |40835 |0 |3 |A54F10|1 |2 |0 |
-ROW |139113 |2148 |40837 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139114 |2148 |40834 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139115 |1048 |30114 |2 |0 |1A7C11|0 |2 |0 |
-ROW |139116 |1048 |30113 |5 |1 |2774A4|0 |2 |0 |
-ROW |139117 |1049 |30115 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139118 |2149 |40859 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139119 |2149 |40862 |2 |1 |2774A4|0 |2 |0 |
-ROW |139120 |2149 |40861 |0 |2 |F63100|1 |2 |0 |
-ROW |139121 |2149 |40858 |0 |3 |A54F10|1 |2 |0 |
-ROW |139122 |2149 |40860 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139123 |2149 |40857 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139124 |775 |28143 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139125 |714 |27753 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139126 |1050 |30116 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139127 |2150 |40882 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139128 |2150 |40885 |2 |1 |2774A4|0 |2 |0 |
-ROW |139129 |2150 |40884 |0 |2 |F63100|1 |2 |0 |
-ROW |139130 |2150 |40881 |0 |3 |A54F10|1 |2 |0 |
-ROW |139131 |2150 |40883 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139132 |2150 |40880 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139133 |2151 |40904 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139134 |2151 |40907 |2 |1 |2774A4|0 |2 |0 |
-ROW |139135 |2151 |40906 |0 |2 |F63100|1 |2 |0 |
-ROW |139136 |2151 |40903 |0 |3 |A54F10|1 |2 |0 |
-ROW |139137 |2151 |40905 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139138 |2151 |40902 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139139 |856 |28894 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139140 |1051 |30118 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139141 |2152 |40926 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139142 |2152 |40929 |2 |1 |2774A4|0 |2 |0 |
-ROW |139143 |2152 |40928 |0 |2 |F63100|1 |2 |0 |
-ROW |139144 |2152 |40925 |0 |3 |A54F10|1 |2 |0 |
-ROW |139145 |2152 |40927 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139146 |2152 |40924 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139147 |1564 |34166 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139148 |1564 |34169 |2 |1 |2774A4|0 |2 |0 |
-ROW |139149 |1564 |34168 |0 |2 |F63100|1 |2 |0 |
-ROW |139150 |1564 |34165 |0 |3 |A54F10|1 |2 |0 |
-ROW |139151 |1564 |34167 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139152 |1564 |34164 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139153 |1565 |34174 |0 |0 |969696|0 |9 |2 |
-ROW |139154 |1565 |34175 |0 |1 |C80000|0 |9 |0 |
-ROW |139155 |1566 |34178 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139156 |1567 |34154 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139157 |1811 |36861 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139158 |1812 |36867 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139159 |1812 |36865 |0 |1 |2774A4|0 |2 |0 |
-ROW |139160 |1812 |36864 |0 |2 |F63100|0 |2 |0 |
-ROW |139161 |1812 |36866 |0 |3 |A54F10|0 |2 |0 |
-ROW |139162 |2153 |40948 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139163 |2153 |40951 |2 |1 |2774A4|0 |2 |0 |
-ROW |139164 |2153 |40950 |0 |2 |F63100|1 |2 |0 |
-ROW |139165 |2153 |40947 |0 |3 |A54F10|1 |2 |0 |
-ROW |139166 |2153 |40949 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139167 |2153 |40946 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139168 |1813 |36878 |0 |0 |969696|0 |9 |2 |
-ROW |139169 |1813 |36879 |0 |1 |C80000|0 |9 |0 |
-ROW |139170 |1814 |36853 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139171 |1816 |36915 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139172 |1817 |36921 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139173 |1817 |36919 |0 |1 |2774A4|0 |2 |0 |
-ROW |139174 |1817 |36918 |0 |2 |F63100|0 |2 |0 |
-ROW |139175 |1817 |36920 |0 |3 |A54F10|0 |2 |0 |
-ROW |139176 |2154 |40969 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139177 |2154 |40972 |2 |1 |2774A4|0 |2 |0 |
-ROW |139178 |2154 |40971 |0 |2 |F63100|1 |2 |0 |
-ROW |139179 |2154 |40968 |0 |3 |A54F10|1 |2 |0 |
-ROW |139180 |2154 |40970 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139181 |2154 |40967 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139182 |1818 |36932 |0 |0 |969696|0 |9 |2 |
-ROW |139183 |1818 |36933 |0 |1 |C80000|0 |9 |0 |
-ROW |139184 |1819 |36907 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139185 |1821 |36969 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139186 |1822 |36975 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139187 |1822 |36973 |0 |1 |2774A4|0 |2 |0 |
-ROW |139188 |1822 |36972 |0 |2 |F63100|0 |2 |0 |
-ROW |139189 |1822 |36974 |0 |3 |A54F10|0 |2 |0 |
-ROW |139190 |2155 |40990 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139191 |2155 |40993 |2 |1 |2774A4|0 |2 |0 |
-ROW |139192 |2155 |40992 |0 |2 |F63100|1 |2 |0 |
-ROW |139193 |2155 |40989 |0 |3 |A54F10|1 |2 |0 |
-ROW |139194 |2155 |40991 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139195 |2155 |40988 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139196 |1823 |36986 |0 |0 |969696|0 |9 |2 |
-ROW |139197 |1823 |36987 |0 |1 |C80000|0 |9 |0 |
-ROW |139198 |1824 |36961 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139199 |1826 |37023 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139200 |1827 |37029 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139201 |1827 |37027 |0 |1 |2774A4|0 |2 |0 |
-ROW |139202 |1827 |37026 |0 |2 |F63100|0 |2 |0 |
-ROW |139203 |1827 |37028 |0 |3 |A54F10|0 |2 |0 |
-ROW |139204 |2156 |41011 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139205 |2156 |41014 |2 |1 |2774A4|0 |2 |0 |
-ROW |139206 |2156 |41013 |0 |2 |F63100|1 |2 |0 |
-ROW |139207 |2156 |41010 |0 |3 |A54F10|1 |2 |0 |
-ROW |139208 |2156 |41012 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139209 |2156 |41009 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139210 |1828 |37040 |0 |0 |969696|0 |9 |2 |
-ROW |139211 |1828 |37041 |0 |1 |C80000|0 |9 |0 |
-ROW |139212 |1829 |37015 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139213 |1831 |37077 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139214 |1832 |37083 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139215 |1832 |37081 |0 |1 |2774A4|0 |2 |0 |
-ROW |139216 |1832 |37080 |0 |2 |F63100|0 |2 |0 |
-ROW |139217 |1832 |37082 |0 |3 |A54F10|0 |2 |0 |
-ROW |139218 |2157 |41032 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139219 |2157 |41035 |2 |1 |2774A4|0 |2 |0 |
-ROW |139220 |2157 |41034 |0 |2 |F63100|1 |2 |0 |
-ROW |139221 |2157 |41031 |0 |3 |A54F10|1 |2 |0 |
-ROW |139222 |2157 |41033 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139223 |2157 |41030 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139224 |1833 |37094 |0 |0 |969696|0 |9 |2 |
-ROW |139225 |1833 |37095 |0 |1 |C80000|0 |9 |0 |
-ROW |139226 |1834 |37069 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139227 |1836 |37131 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139228 |1837 |37137 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139229 |1837 |37135 |0 |1 |2774A4|0 |2 |0 |
-ROW |139230 |1837 |37134 |0 |2 |F63100|0 |2 |0 |
-ROW |139231 |1837 |37136 |0 |3 |A54F10|0 |2 |0 |
-ROW |139232 |2158 |41053 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139233 |2158 |41056 |2 |1 |2774A4|0 |2 |0 |
-ROW |139234 |2158 |41055 |0 |2 |F63100|1 |2 |0 |
-ROW |139235 |2158 |41052 |0 |3 |A54F10|1 |2 |0 |
-ROW |139236 |2158 |41054 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139237 |2158 |41051 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139238 |1838 |37148 |0 |0 |969696|0 |9 |2 |
-ROW |139239 |1838 |37149 |0 |1 |C80000|0 |9 |0 |
-ROW |139240 |1839 |37123 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139241 |1841 |37185 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139242 |1842 |37191 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139243 |1842 |37189 |0 |1 |2774A4|0 |2 |0 |
-ROW |139244 |1842 |37188 |0 |2 |F63100|0 |2 |0 |
-ROW |139245 |1842 |37190 |0 |3 |A54F10|0 |2 |0 |
-ROW |139246 |2159 |41074 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139247 |2159 |41077 |2 |1 |2774A4|0 |2 |0 |
-ROW |139248 |2159 |41076 |0 |2 |F63100|1 |2 |0 |
-ROW |139249 |2159 |41073 |0 |3 |A54F10|1 |2 |0 |
-ROW |139250 |2159 |41075 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139251 |2159 |41072 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139252 |1843 |37202 |0 |0 |969696|0 |9 |2 |
-ROW |139253 |1843 |37203 |0 |1 |C80000|0 |9 |0 |
-ROW |139254 |1844 |37177 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139255 |1846 |37239 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139256 |1847 |37245 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139257 |1847 |37243 |0 |1 |2774A4|0 |2 |0 |
-ROW |139258 |1847 |37242 |0 |2 |F63100|0 |2 |0 |
-ROW |139259 |1847 |37244 |0 |3 |A54F10|0 |2 |0 |
-ROW |139260 |2160 |41095 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139261 |2160 |41098 |2 |1 |2774A4|0 |2 |0 |
-ROW |139262 |2160 |41097 |0 |2 |F63100|1 |2 |0 |
-ROW |139263 |2160 |41094 |0 |3 |A54F10|1 |2 |0 |
-ROW |139264 |2160 |41096 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139265 |2160 |41093 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139266 |1848 |37256 |0 |0 |969696|0 |9 |2 |
-ROW |139267 |1848 |37257 |0 |1 |C80000|0 |9 |0 |
-ROW |139268 |1849 |37231 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139269 |1851 |37293 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139270 |1852 |37299 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139271 |1852 |37297 |0 |1 |2774A4|0 |2 |0 |
-ROW |139272 |1852 |37296 |0 |2 |F63100|0 |2 |0 |
-ROW |139273 |1852 |37298 |0 |3 |A54F10|0 |2 |0 |
-ROW |139274 |2161 |41116 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139275 |2161 |41119 |2 |1 |2774A4|0 |2 |0 |
-ROW |139276 |2161 |41118 |0 |2 |F63100|1 |2 |0 |
-ROW |139277 |2161 |41115 |0 |3 |A54F10|1 |2 |0 |
-ROW |139278 |2161 |41117 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139279 |2161 |41114 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139280 |1853 |37310 |0 |0 |969696|0 |9 |2 |
-ROW |139281 |1853 |37311 |0 |1 |C80000|0 |9 |0 |
-ROW |139282 |1854 |37285 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139283 |1856 |37347 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139284 |1857 |37353 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139285 |1857 |37351 |0 |1 |2774A4|0 |2 |0 |
-ROW |139286 |1857 |37350 |0 |2 |F63100|0 |2 |0 |
-ROW |139287 |1857 |37352 |0 |3 |A54F10|0 |2 |0 |
-ROW |139288 |2162 |41137 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139289 |2162 |41140 |2 |1 |2774A4|0 |2 |0 |
-ROW |139290 |2162 |41139 |0 |2 |F63100|1 |2 |0 |
-ROW |139291 |2162 |41136 |0 |3 |A54F10|1 |2 |0 |
-ROW |139292 |2162 |41138 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139293 |2162 |41135 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139294 |1858 |37364 |0 |0 |969696|0 |9 |2 |
-ROW |139295 |1858 |37365 |0 |1 |C80000|0 |9 |0 |
-ROW |139296 |1859 |37339 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139297 |1861 |37401 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139298 |1862 |37407 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139299 |1862 |37405 |0 |1 |2774A4|0 |2 |0 |
-ROW |139300 |1862 |37404 |0 |2 |F63100|0 |2 |0 |
-ROW |139301 |1862 |37406 |0 |3 |A54F10|0 |2 |0 |
-ROW |139302 |2163 |41158 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139303 |2163 |41161 |2 |1 |2774A4|0 |2 |0 |
-ROW |139304 |2163 |41160 |0 |2 |F63100|1 |2 |0 |
-ROW |139305 |2163 |41157 |0 |3 |A54F10|1 |2 |0 |
-ROW |139306 |2163 |41159 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139307 |2163 |41156 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139308 |1863 |37418 |0 |0 |969696|0 |9 |2 |
-ROW |139309 |1863 |37419 |0 |1 |C80000|0 |9 |0 |
-ROW |139310 |1864 |37393 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139311 |1866 |37455 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139312 |1867 |37461 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139313 |1867 |37459 |0 |1 |2774A4|0 |2 |0 |
-ROW |139314 |1867 |37458 |0 |2 |F63100|0 |2 |0 |
-ROW |139315 |1867 |37460 |0 |3 |A54F10|0 |2 |0 |
-ROW |139316 |2164 |41179 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139317 |2164 |41182 |2 |1 |2774A4|0 |2 |0 |
-ROW |139318 |2164 |41181 |0 |2 |F63100|1 |2 |0 |
-ROW |139319 |2164 |41178 |0 |3 |A54F10|1 |2 |0 |
-ROW |139320 |2164 |41180 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139321 |2164 |41177 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139322 |1868 |37472 |0 |0 |969696|0 |9 |2 |
-ROW |139323 |1868 |37473 |0 |1 |C80000|0 |9 |0 |
-ROW |139324 |1869 |37447 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139325 |1871 |37509 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139326 |1872 |37515 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139327 |1872 |37513 |0 |1 |2774A4|0 |2 |0 |
-ROW |139328 |1872 |37512 |0 |2 |F63100|0 |2 |0 |
-ROW |139329 |1872 |37514 |0 |3 |A54F10|0 |2 |0 |
-ROW |139330 |2165 |41200 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139331 |2165 |41203 |2 |1 |2774A4|0 |2 |0 |
-ROW |139332 |2165 |41202 |0 |2 |F63100|1 |2 |0 |
-ROW |139333 |2165 |41199 |0 |3 |A54F10|1 |2 |0 |
-ROW |139334 |2165 |41201 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139335 |2165 |41198 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139336 |1873 |37526 |0 |0 |969696|0 |9 |2 |
-ROW |139337 |1873 |37527 |0 |1 |C80000|0 |9 |0 |
-ROW |139338 |1874 |37501 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139339 |1876 |37563 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139340 |1877 |37569 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139341 |1877 |37567 |0 |1 |2774A4|0 |2 |0 |
-ROW |139342 |1877 |37566 |0 |2 |F63100|0 |2 |0 |
-ROW |139343 |1877 |37568 |0 |3 |A54F10|0 |2 |0 |
-ROW |139344 |2166 |41221 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139345 |2166 |41224 |2 |1 |2774A4|0 |2 |0 |
-ROW |139346 |2166 |41223 |0 |2 |F63100|1 |2 |0 |
-ROW |139347 |2166 |41220 |0 |3 |A54F10|1 |2 |0 |
-ROW |139348 |2166 |41222 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139349 |2166 |41219 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139350 |1878 |37580 |0 |0 |969696|0 |9 |2 |
-ROW |139351 |1878 |37581 |0 |1 |C80000|0 |9 |0 |
-ROW |139352 |1879 |37555 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139353 |1881 |37617 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139354 |1882 |37623 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139355 |1882 |37621 |0 |1 |2774A4|0 |2 |0 |
-ROW |139356 |1882 |37620 |0 |2 |F63100|0 |2 |0 |
-ROW |139357 |1882 |37622 |0 |3 |A54F10|0 |2 |0 |
-ROW |139358 |2167 |41242 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139359 |2167 |41245 |2 |1 |2774A4|0 |2 |0 |
-ROW |139360 |2167 |41244 |0 |2 |F63100|1 |2 |0 |
-ROW |139361 |2167 |41241 |0 |3 |A54F10|1 |2 |0 |
-ROW |139362 |2167 |41243 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139363 |2167 |41240 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139364 |1883 |37634 |0 |0 |969696|0 |9 |2 |
-ROW |139365 |1883 |37635 |0 |1 |C80000|0 |9 |0 |
-ROW |139366 |1884 |37609 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139367 |1886 |37671 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139368 |1887 |37677 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139369 |1887 |37675 |0 |1 |2774A4|0 |2 |0 |
-ROW |139370 |1887 |37674 |0 |2 |F63100|0 |2 |0 |
-ROW |139371 |1887 |37676 |0 |3 |A54F10|0 |2 |0 |
-ROW |139372 |2168 |41263 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139373 |2168 |41266 |2 |1 |2774A4|0 |2 |0 |
-ROW |139374 |2168 |41265 |0 |2 |F63100|1 |2 |0 |
-ROW |139375 |2168 |41262 |0 |3 |A54F10|1 |2 |0 |
-ROW |139376 |2168 |41264 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139377 |2168 |41261 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139378 |1888 |37688 |0 |0 |969696|0 |9 |2 |
-ROW |139379 |1888 |37689 |0 |1 |C80000|0 |9 |0 |
-ROW |139380 |1889 |37663 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139381 |1891 |37725 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139382 |1892 |37731 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139383 |1892 |37729 |0 |1 |2774A4|0 |2 |0 |
-ROW |139384 |1892 |37728 |0 |2 |F63100|0 |2 |0 |
-ROW |139385 |1892 |37730 |0 |3 |A54F10|0 |2 |0 |
-ROW |139386 |2169 |41284 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139387 |2169 |41287 |2 |1 |2774A4|0 |2 |0 |
-ROW |139388 |2169 |41286 |0 |2 |F63100|1 |2 |0 |
-ROW |139389 |2169 |41283 |0 |3 |A54F10|1 |2 |0 |
-ROW |139390 |2169 |41285 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139391 |2169 |41282 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139392 |1893 |37742 |0 |0 |969696|0 |9 |2 |
-ROW |139393 |1893 |37743 |0 |1 |C80000|0 |9 |0 |
-ROW |139394 |1894 |37717 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139395 |1896 |37779 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139396 |1897 |37785 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139397 |1897 |37783 |0 |1 |2774A4|0 |2 |0 |
-ROW |139398 |1897 |37782 |0 |2 |F63100|0 |2 |0 |
-ROW |139399 |1897 |37784 |0 |3 |A54F10|0 |2 |0 |
-ROW |139400 |2170 |41305 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139401 |2170 |41308 |2 |1 |2774A4|0 |2 |0 |
-ROW |139402 |2170 |41307 |0 |2 |F63100|1 |2 |0 |
-ROW |139403 |2170 |41304 |0 |3 |A54F10|1 |2 |0 |
-ROW |139404 |2170 |41306 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139405 |2170 |41303 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139406 |1898 |37796 |0 |0 |969696|0 |9 |2 |
-ROW |139407 |1898 |37797 |0 |1 |C80000|0 |9 |0 |
-ROW |139408 |1899 |37771 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139409 |1901 |37833 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139410 |1902 |37839 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139411 |1902 |37837 |0 |1 |2774A4|0 |2 |0 |
-ROW |139412 |1902 |37836 |0 |2 |F63100|0 |2 |0 |
-ROW |139413 |1902 |37838 |0 |3 |A54F10|0 |2 |0 |
-ROW |139414 |2171 |41326 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139415 |2171 |41329 |2 |1 |2774A4|0 |2 |0 |
-ROW |139416 |2171 |41328 |0 |2 |F63100|1 |2 |0 |
-ROW |139417 |2171 |41325 |0 |3 |A54F10|1 |2 |0 |
-ROW |139418 |2171 |41327 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139419 |2171 |41324 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139420 |1903 |37850 |0 |0 |969696|0 |9 |2 |
-ROW |139421 |1903 |37851 |0 |1 |C80000|0 |9 |0 |
-ROW |139422 |1904 |37825 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139423 |1906 |37887 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139424 |1907 |37893 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139425 |1907 |37891 |0 |1 |2774A4|0 |2 |0 |
-ROW |139426 |1907 |37890 |0 |2 |F63100|0 |2 |0 |
-ROW |139427 |1907 |37892 |0 |3 |A54F10|0 |2 |0 |
-ROW |139428 |2172 |41347 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139429 |2172 |41350 |2 |1 |2774A4|0 |2 |0 |
-ROW |139430 |2172 |41349 |0 |2 |F63100|1 |2 |0 |
-ROW |139431 |2172 |41346 |0 |3 |A54F10|1 |2 |0 |
-ROW |139432 |2172 |41348 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139433 |2172 |41345 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139434 |1908 |37904 |0 |0 |969696|0 |9 |2 |
-ROW |139435 |1908 |37905 |0 |1 |C80000|0 |9 |0 |
-ROW |139436 |1909 |37879 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139437 |1911 |37941 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139438 |1912 |37947 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139439 |1912 |37945 |0 |1 |2774A4|0 |2 |0 |
-ROW |139440 |1912 |37944 |0 |2 |F63100|0 |2 |0 |
-ROW |139441 |1912 |37946 |0 |3 |A54F10|0 |2 |0 |
-ROW |139442 |2173 |41368 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139443 |2173 |41371 |2 |1 |2774A4|0 |2 |0 |
-ROW |139444 |2173 |41370 |0 |2 |F63100|1 |2 |0 |
-ROW |139445 |2173 |41367 |0 |3 |A54F10|1 |2 |0 |
-ROW |139446 |2173 |41369 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139447 |2173 |41366 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139448 |1913 |37958 |0 |0 |969696|0 |9 |2 |
-ROW |139449 |1913 |37959 |0 |1 |C80000|0 |9 |0 |
-ROW |139450 |1914 |37933 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139451 |1916 |37995 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139452 |1917 |38001 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139453 |1917 |37999 |0 |1 |2774A4|0 |2 |0 |
-ROW |139454 |1917 |37998 |0 |2 |F63100|0 |2 |0 |
-ROW |139455 |1917 |38000 |0 |3 |A54F10|0 |2 |0 |
-ROW |139456 |2174 |41389 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139457 |2174 |41392 |2 |1 |2774A4|0 |2 |0 |
-ROW |139458 |2174 |41391 |0 |2 |F63100|1 |2 |0 |
-ROW |139459 |2174 |41388 |0 |3 |A54F10|1 |2 |0 |
-ROW |139460 |2174 |41390 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139461 |2174 |41387 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139462 |1918 |38012 |0 |0 |969696|0 |9 |2 |
-ROW |139463 |1918 |38013 |0 |1 |C80000|0 |9 |0 |
-ROW |139464 |1919 |37987 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139465 |1921 |38049 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139466 |1922 |38055 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139467 |1922 |38053 |0 |1 |2774A4|0 |2 |0 |
-ROW |139468 |1922 |38052 |0 |2 |F63100|0 |2 |0 |
-ROW |139469 |1922 |38054 |0 |3 |A54F10|0 |2 |0 |
-ROW |139470 |2175 |41410 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139471 |2175 |41413 |2 |1 |2774A4|0 |2 |0 |
-ROW |139472 |2175 |41412 |0 |2 |F63100|1 |2 |0 |
-ROW |139473 |2175 |41409 |0 |3 |A54F10|1 |2 |0 |
-ROW |139474 |2175 |41411 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139475 |2175 |41408 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139476 |1923 |38066 |0 |0 |969696|0 |9 |2 |
-ROW |139477 |1923 |38067 |0 |1 |C80000|0 |9 |0 |
-ROW |139478 |1924 |38041 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139479 |1926 |38103 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139480 |1927 |38109 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139481 |1927 |38107 |0 |1 |2774A4|0 |2 |0 |
-ROW |139482 |1927 |38106 |0 |2 |F63100|0 |2 |0 |
-ROW |139483 |1927 |38108 |0 |3 |A54F10|0 |2 |0 |
-ROW |139484 |2176 |41431 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139485 |2176 |41434 |2 |1 |2774A4|0 |2 |0 |
-ROW |139486 |2176 |41433 |0 |2 |F63100|1 |2 |0 |
-ROW |139487 |2176 |41430 |0 |3 |A54F10|1 |2 |0 |
-ROW |139488 |2176 |41432 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139489 |2176 |41429 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139490 |1928 |38120 |0 |0 |969696|0 |9 |2 |
-ROW |139491 |1928 |38121 |0 |1 |C80000|0 |9 |0 |
-ROW |139492 |1929 |38095 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139493 |1931 |38157 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139494 |1932 |38163 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139495 |1932 |38161 |0 |1 |2774A4|0 |2 |0 |
-ROW |139496 |1932 |38160 |0 |2 |F63100|0 |2 |0 |
-ROW |139497 |1932 |38162 |0 |3 |A54F10|0 |2 |0 |
-ROW |139498 |2177 |41452 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139499 |2177 |41455 |2 |1 |2774A4|0 |2 |0 |
-ROW |139500 |2177 |41454 |0 |2 |F63100|1 |2 |0 |
-ROW |139501 |2177 |41451 |0 |3 |A54F10|1 |2 |0 |
-ROW |139502 |2177 |41453 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139503 |2177 |41450 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139504 |1933 |38174 |0 |0 |969696|0 |9 |2 |
-ROW |139505 |1933 |38175 |0 |1 |C80000|0 |9 |0 |
-ROW |139506 |1934 |38149 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139507 |1936 |38211 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139508 |1937 |38217 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139509 |1937 |38215 |0 |1 |2774A4|0 |2 |0 |
-ROW |139510 |1937 |38214 |0 |2 |F63100|0 |2 |0 |
-ROW |139511 |1937 |38216 |0 |3 |A54F10|0 |2 |0 |
-ROW |139512 |2178 |41473 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139513 |2178 |41476 |2 |1 |2774A4|0 |2 |0 |
-ROW |139514 |2178 |41475 |0 |2 |F63100|1 |2 |0 |
-ROW |139515 |2178 |41472 |0 |3 |A54F10|1 |2 |0 |
-ROW |139516 |2178 |41474 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139517 |2178 |41471 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139518 |1938 |38228 |0 |0 |969696|0 |9 |2 |
-ROW |139519 |1938 |38229 |0 |1 |C80000|0 |9 |0 |
-ROW |139520 |1939 |38203 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139521 |1941 |38265 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139522 |1942 |38271 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139523 |1942 |38269 |0 |1 |2774A4|0 |2 |0 |
-ROW |139524 |1942 |38268 |0 |2 |F63100|0 |2 |0 |
-ROW |139525 |1942 |38270 |0 |3 |A54F10|0 |2 |0 |
-ROW |139526 |2179 |41494 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139527 |2179 |41497 |2 |1 |2774A4|0 |2 |0 |
-ROW |139528 |2179 |41496 |0 |2 |F63100|1 |2 |0 |
-ROW |139529 |2179 |41493 |0 |3 |A54F10|1 |2 |0 |
-ROW |139530 |2179 |41495 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139531 |2179 |41492 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139532 |1943 |38282 |0 |0 |969696|0 |9 |2 |
-ROW |139533 |1943 |38283 |0 |1 |C80000|0 |9 |0 |
-ROW |139534 |1944 |38257 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139535 |1946 |38319 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139536 |1947 |38325 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139537 |1947 |38323 |0 |1 |2774A4|0 |2 |0 |
-ROW |139538 |1947 |38322 |0 |2 |F63100|0 |2 |0 |
-ROW |139539 |1947 |38324 |0 |3 |A54F10|0 |2 |0 |
-ROW |139540 |2180 |41515 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139541 |2180 |41518 |2 |1 |2774A4|0 |2 |0 |
-ROW |139542 |2180 |41517 |0 |2 |F63100|1 |2 |0 |
-ROW |139543 |2180 |41514 |0 |3 |A54F10|1 |2 |0 |
-ROW |139544 |2180 |41516 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139545 |2180 |41513 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139546 |1948 |38336 |0 |0 |969696|0 |9 |2 |
-ROW |139547 |1948 |38337 |0 |1 |C80000|0 |9 |0 |
-ROW |139548 |1949 |38311 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139549 |1951 |38373 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139550 |1952 |38379 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139551 |1952 |38377 |0 |1 |2774A4|0 |2 |0 |
-ROW |139552 |1952 |38376 |0 |2 |F63100|0 |2 |0 |
-ROW |139553 |1952 |38378 |0 |3 |A54F10|0 |2 |0 |
-ROW |139554 |2181 |41536 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139555 |2181 |41539 |2 |1 |2774A4|0 |2 |0 |
-ROW |139556 |2181 |41538 |0 |2 |F63100|1 |2 |0 |
-ROW |139557 |2181 |41535 |0 |3 |A54F10|1 |2 |0 |
-ROW |139558 |2181 |41537 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139559 |2181 |41534 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139560 |1953 |38390 |0 |0 |969696|0 |9 |2 |
-ROW |139561 |1953 |38391 |0 |1 |C80000|0 |9 |0 |
-ROW |139562 |1954 |38365 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139563 |1956 |38427 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139564 |1957 |38433 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139565 |1957 |38431 |0 |1 |2774A4|0 |2 |0 |
-ROW |139566 |1957 |38430 |0 |2 |F63100|0 |2 |0 |
-ROW |139567 |1957 |38432 |0 |3 |A54F10|0 |2 |0 |
-ROW |139568 |2182 |41557 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139569 |2182 |41560 |2 |1 |2774A4|0 |2 |0 |
-ROW |139570 |2182 |41559 |0 |2 |F63100|1 |2 |0 |
-ROW |139571 |2182 |41556 |0 |3 |A54F10|1 |2 |0 |
-ROW |139572 |2182 |41558 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139573 |2182 |41555 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139574 |1958 |38444 |0 |0 |969696|0 |9 |2 |
-ROW |139575 |1958 |38445 |0 |1 |C80000|0 |9 |0 |
-ROW |139576 |1959 |38419 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139577 |1961 |38481 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139578 |1962 |38487 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139579 |1962 |38485 |0 |1 |2774A4|0 |2 |0 |
-ROW |139580 |1962 |38484 |0 |2 |F63100|0 |2 |0 |
-ROW |139581 |1962 |38486 |0 |3 |A54F10|0 |2 |0 |
-ROW |139582 |2183 |41578 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139583 |2183 |41581 |2 |1 |2774A4|0 |2 |0 |
-ROW |139584 |2183 |41580 |0 |2 |F63100|1 |2 |0 |
-ROW |139585 |2183 |41577 |0 |3 |A54F10|1 |2 |0 |
-ROW |139586 |2183 |41579 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139587 |2183 |41576 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139588 |1963 |38498 |0 |0 |969696|0 |9 |2 |
-ROW |139589 |1963 |38499 |0 |1 |C80000|0 |9 |0 |
-ROW |139590 |1964 |38473 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139591 |1966 |38535 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139592 |1967 |38541 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139593 |1967 |38539 |0 |1 |2774A4|0 |2 |0 |
-ROW |139594 |1967 |38538 |0 |2 |F63100|0 |2 |0 |
-ROW |139595 |1967 |38540 |0 |3 |A54F10|0 |2 |0 |
-ROW |139596 |2184 |41599 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139597 |2184 |41602 |2 |1 |2774A4|0 |2 |0 |
-ROW |139598 |2184 |41601 |0 |2 |F63100|1 |2 |0 |
-ROW |139599 |2184 |41598 |0 |3 |A54F10|1 |2 |0 |
-ROW |139600 |2184 |41600 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139601 |2184 |41597 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139602 |1968 |38552 |0 |0 |969696|0 |9 |2 |
-ROW |139603 |1968 |38553 |0 |1 |C80000|0 |9 |0 |
-ROW |139604 |1969 |38527 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139605 |1971 |38589 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139606 |1972 |38595 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139607 |1972 |38593 |0 |1 |2774A4|0 |2 |0 |
-ROW |139608 |1972 |38592 |0 |2 |F63100|0 |2 |0 |
-ROW |139609 |1972 |38594 |0 |3 |A54F10|0 |2 |0 |
-ROW |139610 |2185 |41620 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139611 |2185 |41623 |2 |1 |2774A4|0 |2 |0 |
-ROW |139612 |2185 |41622 |0 |2 |F63100|1 |2 |0 |
-ROW |139613 |2185 |41619 |0 |3 |A54F10|1 |2 |0 |
-ROW |139614 |2185 |41621 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139615 |2185 |41618 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139616 |1973 |38606 |0 |0 |969696|0 |9 |2 |
-ROW |139617 |1973 |38607 |0 |1 |C80000|0 |9 |0 |
-ROW |139618 |1974 |38581 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139619 |1976 |38643 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139620 |1977 |38649 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139621 |1977 |38647 |0 |1 |2774A4|0 |2 |0 |
-ROW |139622 |1977 |38646 |0 |2 |F63100|0 |2 |0 |
-ROW |139623 |1977 |38648 |0 |3 |A54F10|0 |2 |0 |
-ROW |139624 |2186 |41641 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139625 |2186 |41644 |2 |1 |2774A4|0 |2 |0 |
-ROW |139626 |2186 |41643 |0 |2 |F63100|1 |2 |0 |
-ROW |139627 |2186 |41640 |0 |3 |A54F10|1 |2 |0 |
-ROW |139628 |2186 |41642 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139629 |2186 |41639 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139630 |1978 |38660 |0 |0 |969696|0 |9 |2 |
-ROW |139631 |1978 |38661 |0 |1 |C80000|0 |9 |0 |
-ROW |139632 |1979 |38635 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139633 |1981 |38697 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139634 |1982 |38703 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139635 |1982 |38701 |0 |1 |2774A4|0 |2 |0 |
-ROW |139636 |1982 |38700 |0 |2 |F63100|0 |2 |0 |
-ROW |139637 |1982 |38702 |0 |3 |A54F10|0 |2 |0 |
-ROW |139638 |2187 |41662 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139639 |2187 |41665 |2 |1 |2774A4|0 |2 |0 |
-ROW |139640 |2187 |41664 |0 |2 |F63100|1 |2 |0 |
-ROW |139641 |2187 |41661 |0 |3 |A54F10|1 |2 |0 |
-ROW |139642 |2187 |41663 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139643 |2187 |41660 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139644 |1983 |38714 |0 |0 |969696|0 |9 |2 |
-ROW |139645 |1983 |38715 |0 |1 |C80000|0 |9 |0 |
-ROW |139646 |1984 |38689 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139647 |1986 |38751 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139648 |1987 |38757 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139649 |1987 |38755 |0 |1 |2774A4|0 |2 |0 |
-ROW |139650 |1987 |38754 |0 |2 |F63100|0 |2 |0 |
-ROW |139651 |1987 |38756 |0 |3 |A54F10|0 |2 |0 |
-ROW |139652 |2188 |41683 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139653 |2188 |41686 |2 |1 |2774A4|0 |2 |0 |
-ROW |139654 |2188 |41685 |0 |2 |F63100|1 |2 |0 |
-ROW |139655 |2188 |41682 |0 |3 |A54F10|1 |2 |0 |
-ROW |139656 |2188 |41684 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139657 |2188 |41681 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139658 |1988 |38768 |0 |0 |969696|0 |9 |2 |
-ROW |139659 |1988 |38769 |0 |1 |C80000|0 |9 |0 |
-ROW |139660 |1989 |38743 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139661 |1991 |38805 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139662 |1992 |38811 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139663 |1992 |38809 |0 |1 |2774A4|0 |2 |0 |
-ROW |139664 |1992 |38808 |0 |2 |F63100|0 |2 |0 |
-ROW |139665 |1992 |38810 |0 |3 |A54F10|0 |2 |0 |
-ROW |139666 |2189 |41704 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139667 |2189 |41707 |2 |1 |2774A4|0 |2 |0 |
-ROW |139668 |2189 |41706 |0 |2 |F63100|1 |2 |0 |
-ROW |139669 |2189 |41703 |0 |3 |A54F10|1 |2 |0 |
-ROW |139670 |2189 |41705 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139671 |2189 |41702 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139672 |1993 |38822 |0 |0 |969696|0 |9 |2 |
-ROW |139673 |1993 |38823 |0 |1 |C80000|0 |9 |0 |
-ROW |139674 |1994 |38797 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139675 |1996 |38859 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139676 |1997 |38865 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139677 |1997 |38863 |0 |1 |2774A4|0 |2 |0 |
-ROW |139678 |1997 |38862 |0 |2 |F63100|0 |2 |0 |
-ROW |139679 |1997 |38864 |0 |3 |A54F10|0 |2 |0 |
-ROW |139680 |2190 |41725 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139681 |2190 |41728 |2 |1 |2774A4|0 |2 |0 |
-ROW |139682 |2190 |41727 |0 |2 |F63100|1 |2 |0 |
-ROW |139683 |2190 |41724 |0 |3 |A54F10|1 |2 |0 |
-ROW |139684 |2190 |41726 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139685 |2190 |41723 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139686 |1998 |38876 |0 |0 |969696|0 |9 |2 |
-ROW |139687 |1998 |38877 |0 |1 |C80000|0 |9 |0 |
-ROW |139688 |1999 |38851 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139689 |2001 |38913 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139690 |2002 |38919 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139691 |2002 |38917 |0 |1 |2774A4|0 |2 |0 |
-ROW |139692 |2002 |38916 |0 |2 |F63100|0 |2 |0 |
-ROW |139693 |2002 |38918 |0 |3 |A54F10|0 |2 |0 |
-ROW |139694 |2191 |41746 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139695 |2191 |41749 |2 |1 |2774A4|0 |2 |0 |
-ROW |139696 |2191 |41748 |0 |2 |F63100|1 |2 |0 |
-ROW |139697 |2191 |41745 |0 |3 |A54F10|1 |2 |0 |
-ROW |139698 |2191 |41747 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139699 |2191 |41744 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139700 |2003 |38930 |0 |0 |969696|0 |9 |2 |
-ROW |139701 |2003 |38931 |0 |1 |C80000|0 |9 |0 |
-ROW |139702 |2004 |38905 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139703 |2006 |38967 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139704 |2007 |38973 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139705 |2007 |38971 |0 |1 |2774A4|0 |2 |0 |
-ROW |139706 |2007 |38970 |0 |2 |F63100|0 |2 |0 |
-ROW |139707 |2007 |38972 |0 |3 |A54F10|0 |2 |0 |
-ROW |139708 |2192 |41767 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139709 |2192 |41770 |2 |1 |2774A4|0 |2 |0 |
-ROW |139710 |2192 |41769 |0 |2 |F63100|1 |2 |0 |
-ROW |139711 |2192 |41766 |0 |3 |A54F10|1 |2 |0 |
-ROW |139712 |2192 |41768 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139713 |2192 |41765 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139714 |2008 |38984 |0 |0 |969696|0 |9 |2 |
-ROW |139715 |2008 |38985 |0 |1 |C80000|0 |9 |0 |
-ROW |139716 |2009 |38959 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139717 |2011 |39021 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139718 |2012 |39027 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139719 |2012 |39025 |0 |1 |2774A4|0 |2 |0 |
-ROW |139720 |2012 |39024 |0 |2 |F63100|0 |2 |0 |
-ROW |139721 |2012 |39026 |0 |3 |A54F10|0 |2 |0 |
-ROW |139722 |2193 |41788 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139723 |2193 |41791 |2 |1 |2774A4|0 |2 |0 |
-ROW |139724 |2193 |41790 |0 |2 |F63100|1 |2 |0 |
-ROW |139725 |2193 |41787 |0 |3 |A54F10|1 |2 |0 |
-ROW |139726 |2193 |41789 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139727 |2193 |41786 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139728 |2013 |39038 |0 |0 |969696|0 |9 |2 |
-ROW |139729 |2013 |39039 |0 |1 |C80000|0 |9 |0 |
-ROW |139730 |2014 |39013 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139731 |2016 |39075 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139732 |2017 |39081 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139733 |2017 |39079 |0 |1 |2774A4|0 |2 |0 |
-ROW |139734 |2017 |39078 |0 |2 |F63100|0 |2 |0 |
-ROW |139735 |2017 |39080 |0 |3 |A54F10|0 |2 |0 |
-ROW |139736 |2194 |41809 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139737 |2194 |41812 |2 |1 |2774A4|0 |2 |0 |
-ROW |139738 |2194 |41811 |0 |2 |F63100|1 |2 |0 |
-ROW |139739 |2194 |41808 |0 |3 |A54F10|1 |2 |0 |
-ROW |139740 |2194 |41810 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139741 |2194 |41807 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139742 |2018 |39092 |0 |0 |969696|0 |9 |2 |
-ROW |139743 |2018 |39093 |0 |1 |C80000|0 |9 |0 |
-ROW |139744 |2019 |39067 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139745 |2021 |39129 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139746 |2022 |39135 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139747 |2022 |39133 |0 |1 |2774A4|0 |2 |0 |
-ROW |139748 |2022 |39132 |0 |2 |F63100|0 |2 |0 |
-ROW |139749 |2022 |39134 |0 |3 |A54F10|0 |2 |0 |
-ROW |139750 |2195 |41830 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139751 |2195 |41833 |2 |1 |2774A4|0 |2 |0 |
-ROW |139752 |2195 |41832 |0 |2 |F63100|1 |2 |0 |
-ROW |139753 |2195 |41829 |0 |3 |A54F10|1 |2 |0 |
-ROW |139754 |2195 |41831 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139755 |2195 |41828 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139756 |2023 |39146 |0 |0 |969696|0 |9 |2 |
-ROW |139757 |2023 |39147 |0 |1 |C80000|0 |9 |0 |
-ROW |139758 |2024 |39121 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139759 |2026 |39183 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139760 |2027 |39189 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139761 |2027 |39187 |0 |1 |2774A4|0 |2 |0 |
-ROW |139762 |2027 |39186 |0 |2 |F63100|0 |2 |0 |
-ROW |139763 |2027 |39188 |0 |3 |A54F10|0 |2 |0 |
-ROW |139764 |2196 |41851 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139765 |2196 |41854 |2 |1 |2774A4|0 |2 |0 |
-ROW |139766 |2196 |41853 |0 |2 |F63100|1 |2 |0 |
-ROW |139767 |2196 |41850 |0 |3 |A54F10|1 |2 |0 |
-ROW |139768 |2196 |41852 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139769 |2196 |41849 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139770 |2028 |39200 |0 |0 |969696|0 |9 |2 |
-ROW |139771 |2028 |39201 |0 |1 |C80000|0 |9 |0 |
-ROW |139772 |2029 |39175 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139773 |2031 |39237 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139774 |2032 |39243 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139775 |2032 |39241 |0 |1 |2774A4|0 |2 |0 |
-ROW |139776 |2032 |39240 |0 |2 |F63100|0 |2 |0 |
-ROW |139777 |2032 |39242 |0 |3 |A54F10|0 |2 |0 |
-ROW |139778 |2197 |41872 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139779 |2197 |41875 |2 |1 |2774A4|0 |2 |0 |
-ROW |139780 |2197 |41874 |0 |2 |F63100|1 |2 |0 |
-ROW |139781 |2197 |41871 |0 |3 |A54F10|1 |2 |0 |
-ROW |139782 |2197 |41873 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139783 |2197 |41870 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139784 |2033 |39254 |0 |0 |969696|0 |9 |2 |
-ROW |139785 |2033 |39255 |0 |1 |C80000|0 |9 |0 |
-ROW |139786 |2034 |39229 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139787 |2036 |39291 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139788 |2037 |39297 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139789 |2037 |39295 |0 |1 |2774A4|0 |2 |0 |
-ROW |139790 |2037 |39294 |0 |2 |F63100|0 |2 |0 |
-ROW |139791 |2037 |39296 |0 |3 |A54F10|0 |2 |0 |
-ROW |139792 |2198 |41893 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139793 |2198 |41896 |2 |1 |2774A4|0 |2 |0 |
-ROW |139794 |2198 |41895 |0 |2 |F63100|1 |2 |0 |
-ROW |139795 |2198 |41892 |0 |3 |A54F10|1 |2 |0 |
-ROW |139796 |2198 |41894 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139797 |2198 |41891 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139798 |2038 |39308 |0 |0 |969696|0 |9 |2 |
-ROW |139799 |2038 |39309 |0 |1 |C80000|0 |9 |0 |
-ROW |139800 |2039 |39283 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139801 |2041 |39345 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139802 |2042 |39351 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139803 |2042 |39349 |0 |1 |2774A4|0 |2 |0 |
-ROW |139804 |2042 |39348 |0 |2 |F63100|0 |2 |0 |
-ROW |139805 |2042 |39350 |0 |3 |A54F10|0 |2 |0 |
-ROW |139806 |2199 |41914 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139807 |2199 |41917 |2 |1 |2774A4|0 |2 |0 |
-ROW |139808 |2199 |41916 |0 |2 |F63100|1 |2 |0 |
-ROW |139809 |2199 |41913 |0 |3 |A54F10|1 |2 |0 |
-ROW |139810 |2199 |41915 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139811 |2199 |41912 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139812 |2043 |39362 |0 |0 |969696|0 |9 |2 |
-ROW |139813 |2043 |39363 |0 |1 |C80000|0 |9 |0 |
-ROW |139814 |2044 |39337 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139815 |2046 |39399 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139816 |2047 |39405 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139817 |2047 |39403 |0 |1 |2774A4|0 |2 |0 |
-ROW |139818 |2047 |39402 |0 |2 |F63100|0 |2 |0 |
-ROW |139819 |2047 |39404 |0 |3 |A54F10|0 |2 |0 |
-ROW |139820 |2200 |41935 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139821 |2200 |41938 |2 |1 |2774A4|0 |2 |0 |
-ROW |139822 |2200 |41937 |0 |2 |F63100|1 |2 |0 |
-ROW |139823 |2200 |41934 |0 |3 |A54F10|1 |2 |0 |
-ROW |139824 |2200 |41936 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139825 |2200 |41933 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139826 |2048 |39416 |0 |0 |969696|0 |9 |2 |
-ROW |139827 |2048 |39417 |0 |1 |C80000|0 |9 |0 |
-ROW |139828 |2049 |39391 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139829 |2051 |39453 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139830 |2052 |39459 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139831 |2052 |39457 |0 |1 |2774A4|0 |2 |0 |
-ROW |139832 |2052 |39456 |0 |2 |F63100|0 |2 |0 |
-ROW |139833 |2052 |39458 |0 |3 |A54F10|0 |2 |0 |
-ROW |139834 |2201 |41956 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139835 |2201 |41959 |2 |1 |2774A4|0 |2 |0 |
-ROW |139836 |2201 |41958 |0 |2 |F63100|1 |2 |0 |
-ROW |139837 |2201 |41955 |0 |3 |A54F10|1 |2 |0 |
-ROW |139838 |2201 |41957 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139839 |2201 |41954 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139840 |2053 |39470 |0 |0 |969696|0 |9 |2 |
-ROW |139841 |2053 |39471 |0 |1 |C80000|0 |9 |0 |
-ROW |139842 |2054 |39445 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139843 |2056 |39507 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139844 |2057 |39513 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139845 |2057 |39511 |0 |1 |2774A4|0 |2 |0 |
-ROW |139846 |2057 |39510 |0 |2 |F63100|0 |2 |0 |
-ROW |139847 |2057 |39512 |0 |3 |A54F10|0 |2 |0 |
-ROW |139848 |2202 |41977 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139849 |2202 |41980 |2 |1 |2774A4|0 |2 |0 |
-ROW |139850 |2202 |41979 |0 |2 |F63100|1 |2 |0 |
-ROW |139851 |2202 |41976 |0 |3 |A54F10|1 |2 |0 |
-ROW |139852 |2202 |41978 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139853 |2202 |41975 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139854 |2058 |39524 |0 |0 |969696|0 |9 |2 |
-ROW |139855 |2058 |39525 |0 |1 |C80000|0 |9 |0 |
-ROW |139856 |2059 |39499 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139857 |2061 |39561 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139858 |2062 |39567 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139859 |2062 |39565 |0 |1 |2774A4|0 |2 |0 |
-ROW |139860 |2062 |39564 |0 |2 |F63100|0 |2 |0 |
-ROW |139861 |2062 |39566 |0 |3 |A54F10|0 |2 |0 |
-ROW |139862 |2203 |41998 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139863 |2203 |42001 |2 |1 |2774A4|0 |2 |0 |
-ROW |139864 |2203 |42000 |0 |2 |F63100|1 |2 |0 |
-ROW |139865 |2203 |41997 |0 |3 |A54F10|1 |2 |0 |
-ROW |139866 |2203 |41999 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139867 |2203 |41996 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139868 |2063 |39578 |0 |0 |969696|0 |9 |2 |
-ROW |139869 |2063 |39579 |0 |1 |C80000|0 |9 |0 |
-ROW |139870 |2064 |39553 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139871 |2066 |39615 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139872 |2067 |39621 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139873 |2067 |39619 |0 |1 |2774A4|0 |2 |0 |
-ROW |139874 |2067 |39618 |0 |2 |F63100|0 |2 |0 |
-ROW |139875 |2067 |39620 |0 |3 |A54F10|0 |2 |0 |
-ROW |139876 |2204 |42019 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139877 |2204 |42022 |2 |1 |2774A4|0 |2 |0 |
-ROW |139878 |2204 |42021 |0 |2 |F63100|1 |2 |0 |
-ROW |139879 |2204 |42018 |0 |3 |A54F10|1 |2 |0 |
-ROW |139880 |2204 |42020 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139881 |2204 |42017 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139882 |2068 |39632 |0 |0 |969696|0 |9 |2 |
-ROW |139883 |2068 |39633 |0 |1 |C80000|0 |9 |0 |
-ROW |139884 |2069 |39607 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139885 |2071 |39669 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139886 |2072 |39675 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139887 |2072 |39673 |0 |1 |2774A4|0 |2 |0 |
-ROW |139888 |2072 |39672 |0 |2 |F63100|0 |2 |0 |
-ROW |139889 |2072 |39674 |0 |3 |A54F10|0 |2 |0 |
-ROW |139890 |2205 |42040 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139891 |2205 |42043 |2 |1 |2774A4|0 |2 |0 |
-ROW |139892 |2205 |42042 |0 |2 |F63100|1 |2 |0 |
-ROW |139893 |2205 |42039 |0 |3 |A54F10|1 |2 |0 |
-ROW |139894 |2205 |42041 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139895 |2205 |42038 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139896 |2073 |39686 |0 |0 |969696|0 |9 |2 |
-ROW |139897 |2073 |39687 |0 |1 |C80000|0 |9 |0 |
-ROW |139898 |2074 |39661 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139899 |2076 |39723 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139900 |2077 |39729 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139901 |2077 |39727 |0 |1 |2774A4|0 |2 |0 |
-ROW |139902 |2077 |39726 |0 |2 |F63100|0 |2 |0 |
-ROW |139903 |2077 |39728 |0 |3 |A54F10|0 |2 |0 |
-ROW |139904 |2206 |42061 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139905 |2206 |42064 |2 |1 |2774A4|0 |2 |0 |
-ROW |139906 |2206 |42063 |0 |2 |F63100|1 |2 |0 |
-ROW |139907 |2206 |42060 |0 |3 |A54F10|1 |2 |0 |
-ROW |139908 |2206 |42062 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139909 |2206 |42059 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139910 |2078 |39740 |0 |0 |969696|0 |9 |2 |
-ROW |139911 |2078 |39741 |0 |1 |C80000|0 |9 |0 |
-ROW |139912 |2079 |39715 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139913 |724 |27904 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139914 |1396 |32439 |0 |0 |1A7C11|0 |2 |0 |
-ROW |139915 |1396 |32437 |0 |1 |2774A4|0 |2 |0 |
-ROW |139916 |1396 |32436 |0 |2 |F63100|0 |2 |0 |
-ROW |139917 |1396 |32438 |0 |3 |A54F10|0 |2 |0 |
-ROW |139918 |2207 |42082 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139919 |2207 |42085 |2 |1 |2774A4|0 |2 |0 |
-ROW |139920 |2207 |42084 |0 |2 |F63100|1 |2 |0 |
-ROW |139921 |2207 |42081 |0 |3 |A54F10|1 |2 |0 |
-ROW |139922 |2207 |42083 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139923 |2207 |42080 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139924 |1052 |27907 |0 |0 |969696|0 |9 |2 |
-ROW |139925 |1052 |27908 |0 |1 |C80000|0 |9 |0 |
-ROW |139926 |1053 |30120 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139927 |1457 |33206 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139928 |1457 |33193 |5 |1 |2774A4|0 |2 |0 |
-ROW |139929 |1458 |33195 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139930 |1458 |33203 |5 |1 |2774A4|0 |2 |0 |
-ROW |139931 |1458 |33202 |5 |2 |F63100|0 |2 |0 |
-ROW |139932 |1459 |33200 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139933 |1459 |33194 |5 |1 |2774A4|0 |2 |0 |
-ROW |139934 |1460 |33187 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139935 |1460 |33186 |5 |1 |2774A4|0 |2 |0 |
-ROW |139936 |1460 |33204 |5 |2 |F63100|0 |2 |0 |
-ROW |139937 |1461 |33226 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139938 |1461 |33215 |5 |1 |2774A4|0 |2 |0 |
-ROW |139939 |1462 |33207 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139940 |1463 |33223 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139941 |1463 |33218 |5 |1 |2774A4|0 |2 |0 |
-ROW |139942 |1464 |33210 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139943 |1464 |33209 |5 |1 |2774A4|0 |2 |0 |
-ROW |139944 |1464 |33224 |5 |2 |F63100|0 |2 |0 |
-ROW |139945 |1465 |33249 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139946 |1465 |33236 |5 |1 |2774A4|0 |2 |0 |
-ROW |139947 |1466 |33238 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139948 |1466 |33246 |5 |1 |2774A4|0 |2 |0 |
-ROW |139949 |1466 |33245 |5 |2 |F63100|0 |2 |0 |
-ROW |139950 |1467 |33243 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139951 |1467 |33237 |5 |1 |2774A4|0 |2 |0 |
-ROW |139952 |1468 |33230 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139953 |1468 |33229 |5 |1 |2774A4|0 |2 |0 |
-ROW |139954 |1468 |33247 |5 |2 |F63100|0 |2 |0 |
-ROW |139955 |1469 |33258 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139956 |1470 |33251 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139957 |1471 |33256 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139958 |1472 |33277 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139959 |1473 |33274 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139960 |1473 |33273 |5 |1 |2774A4|0 |2 |0 |
-ROW |139961 |1473 |33272 |5 |2 |F63100|0 |2 |0 |
-ROW |139962 |1474 |33270 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139963 |1475 |33269 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139964 |1476 |33261 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139965 |1476 |33275 |5 |1 |2774A4|0 |2 |0 |
-ROW |139966 |1477 |33296 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139967 |1478 |33293 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139968 |1478 |33292 |5 |1 |2774A4|0 |2 |0 |
-ROW |139969 |1478 |33291 |5 |2 |F63100|0 |2 |0 |
-ROW |139970 |1479 |33289 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139971 |1480 |33288 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139972 |1481 |33280 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139973 |1481 |33294 |5 |1 |2774A4|0 |2 |0 |
-ROW |139974 |1482 |33312 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139975 |1483 |33313 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139976 |1484 |33314 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139977 |1485 |33319 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139978 |1486 |33320 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139979 |1487 |33304 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139980 |1487 |33305 |5 |1 |2774A4|0 |2 |0 |
-ROW |139981 |2208 |42103 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139982 |2208 |42106 |2 |1 |2774A4|0 |2 |0 |
-ROW |139983 |2208 |42105 |0 |2 |F63100|1 |2 |0 |
-ROW |139984 |2208 |42102 |0 |3 |A54F10|1 |2 |0 |
-ROW |139985 |2208 |42104 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139986 |2208 |42101 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139987 |727 |27936 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139988 |1054 |27935 |2 |0 |1A7C11|0 |2 |0 |
-ROW |139989 |1054 |30122 |5 |1 |2774A4|0 |2 |0 |
-ROW |139990 |1055 |30123 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139991 |2209 |42125 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139992 |2209 |42128 |2 |1 |2774A4|0 |2 |0 |
-ROW |139993 |2209 |42127 |0 |2 |F63100|1 |2 |0 |
-ROW |139994 |2209 |42124 |0 |3 |A54F10|1 |2 |0 |
-ROW |139995 |2209 |42126 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |139996 |2209 |42123 |0 |5 |6C59DC|1 |2 |0 |
-ROW |139997 |730 |27975 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139998 |1056 |30126 |5 |0 |1A7C11|0 |2 |0 |
-ROW |139999 |733 |28003 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140000 |1057 |30131 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140001 |2210 |42147 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140002 |2210 |42150 |2 |1 |2774A4|0 |2 |0 |
-ROW |140003 |2210 |42149 |0 |2 |F63100|1 |2 |0 |
-ROW |140004 |2210 |42146 |0 |3 |A54F10|1 |2 |0 |
-ROW |140005 |2210 |42148 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140006 |2210 |42145 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140007 |2211 |42168 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140008 |2211 |42171 |2 |1 |2774A4|0 |2 |0 |
-ROW |140009 |2211 |42170 |0 |2 |F63100|1 |2 |0 |
-ROW |140010 |2211 |42167 |0 |3 |A54F10|1 |2 |0 |
-ROW |140011 |2211 |42169 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140012 |2211 |42166 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140013 |736 |28031 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140014 |1058 |30136 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140015 |2080 |39768 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140016 |2080 |39769 |0 |1 |2774A4|0 |2 |0 |
-ROW |140017 |2080 |39770 |0 |2 |F63100|0 |2 |0 |
-ROW |140018 |2080 |39771 |0 |3 |A54F10|0 |2 |0 |
-ROW |140019 |2081 |39772 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140020 |2081 |39773 |0 |1 |2774A4|0 |2 |0 |
-ROW |140021 |2082 |39774 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140022 |2082 |39775 |0 |1 |2774A4|0 |2 |0 |
-ROW |140023 |2082 |39780 |0 |2 |F63100|0 |2 |0 |
-ROW |140024 |2083 |39777 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140025 |2083 |39778 |0 |1 |2774A4|0 |2 |0 |
-ROW |140026 |2083 |39781 |0 |2 |F63100|0 |2 |0 |
-ROW |140027 |2084 |39792 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140028 |2084 |39790 |0 |1 |2774A4|0 |2 |0 |
-ROW |140029 |2084 |39793 |0 |2 |F63100|0 |2 |0 |
-ROW |140030 |2084 |39795 |0 |3 |A54F10|0 |2 |0 |
-ROW |140031 |2084 |39796 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140032 |1701 |35553 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140033 |1701 |35556 |0 |1 |2774A4|0 |2 |0 |
-ROW |140034 |1702 |35558 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140035 |1702 |35561 |0 |1 |2774A4|0 |2 |0 |
-ROW |140036 |1703 |35562 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140037 |1704 |35563 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140038 |1705 |35592 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140039 |1705 |35584 |0 |1 |2774A4|0 |2 |0 |
-ROW |140040 |1705 |35594 |0 |2 |F63100|0 |2 |0 |
-ROW |140041 |1705 |35586 |0 |3 |A54F10|0 |2 |0 |
-ROW |140042 |1705 |35595 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140043 |1705 |35587 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140044 |1706 |35593 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140045 |1706 |35585 |0 |1 |2774A4|0 |2 |0 |
-ROW |140046 |1707 |35583 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140047 |1707 |35591 |0 |1 |2774A4|0 |2 |0 |
-ROW |140048 |1708 |35598 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140049 |1709 |35606 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140050 |1710 |35607 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140051 |1711 |35566 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140052 |1712 |35622 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140053 |1713 |35634 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140054 |1713 |35626 |0 |1 |2774A4|0 |2 |0 |
-ROW |140055 |1713 |35636 |0 |2 |F63100|0 |2 |0 |
-ROW |140056 |1713 |35628 |0 |3 |A54F10|0 |2 |0 |
-ROW |140057 |1713 |35637 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140058 |1713 |35629 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140059 |1714 |35635 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140060 |1714 |35627 |0 |1 |2774A4|0 |2 |0 |
-ROW |140061 |1715 |35625 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140062 |1715 |35633 |0 |1 |2774A4|0 |2 |0 |
-ROW |140063 |1716 |35640 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140064 |1717 |35641 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140065 |1718 |35610 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140066 |1719 |35658 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140067 |1720 |35659 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140068 |1721 |35660 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140069 |1722 |35661 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140070 |1723 |35669 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140071 |1723 |35679 |0 |1 |2774A4|0 |2 |0 |
-ROW |140072 |1723 |35670 |0 |2 |F63100|0 |2 |0 |
-ROW |140073 |1723 |35665 |0 |3 |A54F10|0 |2 |0 |
-ROW |140074 |1723 |35672 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140075 |1723 |35666 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140076 |1724 |35663 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140077 |1724 |35664 |0 |1 |2774A4|0 |2 |0 |
-ROW |140078 |1725 |35686 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140079 |1725 |35693 |0 |1 |2774A4|0 |2 |0 |
-ROW |140080 |1725 |35684 |0 |2 |F63100|0 |2 |0 |
-ROW |140081 |1725 |35691 |0 |3 |A54F10|0 |2 |0 |
-ROW |140082 |1725 |35683 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140083 |1725 |35690 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140084 |1726 |35685 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140085 |1726 |35692 |0 |1 |2774A4|0 |2 |0 |
-ROW |140086 |1727 |35694 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140087 |1727 |35687 |0 |1 |2774A4|0 |2 |0 |
-ROW |140088 |1728 |35707 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140089 |1729 |35708 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140090 |1730 |35725 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140091 |1731 |35726 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140092 |1732 |35727 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140093 |1733 |35728 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140094 |1734 |35736 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140095 |1734 |35746 |0 |1 |2774A4|0 |2 |0 |
-ROW |140096 |1734 |35737 |0 |2 |F63100|0 |2 |0 |
-ROW |140097 |1734 |35732 |0 |3 |A54F10|0 |2 |0 |
-ROW |140098 |1734 |35739 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140099 |1734 |35733 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140100 |1735 |35730 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140101 |1735 |35731 |0 |1 |2774A4|0 |2 |0 |
-ROW |140102 |1736 |35753 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140103 |1736 |35760 |0 |1 |2774A4|0 |2 |0 |
-ROW |140104 |1736 |35751 |0 |2 |F63100|0 |2 |0 |
-ROW |140105 |1736 |35758 |0 |3 |A54F10|0 |2 |0 |
-ROW |140106 |1736 |35750 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140107 |1736 |35757 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140108 |1737 |35752 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140109 |1737 |35759 |0 |1 |2774A4|0 |2 |0 |
-ROW |140110 |1738 |35761 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140111 |1738 |35754 |0 |1 |2774A4|0 |2 |0 |
-ROW |140112 |1739 |35774 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140113 |1740 |35775 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140114 |1741 |35791 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140115 |1742 |35799 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140116 |1742 |35802 |0 |1 |2774A4|0 |2 |0 |
-ROW |140117 |1743 |35804 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140118 |1743 |35807 |0 |1 |2774A4|0 |2 |0 |
-ROW |140119 |1744 |35808 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140120 |1745 |35809 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140121 |1746 |35834 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140122 |1746 |35826 |0 |1 |2774A4|0 |2 |0 |
-ROW |140123 |1746 |35836 |0 |2 |F63100|0 |2 |0 |
-ROW |140124 |1746 |35828 |0 |3 |A54F10|0 |2 |0 |
-ROW |140125 |1746 |35837 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140126 |1746 |35829 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140127 |1747 |35835 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140128 |1747 |35827 |0 |1 |2774A4|0 |2 |0 |
-ROW |140129 |1748 |35825 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140130 |1748 |35833 |0 |1 |2774A4|0 |2 |0 |
-ROW |140131 |1749 |35840 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140132 |1750 |35812 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140133 |1751 |35876 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140134 |1751 |35868 |0 |1 |2774A4|0 |2 |0 |
-ROW |140135 |1751 |35878 |0 |2 |F63100|0 |2 |0 |
-ROW |140136 |1751 |35870 |0 |3 |A54F10|0 |2 |0 |
-ROW |140137 |1751 |35879 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140138 |1751 |35871 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140139 |1752 |35877 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140140 |1752 |35869 |0 |1 |2774A4|0 |2 |0 |
-ROW |140141 |1753 |35867 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140142 |1753 |35875 |0 |1 |2774A4|0 |2 |0 |
-ROW |140143 |1754 |35882 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140144 |1755 |35890 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140145 |1756 |35891 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140146 |1757 |35850 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140147 |1758 |35920 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140148 |1758 |35912 |0 |1 |2774A4|0 |2 |0 |
-ROW |140149 |1758 |35922 |0 |2 |F63100|0 |2 |0 |
-ROW |140150 |1758 |35914 |0 |3 |A54F10|0 |2 |0 |
-ROW |140151 |1758 |35923 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140152 |1758 |35915 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140153 |1759 |35921 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140154 |1759 |35913 |0 |1 |2774A4|0 |2 |0 |
-ROW |140155 |1760 |35911 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140156 |1760 |35919 |0 |1 |2774A4|0 |2 |0 |
-ROW |140157 |1761 |35926 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140158 |1762 |35934 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140159 |1763 |35935 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140160 |1764 |35894 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140161 |1765 |35952 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140162 |1766 |35964 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140163 |1766 |35956 |0 |1 |2774A4|0 |2 |0 |
-ROW |140164 |1766 |35966 |0 |2 |F63100|0 |2 |0 |
-ROW |140165 |1766 |35958 |0 |3 |A54F10|0 |2 |0 |
-ROW |140166 |1766 |35967 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140167 |1766 |35959 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140168 |1767 |35965 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140169 |1767 |35957 |0 |1 |2774A4|0 |2 |0 |
-ROW |140170 |1768 |35955 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140171 |1768 |35963 |0 |1 |2774A4|0 |2 |0 |
-ROW |140172 |1769 |35970 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140173 |1770 |35978 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140174 |1771 |35979 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140175 |1772 |35938 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140176 |1773 |35996 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140177 |1774 |36008 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140178 |1774 |36000 |0 |1 |2774A4|0 |2 |0 |
-ROW |140179 |1774 |36010 |0 |2 |F63100|0 |2 |0 |
-ROW |140180 |1774 |36002 |0 |3 |A54F10|0 |2 |0 |
-ROW |140181 |1774 |36011 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140182 |1774 |36003 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140183 |1775 |36009 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140184 |1775 |36001 |0 |1 |2774A4|0 |2 |0 |
-ROW |140185 |1776 |35999 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140186 |1776 |36007 |0 |1 |2774A4|0 |2 |0 |
-ROW |140187 |1777 |36014 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140188 |1778 |36022 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140189 |1779 |36023 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140190 |1780 |35982 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140191 |1781 |36041 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140192 |1782 |36053 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140193 |1782 |36045 |0 |1 |2774A4|0 |2 |0 |
-ROW |140194 |1782 |36055 |0 |2 |F63100|0 |2 |0 |
-ROW |140195 |1782 |36047 |0 |3 |A54F10|0 |2 |0 |
-ROW |140196 |1782 |36056 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140197 |1782 |36048 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140198 |1783 |36054 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140199 |1783 |36046 |0 |1 |2774A4|0 |2 |0 |
-ROW |140200 |1784 |36044 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140201 |1784 |36052 |0 |1 |2774A4|0 |2 |0 |
-ROW |140202 |1785 |36059 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140203 |1786 |36067 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140204 |1787 |36068 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140205 |1788 |36026 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140206 |1789 |36086 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140207 |1790 |36098 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140208 |1790 |36090 |0 |1 |2774A4|0 |2 |0 |
-ROW |140209 |1790 |36100 |0 |2 |F63100|0 |2 |0 |
-ROW |140210 |1790 |36092 |0 |3 |A54F10|0 |2 |0 |
-ROW |140211 |1790 |36101 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140212 |1790 |36093 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140213 |1791 |36099 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140214 |1791 |36091 |0 |1 |2774A4|0 |2 |0 |
-ROW |140215 |1792 |36089 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140216 |1792 |36097 |0 |1 |2774A4|0 |2 |0 |
-ROW |140217 |1793 |36104 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140218 |1794 |36112 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140219 |1795 |36113 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140220 |1796 |36071 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140221 |1797 |36131 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140222 |1798 |36144 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140223 |1798 |36136 |0 |1 |2774A4|0 |2 |0 |
-ROW |140224 |1798 |36146 |0 |2 |F63100|0 |2 |0 |
-ROW |140225 |1798 |36138 |0 |3 |A54F10|0 |2 |0 |
-ROW |140226 |1798 |36147 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140227 |1798 |36139 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140228 |1799 |36145 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140229 |1799 |36137 |0 |1 |2774A4|0 |2 |0 |
-ROW |140230 |1800 |36135 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140231 |1800 |36143 |0 |1 |2774A4|0 |2 |0 |
-ROW |140232 |1801 |36150 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140233 |1802 |36158 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140234 |1803 |36159 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140235 |1804 |36116 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140236 |472 |22945 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140237 |472 |22946 |0 |1 |2774A4|0 |2 |0 |
-ROW |140238 |473 |22950 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140239 |473 |22948 |0 |1 |2774A4|0 |2 |0 |
-ROW |140240 |471 |22924 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140241 |471 |22920 |0 |1 |2774A4|0 |2 |0 |
-ROW |140242 |469 |22922 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140243 |469 |22923 |0 |1 |2774A4|0 |2 |0 |
-ROW |140244 |469 |22921 |0 |2 |F63100|0 |2 |0 |
-ROW |140245 |498 |23109 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140246 |498 |23112 |0 |1 |2774A4|0 |2 |0 |
-ROW |140247 |498 |23115 |0 |2 |F63100|0 |2 |0 |
-ROW |140248 |498 |23113 |0 |3 |A54F10|0 |2 |0 |
-ROW |140249 |498 |23114 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140250 |498 |23110 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140251 |540 |22942 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140252 |492 |23073 |5 |0 |00AA00|0 |2 |0 |
-ROW |140253 |492 |23074 |5 |1 |3333FF|0 |2 |0 |
-ROW |140254 |467 |22910 |0 |0 |C80000|0 |2 |2 |
-ROW |140255 |467 |22908 |0 |1 |00C800|0 |2 |0 |
-ROW |140256 |465 |22884 |0 |0 |009900|0 |2 |0 |
-ROW |140257 |465 |22880 |0 |1 |000099|0 |2 |0 |
-ROW |140258 |463 |22882 |0 |0 |009900|0 |2 |0 |
-ROW |140259 |463 |22883 |0 |1 |000099|0 |2 |0 |
-ROW |140260 |463 |22881 |0 |2 |990000|0 |2 |0 |
-ROW |140261 |462 |22886 |1 |0 |009999|0 |2 |0 |
-ROW |140262 |462 |22888 |1 |1 |990099|0 |2 |0 |
-ROW |140263 |462 |22891 |1 |2 |990000|0 |2 |0 |
-ROW |140264 |462 |22892 |1 |3 |000099|0 |2 |0 |
-ROW |140265 |462 |22885 |1 |4 |009900|0 |2 |0 |
-ROW |140266 |541 |22902 |5 |0 |00C800|0 |2 |0 |
-ROW |140267 |464 |22897 |0 |0 |AA0000|0 |2 |2 |
-ROW |140268 |464 |22895 |0 |1 |00AA00|0 |2 |0 |
-ROW |140269 |478 |22985 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140270 |478 |22986 |0 |1 |2774A4|0 |2 |0 |
-ROW |140271 |479 |22990 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140272 |479 |22988 |0 |1 |2774A4|0 |2 |0 |
-ROW |140273 |475 |22962 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140274 |475 |22963 |0 |1 |2774A4|0 |2 |0 |
-ROW |140275 |475 |22961 |0 |2 |F63100|0 |2 |0 |
-ROW |140276 |474 |22968 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140277 |474 |22971 |0 |1 |2774A4|0 |2 |0 |
-ROW |140278 |474 |22972 |0 |2 |F63100|0 |2 |0 |
-ROW |140279 |474 |22965 |0 |3 |A54F10|0 |2 |0 |
-ROW |140280 |542 |22982 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140281 |2212 |42279 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140282 |2212 |42282 |2 |1 |2774A4|0 |2 |0 |
-ROW |140283 |2212 |42281 |0 |2 |F63100|1 |2 |0 |
-ROW |140284 |2212 |42278 |0 |3 |A54F10|1 |2 |0 |
-ROW |140285 |2212 |42280 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140286 |2212 |42277 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140287 |2213 |42285 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140288 |2213 |42286 |5 |1 |2774A4|0 |2 |0 |
-ROW |140289 |2214 |42308 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140290 |2214 |42311 |5 |1 |2774A4|0 |2 |0 |
-ROW |140291 |2215 |42307 |0 |0 |1A7C11|1 |2 |0 |
-ROW |140292 |2215 |42310 |5 |1 |2774A4|0 |2 |0 |
-ROW |140293 |2216 |42290 |0 |0 |969696|0 |9 |2 |
-ROW |140294 |2216 |42291 |0 |1 |C80000|0 |9 |0 |
-ROW |140295 |2222 |42221 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140296 |2222 |42216 |0 |1 |2774A4|0 |2 |0 |
-ROW |140297 |2223 |42189 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140298 |2223 |42190 |0 |1 |2774A4|0 |2 |0 |
-ROW |140299 |2223 |42208 |0 |2 |F63100|0 |2 |0 |
-ROW |140300 |2223 |42218 |0 |3 |A54F10|0 |2 |0 |
-ROW |140301 |2223 |42206 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140302 |2223 |42225 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140303 |2223 |42207 |0 |6 |AC8C14|0 |2 |0 |
-ROW |140304 |2223 |42222 |0 |7 |611F27|0 |2 |0 |
-ROW |140305 |2223 |42223 |0 |8 |F230E0|0 |2 |0 |
-ROW |140306 |2224 |42267 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140307 |2225 |42205 |2 |0 |1A7C11|0 |2 |0 |
-ROW |140308 |2225 |42203 |5 |1 |2774A4|0 |2 |0 |
-ROW |140309 |2226 |42268 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140310 |2227 |42213 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140311 |2227 |42214 |0 |1 |2774A4|0 |2 |0 |
-ROW |140312 |2227 |42212 |0 |2 |F63100|0 |2 |0 |
-ROW |140313 |2228 |42188 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140314 |2228 |42198 |0 |1 |2774A4|0 |2 |0 |
-ROW |140315 |2229 |42209 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140316 |2229 |42217 |0 |1 |2774A4|0 |2 |0 |
-ROW |140317 |2229 |42219 |0 |2 |F63100|0 |2 |0 |
-ROW |140318 |2229 |42220 |0 |3 |A54F10|1 |2 |0 |
-ROW |140319 |2238 |42365 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140320 |2238 |42368 |2 |1 |2774A4|0 |2 |0 |
-ROW |140321 |2238 |42367 |0 |2 |F63100|1 |2 |0 |
-ROW |140322 |2238 |42364 |0 |3 |A54F10|1 |2 |0 |
-ROW |140323 |2238 |42366 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140324 |2238 |42363 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140325 |2239 |42371 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140326 |2239 |42372 |5 |1 |2774A4|0 |2 |0 |
-ROW |140327 |2240 |42379 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140328 |2240 |42382 |5 |1 |2774A4|0 |2 |0 |
-ROW |140329 |2241 |42378 |0 |0 |1A7C11|1 |2 |0 |
-ROW |140330 |2241 |42381 |5 |1 |2774A4|0 |2 |0 |
-ROW |140331 |2242 |42376 |0 |0 |969696|0 |9 |2 |
-ROW |140332 |2242 |42377 |0 |1 |C80000|0 |9 |0 |
-ROW |140333 |2243 |42353 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140334 |2243 |42348 |0 |1 |2774A4|0 |2 |0 |
-ROW |140335 |2244 |42321 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140336 |2244 |42322 |0 |1 |2774A4|0 |2 |0 |
-ROW |140337 |2244 |42339 |0 |2 |F63100|0 |2 |0 |
-ROW |140338 |2244 |42350 |0 |3 |A54F10|0 |2 |0 |
-ROW |140339 |2244 |42338 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140340 |2244 |42357 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140341 |2244 |42329 |0 |6 |AC8C14|0 |2 |0 |
-ROW |140342 |2244 |42354 |0 |7 |611F27|0 |2 |0 |
-ROW |140343 |2244 |42355 |0 |8 |F230E0|0 |2 |0 |
-ROW |140344 |2245 |42358 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140345 |2246 |42337 |2 |0 |1A7C11|0 |2 |0 |
-ROW |140346 |2246 |42335 |5 |1 |2774A4|0 |2 |0 |
-ROW |140347 |2247 |42359 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140348 |2248 |42345 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140349 |2248 |42346 |0 |1 |2774A4|0 |2 |0 |
-ROW |140350 |2248 |42344 |0 |2 |F63100|0 |2 |0 |
-ROW |140351 |2249 |42320 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140352 |2249 |42330 |0 |1 |2774A4|0 |2 |0 |
-ROW |140353 |2250 |42341 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140354 |2250 |42349 |0 |1 |2774A4|0 |2 |0 |
-ROW |140355 |2250 |42351 |0 |2 |F63100|0 |2 |0 |
-ROW |140356 |2250 |42352 |0 |3 |A54F10|1 |2 |0 |
-ROW |140357 |952 |29436 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140358 |952 |29437 |2 |1 |2774A4|0 |2 |0 |
-ROW |140359 |952 |29438 |0 |2 |F63100|1 |2 |0 |
-ROW |140360 |952 |29439 |0 |3 |A54F10|1 |2 |0 |
-ROW |140361 |952 |29441 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140362 |952 |29440 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140363 |955 |29434 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140364 |955 |29435 |5 |1 |2774A4|0 |2 |0 |
-ROW |140365 |954 |29448 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140366 |954 |29449 |5 |1 |2774A4|0 |2 |0 |
-ROW |140367 |956 |29452 |0 |0 |1A7C11|1 |2 |0 |
-ROW |140368 |956 |29453 |5 |1 |2774A4|0 |2 |0 |
-ROW |140369 |953 |29446 |0 |0 |969696|0 |9 |2 |
-ROW |140370 |953 |29432 |0 |1 |C80000|0 |9 |0 |
-ROW |140371 |960 |29405 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140372 |960 |29406 |0 |1 |2774A4|0 |2 |0 |
-ROW |140373 |959 |29426 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140374 |959 |29413 |0 |1 |2774A4|0 |2 |0 |
-ROW |140375 |959 |29411 |0 |2 |F63100|0 |2 |0 |
-ROW |140376 |959 |29410 |0 |3 |A54F10|0 |2 |0 |
-ROW |140377 |959 |29399 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140378 |959 |29409 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140379 |959 |29412 |0 |6 |AC8C14|0 |2 |0 |
-ROW |140380 |959 |29408 |0 |7 |611F27|0 |2 |0 |
-ROW |140381 |959 |29407 |0 |8 |F230E0|0 |2 |0 |
-ROW |140382 |958 |29427 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140383 |962 |29403 |2 |0 |1A7C11|0 |2 |0 |
-ROW |140384 |962 |29402 |5 |1 |2774A4|0 |2 |0 |
-ROW |140385 |961 |29396 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140386 |963 |29400 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140387 |963 |29401 |0 |1 |2774A4|0 |2 |0 |
-ROW |140388 |957 |29420 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140389 |957 |29419 |0 |1 |2774A4|0 |2 |0 |
-ROW |140390 |957 |29418 |0 |2 |F63100|0 |2 |0 |
-ROW |140391 |957 |29417 |0 |3 |A54F10|1 |2 |0 |
-ROW |140392 |2251 |42423 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140393 |2251 |42424 |0 |1 |2774A4|0 |2 |0 |
-ROW |140394 |2251 |42420 |0 |2 |F63100|0 |2 |0 |
-ROW |140395 |2251 |42419 |0 |3 |A54F10|0 |2 |0 |
-ROW |140396 |2251 |42422 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140397 |2251 |42418 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140398 |2251 |42421 |0 |6 |AC8C14|0 |2 |0 |
-ROW |140399 |2251 |42415 |0 |7 |611F27|0 |2 |0 |
-ROW |140400 |2251 |42416 |0 |8 |F230E0|0 |2 |0 |
-ROW |140401 |2252 |42442 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140402 |2253 |42427 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140403 |2253 |42430 |2 |1 |2774A4|0 |2 |0 |
-ROW |140404 |2253 |42429 |0 |2 |F63100|1 |2 |0 |
-ROW |140405 |2253 |42426 |0 |3 |A54F10|1 |2 |0 |
-ROW |140406 |2253 |42428 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140407 |2253 |42425 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140408 |2254 |42435 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140409 |2254 |42437 |5 |1 |2774A4|0 |2 |0 |
-ROW |140410 |2255 |42440 |0 |0 |969696|0 |9 |2 |
-ROW |140411 |2255 |42441 |0 |1 |C80000|0 |9 |0 |
-ROW |140412 |2256 |42400 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140413 |2256 |42405 |0 |1 |2774A4|0 |2 |0 |
-ROW |140414 |2257 |42387 |2 |0 |1A7C11|0 |2 |0 |
-ROW |140415 |2257 |42391 |5 |1 |2774A4|0 |2 |0 |
-ROW |140416 |2258 |42386 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140417 |2259 |42395 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140418 |2259 |42393 |0 |1 |2774A4|0 |2 |0 |
-ROW |140419 |2260 |42404 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140420 |2260 |42403 |0 |1 |2774A4|0 |2 |0 |
-ROW |140421 |2260 |42402 |0 |2 |F63100|0 |2 |0 |
-ROW |140422 |2260 |42401 |0 |3 |A54F10|1 |2 |0 |
-ROW |140423 |491 |23070 |0 |0 |C80000|0 |2 |2 |
-ROW |140424 |491 |23068 |0 |1 |00C800|0 |2 |0 |
-ROW |140425 |487 |23042 |0 |0 |009900|0 |2 |0 |
-ROW |140426 |487 |23043 |0 |1 |000099|0 |2 |0 |
-ROW |140427 |487 |23041 |0 |2 |990000|0 |2 |0 |
-ROW |140428 |543 |23062 |5 |0 |00C800|0 |2 |0 |
-ROW |140429 |494 |23077 |5 |0 |00AA00|0 |2 |0 |
-ROW |140430 |494 |23078 |5 |1 |3333FF|0 |2 |0 |
-ROW |140431 |493 |23075 |5 |0 |00AA00|0 |2 |0 |
-ROW |140432 |493 |23076 |5 |1 |3333FF|0 |2 |0 |
-ROW |140433 |461 |22870 |0 |0 |C80000|0 |2 |2 |
-ROW |140434 |461 |22868 |0 |1 |00C800|0 |2 |0 |
-ROW |140435 |459 |22844 |0 |0 |009900|0 |2 |0 |
-ROW |140436 |459 |22840 |0 |1 |000099|0 |2 |0 |
-ROW |140437 |457 |22842 |0 |0 |009900|0 |2 |0 |
-ROW |140438 |457 |22843 |0 |1 |000099|0 |2 |0 |
-ROW |140439 |457 |22841 |0 |2 |990000|0 |2 |0 |
-ROW |140440 |456 |22846 |1 |0 |009999|0 |2 |0 |
-ROW |140441 |456 |22848 |1 |1 |990099|0 |2 |0 |
-ROW |140442 |456 |22851 |1 |2 |990000|0 |2 |0 |
-ROW |140443 |456 |22852 |1 |3 |000099|0 |2 |0 |
-ROW |140444 |456 |22845 |1 |4 |009900|0 |2 |0 |
-ROW |140445 |544 |22862 |5 |0 |00C800|0 |2 |0 |
-ROW |140446 |458 |22857 |0 |0 |AA0000|0 |2 |2 |
-ROW |140447 |458 |22855 |0 |1 |00AA00|0 |2 |0 |
-ROW |140448 |484 |23025 |5 |0 |00AA00|0 |2 |0 |
-ROW |140449 |484 |23026 |5 |1 |3333FF|0 |2 |0 |
-ROW |140450 |485 |23030 |0 |0 |C80000|0 |2 |2 |
-ROW |140451 |485 |23028 |0 |1 |00C800|0 |2 |0 |
-ROW |140452 |483 |23004 |0 |0 |009900|0 |2 |0 |
-ROW |140453 |483 |23000 |0 |1 |000099|0 |2 |0 |
-ROW |140454 |481 |23002 |0 |0 |009900|0 |2 |0 |
-ROW |140455 |481 |23003 |0 |1 |000099|0 |2 |0 |
-ROW |140456 |481 |23001 |0 |2 |990000|0 |2 |0 |
-ROW |140457 |480 |23007 |1 |0 |999900|0 |2 |0 |
-ROW |140458 |480 |23011 |1 |1 |990000|0 |2 |0 |
-ROW |140459 |480 |23012 |1 |2 |000099|0 |2 |0 |
-ROW |140460 |480 |23005 |1 |3 |009900|0 |2 |0 |
-ROW |140461 |545 |23022 |5 |0 |00C800|0 |2 |0 |
-ROW |140462 |482 |23017 |0 |0 |AA0000|0 |2 |2 |
-ROW |140463 |482 |23015 |0 |1 |00AA00|0 |2 |0 |
-ROW |140464 |2261 |42493 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140465 |2261 |42496 |2 |1 |2774A4|0 |2 |0 |
-ROW |140466 |2261 |42495 |0 |2 |F63100|1 |2 |0 |
-ROW |140467 |2261 |42492 |0 |3 |A54F10|1 |2 |0 |
-ROW |140468 |2261 |42494 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140469 |2261 |42491 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140470 |2262 |42498 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140471 |2262 |42501 |0 |1 |2774A4|0 |2 |0 |
-ROW |140472 |2263 |42499 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140473 |2263 |42500 |5 |1 |2774A4|0 |2 |0 |
-ROW |140474 |2264 |42503 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140475 |2264 |42504 |5 |1 |2774A4|0 |2 |0 |
-ROW |140476 |2265 |42502 |0 |0 |1A7C11|1 |2 |0 |
-ROW |140477 |2265 |42497 |5 |1 |2774A4|0 |2 |0 |
-ROW |140478 |2266 |42507 |0 |0 |969696|0 |9 |2 |
-ROW |140479 |2266 |42508 |0 |1 |C80000|0 |9 |0 |
-ROW |140480 |2267 |42473 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140481 |2267 |42476 |0 |1 |2774A4|0 |2 |0 |
-ROW |140482 |2268 |42474 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140483 |2268 |42475 |0 |1 |2774A4|0 |2 |0 |
-ROW |140484 |2269 |42469 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140485 |2270 |42459 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140486 |2271 |42465 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140487 |2271 |42464 |0 |1 |2774A4|0 |2 |0 |
-ROW |140488 |2272 |42549 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140489 |2272 |42552 |2 |1 |2774A4|0 |2 |0 |
-ROW |140490 |2272 |42551 |0 |2 |F63100|1 |2 |0 |
-ROW |140491 |2272 |42548 |0 |3 |A54F10|1 |2 |0 |
-ROW |140492 |2272 |42550 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140493 |2272 |42547 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140494 |2273 |42554 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140495 |2273 |42557 |0 |1 |2774A4|0 |2 |0 |
-ROW |140496 |2274 |42555 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140497 |2274 |42556 |5 |1 |2774A4|0 |2 |0 |
-ROW |140498 |2275 |42559 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140499 |2275 |42560 |5 |1 |2774A4|0 |2 |0 |
-ROW |140500 |2276 |42558 |0 |0 |1A7C11|1 |2 |0 |
-ROW |140501 |2276 |42553 |5 |1 |2774A4|0 |2 |0 |
-ROW |140502 |2277 |42563 |0 |0 |969696|0 |9 |2 |
-ROW |140503 |2277 |42564 |0 |1 |C80000|0 |9 |0 |
-ROW |140504 |2278 |42529 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140505 |2278 |42532 |0 |1 |2774A4|0 |2 |0 |
-ROW |140506 |2279 |42530 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140507 |2279 |42531 |0 |1 |2774A4|0 |2 |0 |
-ROW |140508 |2280 |42525 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140509 |2281 |42515 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140510 |2282 |42521 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140511 |2282 |42520 |0 |1 |2774A4|0 |2 |0 |
-ROW |140512 |2283 |42585 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140513 |2283 |42588 |2 |1 |2774A4|0 |2 |0 |
-ROW |140514 |2283 |42587 |0 |2 |F63100|1 |2 |0 |
-ROW |140515 |2283 |42584 |0 |3 |A54F10|1 |2 |0 |
-ROW |140516 |2283 |42586 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140517 |2283 |42583 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140518 |2284 |42593 |0 |0 |969696|0 |9 |2 |
-ROW |140519 |2284 |42594 |0 |1 |C80000|0 |9 |0 |
-ROW |140520 |2285 |42597 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140521 |2286 |42573 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140522 |1583 |34451 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140523 |1584 |34465 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140524 |1584 |34463 |0 |1 |2774A4|0 |2 |0 |
-ROW |140525 |1585 |34466 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140526 |1585 |34462 |0 |1 |2774A4|0 |2 |0 |
-ROW |140527 |1586 |34499 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140528 |1587 |34513 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140529 |1587 |34511 |0 |1 |2774A4|0 |2 |0 |
-ROW |140530 |1588 |34514 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140531 |1588 |34510 |0 |1 |2774A4|0 |2 |0 |
-ROW |140532 |1589 |34547 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140533 |1590 |34561 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140534 |1590 |34559 |0 |1 |2774A4|0 |2 |0 |
-ROW |140535 |1591 |34562 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140536 |1591 |34558 |0 |1 |2774A4|0 |2 |0 |
-ROW |140537 |1592 |34595 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140538 |1593 |34609 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140539 |1593 |34607 |0 |1 |2774A4|0 |2 |0 |
-ROW |140540 |1594 |34610 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140541 |1594 |34606 |0 |1 |2774A4|0 |2 |0 |
-ROW |140542 |1595 |34643 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140543 |1596 |34657 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140544 |1596 |34655 |0 |1 |2774A4|0 |2 |0 |
-ROW |140545 |1597 |34658 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140546 |1597 |34654 |0 |1 |2774A4|0 |2 |0 |
-ROW |140547 |1619 |35016 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140548 |1620 |35030 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140549 |1620 |35028 |0 |1 |2774A4|0 |2 |0 |
-ROW |140550 |1621 |35031 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140551 |1621 |35027 |0 |1 |2774A4|0 |2 |0 |
-ROW |140552 |1601 |34739 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140553 |1602 |34753 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140554 |1602 |34751 |0 |1 |2774A4|0 |2 |0 |
-ROW |140555 |1603 |34754 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140556 |1603 |34750 |0 |1 |2774A4|0 |2 |0 |
-ROW |140557 |1604 |34787 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140558 |1569 |34192 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140559 |1569 |34180 |0 |1 |2774A4|0 |2 |0 |
-ROW |140560 |1570 |34194 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140561 |1570 |34190 |0 |1 |2774A4|0 |2 |0 |
-ROW |140562 |1605 |34793 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140563 |1606 |34807 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140564 |1606 |34805 |0 |1 |2774A4|0 |2 |0 |
-ROW |140565 |1607 |34808 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140566 |1607 |34804 |0 |1 |2774A4|0 |2 |0 |
-ROW |140567 |1608 |34841 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140568 |1609 |34855 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140569 |1609 |34853 |0 |1 |2774A4|0 |2 |0 |
-ROW |140570 |1610 |34856 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140571 |1610 |34852 |0 |1 |2774A4|0 |2 |0 |
-ROW |140572 |1611 |34889 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140573 |1612 |34903 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140574 |1612 |34901 |0 |1 |2774A4|0 |2 |0 |
-ROW |140575 |1613 |34904 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140576 |1613 |34900 |0 |1 |2774A4|0 |2 |0 |
-ROW |140577 |2355 |43212 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140578 |2356 |43193 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140579 |2356 |43205 |0 |1 |2774A4|0 |2 |0 |
-ROW |140580 |2356 |43214 |0 |2 |F63100|0 |2 |0 |
-ROW |140581 |2356 |43213 |0 |3 |A54F10|0 |2 |0 |
-ROW |140582 |2357 |43210 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140583 |2358 |43209 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140584 |2358 |43207 |0 |1 |2774A4|0 |2 |0 |
-ROW |140585 |2359 |43206 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140586 |2359 |43194 |0 |1 |2774A4|0 |2 |0 |
-ROW |140587 |2360 |43227 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140588 |2360 |43241 |0 |1 |2774A4|0 |2 |0 |
-ROW |140589 |2361 |43240 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140590 |2361 |43238 |0 |1 |2774A4|0 |2 |0 |
-ROW |140591 |2362 |43237 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140592 |2362 |43234 |0 |1 |2774A4|0 |2 |0 |
-ROW |140593 |2363 |43233 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140594 |2363 |43231 |0 |1 |2774A4|0 |2 |0 |
-ROW |140595 |2364 |43250 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140596 |2365 |43255 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140597 |2365 |43256 |0 |1 |2774A4|0 |2 |0 |
-ROW |140598 |2366 |43265 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140599 |2367 |43266 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140600 |2367 |43267 |0 |1 |2774A4|0 |2 |0 |
-ROW |140601 |2367 |43268 |0 |2 |F63100|0 |2 |0 |
-ROW |140602 |2367 |43269 |0 |3 |A54F10|0 |2 |0 |
-ROW |140603 |2368 |43270 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140604 |2368 |43272 |0 |1 |2774A4|0 |2 |0 |
-ROW |140605 |2369 |43273 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140606 |2369 |43275 |0 |1 |2774A4|0 |2 |0 |
-ROW |140607 |2370 |43276 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140608 |2370 |43277 |0 |1 |2774A4|0 |2 |0 |
-ROW |140609 |2371 |43326 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140610 |2372 |43307 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140611 |2372 |43319 |0 |1 |2774A4|0 |2 |0 |
-ROW |140612 |2372 |43328 |0 |2 |F63100|0 |2 |0 |
-ROW |140613 |2372 |43327 |0 |3 |A54F10|0 |2 |0 |
-ROW |140614 |2373 |43324 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140615 |2374 |43323 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140616 |2374 |43321 |0 |1 |2774A4|0 |2 |0 |
-ROW |140617 |2375 |43320 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140618 |2375 |43308 |0 |1 |2774A4|0 |2 |0 |
-ROW |140619 |2376 |43342 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140620 |2376 |43357 |0 |1 |2774A4|0 |2 |0 |
-ROW |140621 |2377 |43353 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140622 |2377 |43351 |0 |1 |2774A4|0 |2 |0 |
-ROW |140623 |2378 |43350 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140624 |2378 |43343 |0 |1 |2774A4|0 |2 |0 |
-ROW |140625 |2379 |43301 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140626 |2379 |43300 |0 |1 |2774A4|0 |2 |0 |
-ROW |140627 |2380 |43366 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140628 |2381 |43302 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140629 |2381 |43303 |0 |1 |2774A4|0 |2 |0 |
-ROW |140630 |2382 |43385 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140631 |2382 |43386 |0 |1 |2774A4|0 |2 |0 |
-ROW |140632 |2382 |43387 |0 |2 |F63100|0 |2 |0 |
-ROW |140633 |2382 |43388 |0 |3 |A54F10|0 |2 |0 |
-ROW |140634 |2383 |43389 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140635 |2383 |43391 |0 |1 |2774A4|0 |2 |0 |
-ROW |140636 |2384 |43392 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140637 |2384 |43394 |0 |1 |2774A4|0 |2 |0 |
-ROW |140638 |2385 |43306 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140639 |2385 |43305 |0 |1 |2774A4|0 |2 |0 |
-ROW |140640 |2386 |43426 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140641 |2386 |43425 |0 |1 |2774A4|0 |2 |0 |
-ROW |140642 |2386 |43424 |0 |2 |F63100|0 |2 |0 |
-ROW |140643 |2387 |43418 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140644 |2387 |43441 |0 |1 |2774A4|0 |2 |0 |
-ROW |140645 |2387 |43420 |0 |2 |F63100|0 |2 |0 |
-ROW |140646 |2388 |43430 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140647 |2388 |43440 |0 |1 |2774A4|0 |2 |0 |
-ROW |140648 |2388 |43439 |0 |2 |F63100|0 |2 |0 |
-ROW |140649 |2389 |43436 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140650 |2389 |43435 |0 |1 |2774A4|0 |2 |0 |
-ROW |140651 |2389 |43438 |0 |2 |F63100|0 |2 |0 |
-ROW |140652 |2389 |43437 |0 |3 |A54F10|0 |2 |0 |
-ROW |140653 |2390 |43432 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140654 |2390 |43431 |0 |1 |2774A4|0 |2 |0 |
-ROW |140655 |2390 |43434 |0 |2 |F63100|0 |2 |0 |
-ROW |140656 |2390 |43433 |0 |3 |A54F10|0 |2 |0 |
-ROW |140657 |2391 |43428 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140658 |2391 |43427 |0 |1 |2774A4|0 |2 |0 |
-ROW |140659 |2391 |43429 |0 |2 |F63100|0 |2 |0 |
-ROW |140660 |2391 |43419 |0 |3 |A54F10|0 |2 |0 |
-ROW |140661 |2392 |43489 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140662 |2392 |43488 |0 |1 |2774A4|0 |2 |0 |
-ROW |140663 |2392 |43487 |0 |2 |F63100|0 |2 |0 |
-ROW |140664 |2392 |43486 |0 |3 |A54F10|0 |2 |0 |
-ROW |140665 |2393 |43468 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140666 |2393 |43491 |0 |1 |2774A4|0 |2 |0 |
-ROW |140667 |2394 |43481 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140668 |2394 |43492 |0 |1 |2774A4|0 |2 |0 |
-ROW |140669 |2394 |43490 |0 |2 |F63100|0 |2 |0 |
-ROW |140670 |2395 |43485 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140671 |2395 |43484 |0 |1 |2774A4|0 |2 |0 |
-ROW |140672 |2395 |43483 |0 |2 |F63100|0 |2 |0 |
-ROW |140673 |2395 |43482 |0 |3 |A54F10|0 |2 |0 |
-ROW |140674 |2396 |43478 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140675 |2396 |43477 |0 |1 |2774A4|0 |2 |0 |
-ROW |140676 |2396 |43476 |0 |2 |F63100|0 |2 |0 |
-ROW |140677 |2396 |43475 |0 |3 |A54F10|0 |2 |0 |
-ROW |140678 |2397 |43409 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140679 |2397 |43408 |0 |1 |2774A4|0 |2 |0 |
-ROW |140680 |2397 |43407 |0 |2 |F63100|0 |2 |0 |
-ROW |140681 |2397 |43406 |0 |3 |A54F10|0 |2 |0 |
-ROW |140682 |1518 |33705 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140683 |1519 |33724 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140684 |1519 |33722 |0 |1 |2774A4|0 |2 |0 |
-ROW |140685 |1519 |33726 |0 |2 |F63100|0 |2 |0 |
-ROW |140686 |1520 |33719 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140687 |1520 |33720 |0 |1 |2774A4|0 |2 |0 |
-ROW |140688 |1520 |33721 |0 |2 |F63100|0 |2 |0 |
-ROW |140689 |1521 |33725 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140690 |1521 |33723 |0 |1 |2774A4|0 |2 |0 |
-ROW |140691 |1521 |33727 |0 |2 |F63100|0 |2 |0 |
-ROW |140692 |1522 |33730 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140693 |1523 |33734 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140694 |1523 |33732 |0 |1 |2774A4|0 |2 |0 |
-ROW |140695 |1523 |33736 |0 |2 |F63100|0 |2 |0 |
-ROW |140696 |1524 |33735 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140697 |1524 |33733 |0 |1 |2774A4|0 |2 |0 |
-ROW |140698 |1524 |33737 |0 |2 |F63100|0 |2 |0 |
-ROW |140699 |1525 |33743 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140700 |1525 |33742 |0 |1 |2774A4|0 |2 |0 |
-ROW |140701 |1525 |33738 |0 |2 |F63100|0 |2 |0 |
-ROW |140702 |1526 |33692 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140703 |1526 |33693 |0 |1 |2774A4|0 |2 |0 |
-ROW |140704 |1571 |34269 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140705 |1571 |34270 |0 |1 |2774A4|0 |2 |0 |
-ROW |140706 |1571 |34271 |0 |2 |F63100|0 |2 |0 |
-ROW |140707 |1571 |34272 |0 |3 |A54F10|0 |2 |0 |
-ROW |140708 |1572 |34311 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140709 |1572 |34301 |0 |1 |2774A4|0 |2 |0 |
-ROW |140710 |1573 |34243 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140711 |1573 |34244 |0 |1 |2774A4|0 |2 |0 |
-ROW |140712 |1573 |34246 |0 |2 |F63100|0 |2 |0 |
-ROW |140713 |1573 |34245 |0 |3 |A54F10|0 |2 |0 |
-ROW |140714 |1574 |34239 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140715 |1574 |34227 |0 |1 |2774A4|0 |2 |0 |
-ROW |140716 |1574 |34236 |0 |2 |F63100|0 |2 |0 |
-ROW |140717 |1574 |34237 |0 |3 |A54F10|0 |2 |0 |
-ROW |140718 |1575 |34253 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140719 |1575 |34252 |0 |1 |2774A4|0 |2 |0 |
-ROW |140720 |1575 |34249 |0 |2 |F63100|0 |2 |0 |
-ROW |140721 |1575 |34251 |0 |3 |A54F10|0 |2 |0 |
-ROW |140722 |1496 |33368 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140723 |1497 |33371 |1 |0 |1A7C11|0 |2 |0 |
-ROW |140724 |1497 |33371 |1 |1 |2774A4|0 |2 |0 |
-ROW |140725 |1498 |33379 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140726 |1498 |33382 |2 |1 |2774A4|0 |2 |0 |
-ROW |140727 |1498 |33381 |0 |2 |F63100|1 |2 |0 |
-ROW |140728 |1498 |33378 |0 |3 |A54F10|1 |2 |0 |
-ROW |140729 |1498 |33380 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140730 |1498 |33377 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140731 |1142 |30689 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140732 |1805 |36187 |5 |0 |1A7C11|0 |2 |0 |
-ROW |140733 |1805 |36192 |2 |1 |2774A4|0 |2 |0 |
-ROW |140734 |1805 |36190 |0 |2 |F63100|1 |2 |0 |
-ROW |140735 |1805 |36185 |0 |3 |A54F10|1 |2 |0 |
-ROW |140736 |1805 |36189 |0 |4 |FC6EA3|1 |2 |0 |
-ROW |140737 |1805 |36184 |0 |5 |6C59DC|1 |2 |0 |
-ROW |140738 |2398 |43547 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140739 |2398 |43546 |0 |1 |2774A4|0 |2 |0 |
-ROW |140740 |2398 |43545 |0 |2 |F63100|0 |2 |0 |
-ROW |140741 |2398 |43556 |0 |3 |A54F10|0 |2 |0 |
-ROW |140742 |2398 |43557 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140743 |2398 |43552 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140744 |2399 |43626 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140745 |2399 |43627 |0 |1 |2774A4|0 |2 |0 |
-ROW |140746 |2399 |43628 |0 |2 |F63100|0 |2 |0 |
-ROW |140747 |2400 |43632 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140748 |2400 |43633 |0 |1 |2774A4|0 |2 |0 |
-ROW |140749 |2400 |43634 |0 |2 |F63100|0 |2 |0 |
-ROW |140750 |2401 |43637 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140751 |2401 |43638 |0 |1 |2774A4|0 |2 |0 |
-ROW |140752 |651 |26928 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140753 |651 |26927 |0 |1 |2774A4|0 |2 |0 |
-ROW |140754 |652 |26925 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140755 |652 |26932 |0 |1 |2774A4|0 |2 |0 |
-ROW |140756 |652 |26930 |0 |2 |F63100|0 |2 |0 |
-ROW |140757 |652 |26931 |0 |3 |A54F10|0 |2 |0 |
-ROW |140758 |652 |26929 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140759 |652 |26926 |0 |5 |6C59DC|0 |2 |0 |
-ROW |140760 |653 |26933 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140761 |653 |26943 |0 |1 |2774A4|0 |2 |0 |
-ROW |140762 |653 |26935 |0 |2 |F63100|0 |2 |0 |
-ROW |140763 |653 |26936 |0 |3 |A54F10|0 |2 |0 |
-ROW |140764 |654 |26934 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140765 |654 |26939 |0 |1 |2774A4|0 |2 |0 |
-ROW |140766 |654 |26942 |0 |2 |F63100|0 |2 |0 |
-ROW |140767 |654 |26938 |0 |3 |A54F10|0 |2 |0 |
-ROW |140768 |654 |26937 |0 |4 |FC6EA3|0 |2 |0 |
-ROW |140769 |1275 |31794 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140770 |1275 |31792 |0 |1 |2774A4|0 |2 |0 |
-ROW |140771 |1275 |31800 |0 |2 |F63100|1 |2 |0 |
-ROW |140772 |1276 |36771 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140773 |1276 |33390 |0 |1 |2774A4|0 |2 |0 |
-ROW |140774 |1276 |31799 |0 |2 |F63100|0 |2 |0 |
-ROW |140775 |1276 |31797 |0 |3 |A54F10|0 |2 |0 |
-ROW |140776 |1277 |36770 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140777 |1277 |33389 |0 |1 |2774A4|0 |2 |0 |
-ROW |140778 |1277 |31795 |0 |2 |F63100|0 |2 |0 |
-ROW |140779 |1278 |36769 |0 |0 |1A7C11|0 |2 |0 |
-ROW |140780 |1278 |31793 |0 |1 |2774A4|0 |2 |0 |
-ROW |140781 |1278 |31802 |0 |2 |F63100|0 |2 |0 |
-ROW |140782 |1278 |31790 |0 |3 |A54F10|0 |2 |0 |
-ROW |140783 |1278 |31791 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140784 |1397 |32451 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140785 |1397 |32450 |5 |1 |2774A4|0 |2 |0 |
+ROW |140786 |1398 |32452 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140787 |1398 |32449 |5 |1 |2774A4|0 |2 |0 |
+ROW |140788 |1399 |32444 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140789 |1399 |32446 |5 |1 |2774A4|0 |2 |0 |
+ROW |140790 |1399 |32448 |5 |2 |F63100|0 |2 |0 |
+ROW |140791 |1400 |32460 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140792 |1401 |32458 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140793 |1401 |32457 |5 |1 |2774A4|0 |2 |0 |
+ROW |140794 |1402 |32461 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140795 |1402 |32456 |5 |1 |2774A4|0 |2 |0 |
+ROW |140796 |1172 |30918 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140797 |1172 |30919 |0 |1 |2774A4|0 |2 |0 |
+ROW |140798 |1172 |30920 |0 |2 |F63100|0 |2 |0 |
+ROW |140799 |1172 |30921 |2 |3 |A54F10|0 |2 |0 |
+ROW |140800 |1173 |30922 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140801 |835 |28744 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140802 |835 |28745 |0 |1 |2774A4|0 |2 |0 |
+ROW |140803 |1174 |30913 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140804 |1175 |30906 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140805 |1175 |30908 |0 |1 |2774A4|0 |2 |0 |
+ROW |140806 |1175 |30915 |0 |2 |F63100|0 |2 |0 |
+ROW |140807 |1175 |30897 |0 |3 |A54F10|0 |2 |0 |
+ROW |140808 |1175 |30901 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140809 |1175 |30899 |0 |5 |6C59DC|0 |2 |0 |
+ROW |140810 |1175 |30907 |0 |6 |AC8C14|0 |2 |0 |
+ROW |140811 |1175 |30905 |0 |7 |611F27|0 |2 |0 |
+ROW |140812 |1175 |30904 |0 |8 |F230E0|0 |2 |0 |
+ROW |140813 |1175 |30900 |0 |9 |FFAD40|0 |2 |0 |
+ROW |140814 |1175 |30898 |0 |10 |40CDFF|0 |2 |0 |
+ROW |140815 |1176 |30910 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140816 |1176 |30909 |0 |1 |2774A4|0 |2 |0 |
+ROW |140817 |836 |28798 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140818 |836 |28799 |0 |1 |2774A4|0 |2 |0 |
+ROW |140819 |836 |28800 |0 |2 |F63100|0 |2 |0 |
+ROW |140820 |836 |28801 |2 |3 |A54F10|0 |2 |0 |
+ROW |140821 |837 |28803 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140822 |838 |28793 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140823 |840 |28787 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140824 |840 |28784 |0 |1 |2774A4|0 |2 |0 |
+ROW |140825 |840 |28782 |0 |2 |F63100|0 |2 |0 |
+ROW |140826 |840 |28781 |0 |3 |A54F10|0 |2 |0 |
+ROW |140827 |840 |28780 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140828 |840 |28778 |0 |5 |6C59DC|0 |2 |0 |
+ROW |140829 |840 |28786 |0 |6 |AC8C14|0 |2 |0 |
+ROW |140830 |840 |28785 |0 |7 |611F27|0 |2 |0 |
+ROW |140831 |840 |28783 |0 |8 |F230E0|0 |2 |0 |
+ROW |140832 |840 |28779 |0 |9 |FFAD40|0 |2 |0 |
+ROW |140833 |840 |28796 |0 |10 |40CDFF|0 |2 |0 |
+ROW |140834 |839 |28789 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140835 |839 |28788 |0 |1 |2774A4|0 |2 |0 |
+ROW |140836 |1339 |32172 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140837 |1339 |32173 |0 |1 |2774A4|0 |2 |0 |
+ROW |140838 |1403 |32511 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140839 |1403 |32514 |0 |1 |2774A4|0 |2 |0 |
+ROW |140840 |1404 |32512 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140841 |1404 |32515 |0 |1 |2774A4|0 |2 |0 |
+ROW |140842 |1405 |32507 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140843 |1405 |32508 |0 |1 |2774A4|0 |2 |0 |
+ROW |140844 |1405 |32513 |0 |2 |F63100|0 |2 |0 |
+ROW |140845 |1343 |32135 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140846 |1343 |32142 |0 |1 |2774A4|0 |2 |0 |
+ROW |140847 |1344 |32167 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140848 |1344 |32136 |0 |1 |2774A4|0 |2 |0 |
+ROW |140849 |1345 |32141 |1 |0 |1A7C11|0 |2 |0 |
+ROW |140850 |1345 |32138 |1 |1 |2774A4|0 |2 |0 |
+ROW |140851 |1346 |32156 |2 |0 |1A7C11|0 |2 |0 |
+ROW |140852 |1346 |32158 |0 |1 |2774A4|0 |2 |0 |
+ROW |140853 |1346 |32159 |0 |2 |F63100|0 |2 |0 |
+ROW |140854 |1346 |32154 |2 |3 |A54F10|0 |2 |0 |
+ROW |140855 |1346 |32155 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140856 |1346 |32146 |0 |5 |6C59DC|0 |2 |0 |
+ROW |140857 |1347 |32150 |2 |0 |1A7C11|0 |2 |0 |
+ROW |140858 |1347 |32151 |0 |1 |2774A4|0 |2 |0 |
+ROW |140859 |1347 |32152 |0 |2 |F63100|0 |2 |0 |
+ROW |140860 |1622 |35078 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140861 |1622 |35091 |0 |1 |2774A4|0 |2 |0 |
+ROW |140862 |1622 |35098 |0 |2 |F63100|0 |2 |0 |
+ROW |140863 |1622 |35100 |0 |3 |A54F10|0 |2 |0 |
+ROW |140864 |1622 |35099 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140865 |1623 |35090 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140866 |1623 |35101 |0 |1 |2774A4|0 |2 |0 |
+ROW |140867 |1624 |35097 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140868 |1624 |35096 |0 |1 |2774A4|0 |2 |0 |
+ROW |140869 |1624 |35095 |0 |2 |F63100|0 |2 |0 |
+ROW |140870 |1625 |35089 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140871 |1625 |35088 |0 |1 |2774A4|0 |2 |0 |
+ROW |140872 |1625 |35087 |0 |2 |F63100|0 |2 |0 |
+ROW |140873 |1625 |35086 |0 |3 |A54F10|0 |2 |0 |
+ROW |140874 |1625 |35085 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140875 |1626 |35079 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140876 |1626 |35082 |0 |1 |2774A4|0 |2 |0 |
+ROW |140877 |1627 |35080 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140878 |1627 |35102 |0 |1 |2774A4|0 |2 |0 |
+ROW |140879 |1628 |35093 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140880 |1628 |35092 |0 |1 |2774A4|0 |2 |0 |
+ROW |140881 |1628 |35081 |0 |2 |F63100|0 |2 |0 |
+ROW |140882 |1628 |35084 |0 |3 |A54F10|0 |2 |0 |
+ROW |140883 |1628 |35083 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140884 |2325 |42962 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140885 |2325 |42972 |0 |1 |2774A4|0 |2 |0 |
+ROW |140886 |2326 |42941 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140887 |2326 |42940 |2 |1 |2774A4|0 |2 |0 |
+ROW |140888 |2327 |42983 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140889 |2327 |42942 |0 |1 |2774A4|0 |2 |0 |
+ROW |140890 |2328 |42949 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140891 |2328 |42947 |0 |1 |2774A4|0 |2 |0 |
+ROW |140892 |2328 |42935 |0 |2 |F63100|0 |2 |0 |
+ROW |140893 |2328 |42944 |0 |3 |A54F10|0 |2 |0 |
+ROW |140894 |2328 |42945 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140895 |1121 |30606 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140896 |1121 |30590 |5 |1 |2774A4|0 |2 |0 |
+ROW |140897 |1121 |30582 |5 |2 |F63100|0 |2 |0 |
+ROW |140898 |1122 |30580 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140899 |1122 |30578 |5 |1 |2774A4|0 |2 |0 |
+ROW |140900 |1123 |30586 |2 |0 |1A7C11|0 |2 |0 |
+ROW |140901 |1123 |30608 |2 |1 |2774A4|0 |2 |0 |
+ROW |140902 |1123 |30585 |2 |2 |F63100|0 |2 |0 |
+ROW |140903 |1123 |30589 |2 |3 |A54F10|0 |2 |0 |
+ROW |140904 |1123 |30584 |2 |4 |FC6EA3|0 |2 |0 |
+ROW |140905 |1123 |30588 |2 |5 |6C59DC|0 |2 |0 |
+ROW |140906 |1124 |30583 |2 |0 |1A7C11|0 |2 |0 |
+ROW |140907 |1124 |30587 |2 |1 |2774A4|0 |2 |0 |
+ROW |140908 |1125 |30555 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140909 |1125 |30554 |2 |1 |2774A4|0 |2 |0 |
+ROW |140910 |1125 |30556 |2 |2 |F63100|0 |2 |0 |
+ROW |140911 |1125 |30557 |2 |3 |A54F10|0 |2 |0 |
+ROW |140912 |1126 |30565 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140913 |1127 |30567 |2 |0 |1A7C11|0 |2 |0 |
+ROW |140914 |1127 |30568 |2 |1 |2774A4|0 |2 |0 |
+ROW |140915 |1128 |30536 |2 |0 |1A7C11|0 |2 |0 |
+ROW |140916 |1129 |30566 |2 |0 |1A7C11|0 |2 |0 |
+ROW |140917 |1129 |30549 |2 |1 |2774A4|0 |2 |0 |
+ROW |140918 |1129 |30553 |2 |2 |F63100|0 |2 |0 |
+ROW |140919 |1129 |30570 |2 |3 |A54F10|0 |2 |0 |
+ROW |140920 |1143 |30714 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140921 |1143 |30716 |0 |1 |2774A4|0 |2 |0 |
+ROW |140922 |1143 |30717 |0 |2 |F63100|0 |2 |0 |
+ROW |140923 |1143 |30715 |0 |3 |A54F10|0 |2 |0 |
+ROW |140924 |1144 |30753 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140925 |1144 |30738 |0 |1 |2774A4|0 |2 |0 |
+ROW |140926 |1145 |30718 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140927 |1145 |30737 |0 |1 |2774A4|0 |2 |0 |
+ROW |140928 |1145 |30727 |0 |2 |F63100|0 |2 |0 |
+ROW |140929 |1145 |30729 |0 |3 |A54F10|0 |2 |0 |
+ROW |140930 |1146 |30730 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140931 |1146 |30732 |0 |1 |2774A4|0 |2 |0 |
+ROW |140932 |1146 |30731 |0 |2 |F63100|0 |2 |0 |
+ROW |140933 |1146 |30733 |0 |3 |A54F10|0 |2 |0 |
+ROW |140934 |1147 |30734 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140935 |1147 |30736 |0 |1 |2774A4|0 |2 |0 |
+ROW |140936 |1147 |30735 |0 |2 |F63100|0 |2 |0 |
+ROW |140937 |1147 |30758 |0 |3 |A54F10|0 |2 |0 |
+ROW |140938 |1148 |30711 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140939 |1148 |30706 |0 |1 |2774A4|0 |2 |0 |
+ROW |140940 |1148 |30710 |0 |2 |F63100|0 |2 |0 |
+ROW |140941 |1148 |30712 |0 |3 |A54F10|0 |2 |0 |
+ROW |140942 |1148 |30702 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140943 |1148 |30707 |0 |5 |6C59DC|0 |2 |0 |
+ROW |140944 |1148 |30704 |0 |6 |AC8C14|0 |2 |0 |
+ROW |140945 |2329 |43064 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140946 |2329 |43065 |0 |1 |2774A4|0 |2 |0 |
+ROW |140947 |2329 |43058 |0 |2 |F63100|0 |2 |0 |
+ROW |140948 |2329 |43063 |0 |3 |A54F10|0 |2 |0 |
+ROW |140949 |2329 |43072 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140950 |2330 |43069 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140951 |2330 |43067 |0 |1 |2774A4|0 |2 |0 |
+ROW |140952 |2331 |43074 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140953 |2331 |43076 |0 |1 |2774A4|0 |2 |0 |
+ROW |140954 |2332 |43025 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140955 |2332 |43048 |0 |1 |2774A4|0 |2 |0 |
+ROW |140956 |2333 |43050 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140957 |2333 |43049 |0 |1 |2774A4|0 |2 |0 |
+ROW |140958 |2333 |43051 |0 |2 |F63100|0 |2 |0 |
+ROW |140959 |2333 |43040 |0 |3 |A54F10|0 |2 |0 |
+ROW |140960 |2334 |43029 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140961 |2334 |43031 |0 |1 |2774A4|0 |2 |0 |
+ROW |140962 |2335 |43046 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140963 |2335 |43047 |0 |1 |2774A4|0 |2 |0 |
+ROW |140964 |2335 |43045 |0 |2 |F63100|0 |2 |0 |
+ROW |140965 |2335 |43044 |0 |3 |A54F10|0 |2 |0 |
+ROW |140966 |2336 |43037 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140967 |2336 |43026 |0 |1 |2774A4|0 |2 |0 |
+ROW |140968 |2336 |43039 |0 |2 |F63100|0 |2 |0 |
+ROW |140969 |2337 |43042 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140970 |2337 |43041 |0 |1 |2774A4|0 |2 |0 |
+ROW |140971 |2337 |43043 |0 |2 |F63100|0 |2 |0 |
+ROW |140972 |2337 |43038 |0 |3 |A54F10|0 |2 |0 |
+ROW |140973 |2338 |43030 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140974 |2338 |43031 |0 |1 |2774A4|0 |2 |0 |
+ROW |140975 |2338 |43032 |0 |2 |F63100|0 |2 |0 |
+ROW |140976 |1177 |30927 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140977 |1177 |30944 |2 |1 |2774A4|0 |2 |0 |
+ROW |140978 |1178 |30935 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140979 |1178 |30942 |0 |1 |2774A4|0 |2 |0 |
+ROW |140980 |1179 |30949 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140981 |1179 |30950 |0 |1 |2774A4|0 |2 |0 |
+ROW |140982 |1179 |30951 |0 |2 |F63100|0 |2 |0 |
+ROW |140983 |1180 |30952 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140984 |1180 |30954 |0 |1 |2774A4|0 |2 |0 |
+ROW |140985 |1180 |30955 |0 |2 |F63100|0 |2 |0 |
+ROW |140986 |1181 |30936 |5 |0 |1A7C11|0 |2 |0 |
+ROW |140987 |1181 |30940 |5 |1 |2774A4|0 |2 |0 |
+ROW |140988 |1182 |30930 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140989 |1182 |30929 |0 |1 |2774A4|0 |2 |0 |
+ROW |140990 |1182 |30928 |0 |2 |F63100|0 |2 |0 |
+ROW |140991 |1182 |30931 |2 |3 |A54F10|1 |2 |0 |
+ROW |140992 |1183 |30934 |0 |0 |1A7C11|0 |2 |0 |
+ROW |140993 |1183 |30941 |0 |1 |2774A4|0 |2 |0 |
+ROW |140994 |1406 |32532 |0 |0 |1A7C11|1 |2 |0 |
+ROW |140995 |1406 |32535 |0 |1 |2774A4|1 |2 |0 |
+ROW |140996 |1406 |32533 |0 |2 |F63100|0 |2 |0 |
+ROW |140997 |1406 |32534 |0 |3 |A54F10|0 |2 |0 |
+ROW |140998 |1406 |32536 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |140999 |1406 |32537 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141000 |1407 |32543 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141001 |1407 |32544 |0 |1 |2774A4|0 |2 |0 |
+ROW |141002 |1408 |32518 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141003 |1408 |32521 |0 |1 |2774A4|0 |2 |0 |
+ROW |141004 |1408 |32523 |0 |2 |F63100|0 |2 |0 |
+ROW |141005 |1408 |32524 |0 |3 |A54F10|0 |2 |0 |
+ROW |141006 |1409 |32562 |0 |0 |1A7C11|1 |2 |0 |
+ROW |141007 |1409 |32565 |0 |1 |2774A4|1 |2 |0 |
+ROW |141008 |1409 |32563 |0 |2 |F63100|0 |2 |0 |
+ROW |141009 |1409 |32564 |0 |3 |A54F10|0 |2 |0 |
+ROW |141010 |1409 |32566 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141011 |1409 |32567 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141012 |1410 |32573 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141013 |1410 |32574 |0 |1 |2774A4|0 |2 |0 |
+ROW |141014 |1411 |32548 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141015 |1411 |32551 |0 |1 |2774A4|0 |2 |0 |
+ROW |141016 |1411 |32553 |0 |2 |F63100|0 |2 |0 |
+ROW |141017 |1411 |32554 |0 |3 |A54F10|0 |2 |0 |
+ROW |141018 |2287 |42691 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141019 |2288 |42694 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141020 |2288 |42693 |0 |1 |2774A4|0 |2 |0 |
+ROW |141021 |2288 |42695 |0 |2 |F63100|0 |2 |0 |
+ROW |141022 |1250 |31527 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141023 |1250 |31529 |0 |1 |2774A4|0 |2 |0 |
+ROW |141024 |1250 |31499 |0 |2 |F63100|0 |2 |0 |
+ROW |141025 |1259 |31516 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141026 |1259 |31517 |0 |1 |2774A4|0 |2 |0 |
+ROW |141027 |1260 |31523 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141028 |1260 |31522 |0 |1 |2774A4|0 |2 |0 |
+ROW |141029 |1260 |31524 |0 |2 |F63100|0 |2 |0 |
+ROW |141030 |1412 |32601 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141031 |1412 |32602 |0 |1 |2774A4|0 |2 |0 |
+ROW |141032 |1412 |32603 |0 |2 |F63100|0 |2 |0 |
+ROW |141033 |1412 |32604 |0 |3 |A54F10|0 |2 |0 |
+ROW |141034 |1412 |32606 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141035 |1412 |32606 |2 |5 |6C59DC|0 |2 |0 |
+ROW |141036 |1413 |32608 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141037 |1413 |32610 |0 |1 |2774A4|0 |2 |0 |
+ROW |141038 |1413 |32611 |0 |2 |F63100|0 |2 |0 |
+ROW |141039 |1414 |32582 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141040 |1414 |32580 |2 |1 |2774A4|0 |2 |0 |
+ROW |141041 |1414 |32581 |2 |2 |F63100|0 |2 |0 |
+ROW |141042 |1414 |32597 |0 |3 |A54F10|1 |2 |0 |
+ROW |141043 |1414 |32599 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |141044 |1414 |32588 |0 |5 |6C59DC|1 |2 |0 |
+ROW |141045 |1415 |32583 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141046 |1415 |32584 |0 |1 |2774A4|0 |2 |0 |
+ROW |141047 |1415 |32585 |0 |2 |F63100|0 |2 |0 |
+ROW |141048 |1415 |32579 |2 |3 |A54F10|0 |2 |0 |
+ROW |141049 |1416 |32587 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141050 |1416 |32590 |0 |1 |2774A4|0 |2 |0 |
+ROW |141051 |1416 |32589 |0 |2 |F63100|0 |2 |0 |
+ROW |141052 |1417 |32673 |1 |0 |1A7C11|0 |2 |0 |
+ROW |141053 |1417 |32679 |1 |1 |2774A4|0 |2 |0 |
+ROW |141054 |1629 |35114 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141055 |1629 |35113 |5 |1 |2774A4|0 |2 |0 |
+ROW |141056 |1075 |30204 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141057 |1075 |30205 |0 |1 |2774A4|0 |2 |0 |
+ROW |141058 |1630 |35112 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141059 |1630 |35111 |0 |1 |2774A4|0 |2 |0 |
+ROW |141060 |1630 |35110 |0 |2 |F63100|0 |2 |0 |
+ROW |141061 |1630 |35108 |0 |3 |A54F10|0 |2 |0 |
+ROW |141062 |1630 |35105 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141063 |1076 |30209 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141064 |1076 |30208 |0 |1 |2774A4|0 |2 |0 |
+ROW |141065 |1077 |30206 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141066 |1077 |30207 |5 |1 |2774A4|0 |2 |0 |
+ROW |141067 |1078 |30216 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141068 |1078 |30215 |0 |1 |2774A4|0 |2 |0 |
+ROW |141069 |1079 |30210 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141070 |1079 |30211 |0 |1 |2774A4|0 |2 |0 |
+ROW |141071 |1079 |30212 |0 |2 |F63100|0 |2 |0 |
+ROW |141072 |1079 |30213 |0 |3 |A54F10|0 |2 |0 |
+ROW |141073 |1079 |30214 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141074 |1631 |35127 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141075 |1631 |35126 |5 |1 |2774A4|0 |2 |0 |
+ROW |141076 |1632 |35124 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141077 |1632 |35123 |0 |1 |2774A4|0 |2 |0 |
+ROW |141078 |1632 |35122 |0 |2 |F63100|0 |2 |0 |
+ROW |141079 |1632 |30222 |0 |3 |A54F10|0 |2 |0 |
+ROW |141080 |1632 |30223 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141081 |1080 |30226 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141082 |1080 |30225 |0 |1 |2774A4|0 |2 |0 |
+ROW |141083 |1633 |35139 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141084 |1633 |35138 |5 |1 |2774A4|0 |2 |0 |
+ROW |141085 |1081 |30247 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141086 |1081 |30248 |0 |1 |2774A4|0 |2 |0 |
+ROW |141087 |1634 |35137 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141088 |1634 |35136 |0 |1 |2774A4|0 |2 |0 |
+ROW |141089 |1634 |35135 |0 |2 |F63100|0 |2 |0 |
+ROW |141090 |1634 |35133 |0 |3 |A54F10|0 |2 |0 |
+ROW |141091 |1634 |35130 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141092 |1082 |30252 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141093 |1082 |30251 |0 |1 |2774A4|0 |2 |0 |
+ROW |141094 |1083 |30249 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141095 |1083 |30250 |5 |1 |2774A4|0 |2 |0 |
+ROW |141096 |1084 |30259 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141097 |1084 |30258 |0 |1 |2774A4|0 |2 |0 |
+ROW |141098 |1085 |30253 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141099 |1085 |30254 |0 |1 |2774A4|0 |2 |0 |
+ROW |141100 |1085 |30255 |0 |2 |F63100|0 |2 |0 |
+ROW |141101 |1085 |30256 |0 |3 |A54F10|0 |2 |0 |
+ROW |141102 |1085 |30257 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141103 |1635 |35152 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141104 |1635 |35151 |5 |1 |2774A4|0 |2 |0 |
+ROW |141105 |1636 |35149 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141106 |1636 |35148 |0 |1 |2774A4|0 |2 |0 |
+ROW |141107 |1636 |35147 |0 |2 |F63100|0 |2 |0 |
+ROW |141108 |1636 |30265 |0 |3 |A54F10|0 |2 |0 |
+ROW |141109 |1636 |30266 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141110 |1086 |30269 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141111 |1086 |30268 |0 |1 |2774A4|0 |2 |0 |
+ROW |141112 |1184 |30982 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141113 |1184 |30980 |5 |1 |2774A4|0 |2 |0 |
+ROW |141114 |1185 |30983 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141115 |1185 |30981 |0 |1 |2774A4|0 |2 |0 |
+ROW |141116 |1186 |30976 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141117 |1186 |30985 |0 |1 |2774A4|0 |2 |0 |
+ROW |141118 |1186 |30997 |0 |2 |F63100|0 |2 |0 |
+ROW |141119 |1186 |30970 |0 |3 |A54F10|0 |2 |0 |
+ROW |141120 |1186 |30973 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141121 |1186 |30995 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141122 |1186 |30998 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141123 |1186 |30978 |0 |7 |611F27|0 |2 |0 |
+ROW |141124 |1187 |31024 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141125 |1187 |31022 |5 |1 |2774A4|0 |2 |0 |
+ROW |141126 |1188 |31025 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141127 |1188 |31023 |0 |1 |2774A4|0 |2 |0 |
+ROW |141128 |1189 |31018 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141129 |1189 |31027 |0 |1 |2774A4|0 |2 |0 |
+ROW |141130 |1189 |31039 |0 |2 |F63100|0 |2 |0 |
+ROW |141131 |1189 |31012 |0 |3 |A54F10|0 |2 |0 |
+ROW |141132 |1189 |31015 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141133 |1189 |31037 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141134 |1189 |31040 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141135 |1189 |31020 |0 |7 |611F27|0 |2 |0 |
+ROW |141136 |1499 |33478 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141137 |1499 |33467 |0 |1 |2774A4|0 |2 |0 |
+ROW |141138 |1500 |33468 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141139 |1500 |33479 |0 |1 |2774A4|0 |2 |0 |
+ROW |141140 |1501 |33442 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141141 |1501 |33441 |0 |1 |2774A4|0 |2 |0 |
+ROW |141142 |1501 |33440 |0 |2 |F63100|0 |2 |0 |
+ROW |141143 |1502 |33423 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141144 |1502 |33419 |0 |1 |2774A4|0 |2 |0 |
+ROW |141145 |1502 |33422 |0 |2 |F63100|0 |2 |0 |
+ROW |141146 |1502 |33421 |0 |3 |A54F10|0 |2 |0 |
+ROW |141147 |1502 |33412 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141148 |1418 |32700 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141149 |1418 |32699 |0 |1 |2774A4|0 |2 |0 |
+ROW |141150 |1419 |32710 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141151 |1419 |32709 |0 |1 |2774A4|0 |2 |0 |
+ROW |141152 |1420 |32693 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141153 |1420 |32724 |0 |1 |2774A4|0 |2 |0 |
+ROW |141154 |1421 |32730 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141155 |1421 |32731 |0 |1 |2774A4|0 |2 |0 |
+ROW |141156 |1421 |32728 |0 |2 |F63100|0 |2 |0 |
+ROW |141157 |1421 |32729 |0 |3 |A54F10|0 |2 |0 |
+ROW |141158 |1422 |32705 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141159 |1422 |32706 |0 |1 |2774A4|0 |2 |0 |
+ROW |141160 |1423 |32702 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141161 |1423 |32703 |0 |1 |2774A4|0 |2 |0 |
+ROW |141162 |1424 |32708 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141163 |1424 |32722 |2 |1 |2774A4|0 |2 |0 |
+ROW |141164 |1424 |32695 |0 |2 |F63100|0 |2 |0 |
+ROW |141165 |1424 |32753 |0 |3 |A54F10|0 |2 |0 |
+ROW |141166 |1424 |32740 |2 |4 |FC6EA3|0 |2 |0 |
+ROW |141167 |1424 |32723 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141168 |1424 |32747 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141169 |1424 |32748 |2 |7 |611F27|0 |2 |0 |
+ROW |141170 |1424 |32749 |0 |8 |F230E0|0 |2 |0 |
+ROW |141171 |1424 |32750 |0 |9 |FFAD40|0 |2 |0 |
+ROW |141172 |1424 |32751 |2 |10 |40CDFF|0 |2 |0 |
+ROW |141173 |1424 |32752 |0 |11 |40FFA0|0 |2 |0 |
+ROW |141174 |1425 |32746 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141175 |1425 |32745 |2 |1 |2774A4|0 |2 |0 |
+ROW |141176 |1425 |32744 |0 |2 |F63100|0 |2 |0 |
+ROW |141177 |1425 |32743 |0 |3 |A54F10|0 |2 |0 |
+ROW |141178 |1425 |32742 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141179 |1426 |32720 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141180 |1426 |32721 |0 |1 |2774A4|0 |2 |0 |
+ROW |141181 |1426 |32719 |0 |2 |F63100|0 |2 |0 |
+ROW |141182 |1426 |32718 |0 |3 |A54F10|0 |2 |0 |
+ROW |141183 |2085 |39861 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141184 |2085 |39863 |0 |1 |2774A4|0 |2 |0 |
+ROW |141185 |2085 |39864 |0 |2 |F63100|0 |2 |0 |
+ROW |141186 |2085 |39862 |0 |3 |A54F10|0 |2 |0 |
+ROW |141187 |2086 |39849 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141188 |2086 |39833 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141189 |2086 |39848 |0 |1 |2774A4|0 |2 |0 |
+ROW |141190 |2086 |39832 |0 |1 |2774A4|0 |2 |0 |
+ROW |141191 |2086 |39847 |0 |2 |F63100|0 |2 |0 |
+ROW |141192 |2086 |39831 |0 |2 |F63100|0 |2 |0 |
+ROW |141193 |2086 |39846 |0 |3 |A54F10|0 |2 |0 |
+ROW |141194 |2086 |39850 |0 |3 |A54F10|0 |2 |0 |
+ROW |141195 |2086 |39841 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141196 |2087 |39900 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141197 |2088 |39901 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141198 |2089 |39892 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141199 |2089 |39893 |0 |1 |2774A4|0 |2 |0 |
+ROW |141200 |2089 |39890 |0 |2 |F63100|0 |2 |0 |
+ROW |141201 |2089 |39891 |0 |3 |A54F10|0 |2 |0 |
+ROW |141202 |2089 |39896 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141203 |2089 |39897 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141204 |2089 |39895 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141205 |2089 |39894 |0 |7 |611F27|0 |2 |0 |
+ROW |141206 |2090 |39888 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141207 |2090 |39887 |0 |1 |2774A4|0 |2 |0 |
+ROW |141208 |2091 |39880 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141209 |2091 |39879 |0 |1 |2774A4|0 |2 |0 |
+ROW |141210 |2091 |39878 |0 |2 |F63100|0 |2 |0 |
+ROW |141211 |2091 |39877 |0 |3 |A54F10|0 |2 |0 |
+ROW |141212 |2092 |39922 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141213 |2092 |39923 |0 |1 |2774A4|0 |2 |0 |
+ROW |141214 |2092 |39924 |0 |2 |F63100|0 |2 |0 |
+ROW |141215 |2092 |39921 |0 |3 |A54F10|0 |2 |0 |
+ROW |141216 |2093 |39966 |2 |0 |4CAF50|0 |2 |0 |
+ROW |141217 |2093 |39963 |2 |1 |AB47BC|0 |2 |0 |
+ROW |141218 |2093 |39969 |5 |2 |1E88E5|0 |4 |0 |
+ROW |141219 |2094 |40004 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141220 |2094 |40003 |0 |1 |2774A4|0 |2 |0 |
+ROW |141221 |2094 |40005 |0 |2 |F63100|0 |2 |0 |
+ROW |141222 |2094 |40006 |0 |3 |A54F10|0 |2 |0 |
+ROW |141223 |2289 |42698 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141224 |2289 |42697 |0 |1 |2774A4|0 |2 |0 |
+ROW |141225 |2289 |42699 |0 |2 |F63100|0 |2 |0 |
+ROW |141226 |2289 |42700 |0 |3 |A54F10|0 |2 |0 |
+ROW |141227 |2290 |42702 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141228 |2290 |42701 |0 |1 |2774A4|0 |2 |0 |
+ROW |141229 |2290 |42703 |0 |2 |F63100|0 |2 |0 |
+ROW |141230 |2290 |42704 |0 |3 |A54F10|0 |2 |0 |
+ROW |141231 |2096 |39994 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141232 |2096 |39993 |0 |1 |2774A4|0 |2 |0 |
+ROW |141233 |2097 |39986 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141234 |2097 |39988 |0 |1 |2774A4|0 |2 |0 |
+ROW |141235 |2097 |39990 |0 |2 |F63100|0 |2 |0 |
+ROW |141236 |2097 |39998 |0 |3 |A54F10|0 |2 |0 |
+ROW |141237 |2099 |39996 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141238 |2099 |39997 |0 |1 |2774A4|0 |2 |0 |
+ROW |141239 |2099 |39995 |0 |2 |F63100|0 |2 |0 |
+ROW |141240 |1130 |30613 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141241 |1130 |30635 |0 |1 |2774A4|0 |2 |0 |
+ROW |141242 |1130 |30625 |0 |2 |F63100|0 |2 |0 |
+ROW |141243 |1131 |30632 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141244 |1131 |30633 |5 |1 |2774A4|0 |2 |0 |
+ROW |141245 |1131 |30629 |5 |2 |F63100|0 |2 |0 |
+ROW |141246 |1132 |30630 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141247 |1132 |30628 |2 |1 |2774A4|0 |2 |0 |
+ROW |141248 |1132 |30631 |2 |2 |F63100|0 |2 |0 |
+ROW |141249 |1133 |30619 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141250 |1133 |30618 |0 |1 |2774A4|0 |2 |0 |
+ROW |141251 |1134 |30623 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141252 |1134 |30622 |5 |1 |2774A4|0 |2 |0 |
+ROW |141253 |1135 |30615 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141254 |841 |28813 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141255 |841 |28811 |0 |1 |2774A4|0 |2 |0 |
+ROW |141256 |841 |28812 |0 |2 |F63100|0 |2 |0 |
+ROW |141257 |841 |28814 |0 |3 |A54F10|0 |2 |0 |
+ROW |141258 |842 |28817 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141259 |842 |28815 |0 |1 |2774A4|0 |2 |0 |
+ROW |141260 |842 |28816 |0 |2 |F63100|0 |2 |0 |
+ROW |141261 |844 |28808 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141262 |844 |28807 |0 |1 |2774A4|0 |2 |0 |
+ROW |141263 |843 |28818 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141264 |845 |28829 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141265 |845 |28831 |0 |1 |2774A4|0 |2 |0 |
+ROW |141266 |845 |28832 |0 |2 |F63100|0 |2 |0 |
+ROW |141267 |845 |28830 |0 |3 |A54F10|0 |2 |0 |
+ROW |141268 |846 |28826 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141269 |846 |28828 |0 |1 |2774A4|0 |2 |0 |
+ROW |141270 |846 |28827 |0 |2 |F63100|0 |2 |0 |
+ROW |141271 |847 |28825 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141272 |1637 |35187 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141273 |1638 |35189 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141274 |1638 |35188 |5 |1 |2774A4|0 |2 |0 |
+ROW |141275 |1638 |35190 |5 |2 |F63100|0 |2 |0 |
+ROW |141276 |1638 |35191 |5 |3 |A54F10|0 |2 |0 |
+ROW |141277 |1638 |35192 |5 |4 |FC6EA3|0 |2 |0 |
+ROW |141278 |1639 |35198 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141279 |1640 |35200 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141280 |1640 |35199 |5 |1 |2774A4|0 |2 |0 |
+ROW |141281 |1640 |35201 |5 |2 |F63100|0 |2 |0 |
+ROW |141282 |1640 |35202 |5 |3 |A54F10|0 |2 |0 |
+ROW |141283 |1640 |35203 |5 |4 |FC6EA3|0 |2 |0 |
+ROW |141284 |1641 |35221 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141285 |1641 |35220 |5 |1 |2774A4|0 |2 |0 |
+ROW |141286 |1641 |35219 |5 |2 |F63100|0 |2 |0 |
+ROW |141287 |1642 |35214 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141288 |1642 |35216 |5 |1 |2774A4|0 |2 |0 |
+ROW |141289 |1642 |35207 |5 |2 |F63100|0 |2 |0 |
+ROW |141290 |1642 |35213 |5 |3 |A54F10|0 |2 |0 |
+ROW |141291 |1642 |35212 |5 |4 |FC6EA3|0 |2 |0 |
+ROW |141292 |1643 |35228 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141293 |1643 |35229 |5 |1 |2774A4|0 |2 |0 |
+ROW |141294 |1643 |35227 |5 |2 |F63100|0 |2 |0 |
+ROW |141295 |1644 |35231 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141296 |1644 |35230 |5 |1 |2774A4|0 |2 |0 |
+ROW |141297 |1644 |35235 |5 |2 |F63100|0 |2 |0 |
+ROW |141298 |1644 |35233 |5 |3 |A54F10|0 |2 |0 |
+ROW |141299 |1644 |35232 |5 |4 |FC6EA3|0 |2 |0 |
+ROW |141300 |1644 |35234 |5 |5 |6C59DC|0 |2 |0 |
+ROW |141301 |1644 |35236 |5 |6 |AC8C14|0 |2 |0 |
+ROW |141302 |1644 |35237 |5 |7 |611F27|0 |2 |0 |
+ROW |141303 |1645 |35243 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141304 |1645 |35244 |5 |1 |2774A4|0 |2 |0 |
+ROW |141305 |1645 |35245 |5 |2 |F63100|0 |2 |0 |
+ROW |141306 |1646 |35252 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141307 |1646 |35253 |5 |1 |2774A4|0 |2 |0 |
+ROW |141308 |1646 |35254 |5 |2 |F63100|0 |2 |0 |
+ROW |141309 |1647 |35172 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141310 |1647 |35168 |5 |1 |2774A4|0 |2 |0 |
+ROW |141311 |1647 |35164 |5 |2 |F63100|0 |2 |0 |
+ROW |141312 |1647 |35163 |5 |3 |A54F10|0 |2 |0 |
+ROW |141313 |1648 |35170 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141314 |1649 |35167 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141315 |1649 |35166 |5 |1 |2774A4|0 |2 |0 |
+ROW |141316 |1649 |35165 |5 |2 |F63100|0 |2 |0 |
+ROW |141317 |1650 |35176 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141318 |2291 |42736 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141319 |2292 |42737 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141320 |2293 |42738 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141321 |2294 |42739 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141322 |2402 |43682 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141323 |2402 |43662 |0 |1 |F63100|0 |2 |0 |
+ROW |141324 |2402 |43680 |0 |2 |2774A4|0 |2 |0 |
+ROW |141325 |2402 |43686 |0 |3 |A54F10|0 |2 |0 |
+ROW |141326 |2402 |43681 |0 |4 |6C59DC|1 |2 |0 |
+ROW |141327 |2402 |43675 |0 |5 |FC6EA3|1 |2 |0 |
+ROW |141328 |2402 |43679 |0 |6 |AC8C14|1 |2 |0 |
+ROW |141329 |2402 |43685 |0 |7 |611F27|1 |2 |0 |
+ROW |141330 |2403 |43678 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141331 |2403 |43667 |2 |1 |2774A4|0 |2 |0 |
+ROW |141332 |2403 |43672 |0 |2 |F63100|1 |2 |0 |
+ROW |141333 |2403 |43683 |0 |3 |A54F10|1 |2 |0 |
+ROW |141334 |2403 |43673 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |141335 |2403 |43684 |0 |5 |6C59DC|1 |2 |0 |
+ROW |141336 |2404 |43671 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141337 |2404 |43677 |0 |1 |F63100|0 |2 |0 |
+ROW |141338 |2404 |43669 |0 |2 |2774A4|0 |2 |0 |
+ROW |141339 |2404 |43674 |0 |3 |A54F10|0 |2 |0 |
+ROW |141340 |2404 |43670 |0 |4 |6C59DC|1 |2 |0 |
+ROW |141341 |2404 |43676 |0 |5 |FC6EA3|1 |2 |0 |
+ROW |141342 |2404 |43668 |0 |6 |AC8C14|1 |2 |0 |
+ROW |141343 |2404 |43663 |0 |7 |611F27|1 |2 |0 |
+ROW |141344 |2405 |43656 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141345 |2405 |43658 |0 |1 |2774A4|0 |2 |0 |
+ROW |141346 |2405 |43657 |0 |2 |F63100|0 |2 |0 |
+ROW |141347 |2405 |43653 |0 |3 |A54F10|0 |2 |0 |
+ROW |141348 |2405 |43654 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141349 |2405 |43655 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141350 |2102 |40167 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141351 |2102 |40147 |0 |1 |F63100|0 |2 |0 |
+ROW |141352 |2102 |40165 |0 |2 |2774A4|0 |2 |0 |
+ROW |141353 |2102 |40171 |0 |3 |A54F10|0 |2 |0 |
+ROW |141354 |2102 |40166 |0 |4 |6C59DC|1 |2 |0 |
+ROW |141355 |2102 |40160 |0 |5 |FC6EA3|1 |2 |0 |
+ROW |141356 |2102 |40164 |0 |6 |AC8C14|1 |2 |0 |
+ROW |141357 |2102 |40170 |0 |7 |611F27|1 |2 |0 |
+ROW |141358 |2103 |40163 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141359 |2103 |40152 |2 |1 |2774A4|0 |2 |0 |
+ROW |141360 |2103 |40157 |0 |2 |F63100|1 |2 |0 |
+ROW |141361 |2103 |40168 |0 |3 |A54F10|1 |2 |0 |
+ROW |141362 |2103 |40158 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |141363 |2103 |40169 |0 |5 |6C59DC|1 |2 |0 |
+ROW |141364 |2104 |40156 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141365 |2104 |40162 |0 |1 |F63100|0 |2 |0 |
+ROW |141366 |2104 |40154 |0 |2 |2774A4|0 |2 |0 |
+ROW |141367 |2104 |40159 |0 |3 |A54F10|0 |2 |0 |
+ROW |141368 |2104 |40155 |0 |4 |6C59DC|1 |2 |0 |
+ROW |141369 |2104 |40161 |0 |5 |FC6EA3|1 |2 |0 |
+ROW |141370 |2104 |40153 |0 |6 |AC8C14|1 |2 |0 |
+ROW |141371 |2104 |40148 |0 |7 |611F27|1 |2 |0 |
+ROW |141372 |2110 |40124 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141373 |2110 |40122 |0 |1 |2774A4|0 |2 |0 |
+ROW |141374 |2110 |40123 |0 |2 |F63100|0 |2 |0 |
+ROW |141375 |2110 |40126 |0 |3 |A54F10|0 |2 |0 |
+ROW |141376 |2110 |40117 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141377 |2110 |40125 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141378 |1262 |31592 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141379 |1262 |31584 |0 |1 |2774A4|0 |2 |0 |
+ROW |141380 |1262 |31582 |0 |2 |F63100|0 |2 |0 |
+ROW |141381 |1262 |31585 |0 |3 |A54F10|0 |2 |0 |
+ROW |141382 |1263 |31591 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141383 |1263 |31583 |0 |1 |2774A4|0 |2 |0 |
+ROW |141384 |1263 |31590 |0 |2 |F63100|0 |2 |0 |
+ROW |141385 |1264 |31602 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141386 |1264 |31597 |0 |1 |2774A4|0 |2 |0 |
+ROW |141387 |1264 |31601 |0 |2 |F63100|0 |2 |0 |
+ROW |141388 |1264 |31604 |0 |3 |A54F10|0 |2 |0 |
+ROW |141389 |1265 |31609 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141390 |1265 |31610 |0 |1 |2774A4|0 |2 |0 |
+ROW |141391 |1265 |31608 |0 |2 |F63100|0 |2 |0 |
+ROW |141392 |2297 |42767 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141393 |2298 |42769 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141394 |2298 |42768 |5 |1 |2774A4|0 |2 |0 |
+ROW |141395 |2299 |42771 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141396 |2299 |42770 |5 |1 |2774A4|0 |2 |0 |
+ROW |141397 |2300 |42772 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141398 |2300 |42773 |5 |1 |2774A4|0 |2 |0 |
+ROW |141399 |2301 |42776 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141400 |2301 |42784 |5 |1 |2774A4|0 |2 |0 |
+ROW |141401 |2301 |42791 |5 |2 |F63100|0 |2 |0 |
+ROW |141402 |2302 |42788 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141403 |2302 |42789 |5 |1 |2774A4|0 |2 |0 |
+ROW |141404 |2303 |42787 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141405 |2303 |42786 |5 |1 |2774A4|0 |2 |0 |
+ROW |141406 |2304 |42782 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141407 |2304 |42777 |5 |1 |2774A4|0 |2 |0 |
+ROW |141408 |2305 |42780 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141409 |2305 |42781 |5 |1 |2774A4|0 |2 |0 |
+ROW |141410 |2306 |42794 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141411 |2307 |42796 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141412 |2307 |42795 |5 |1 |2774A4|0 |2 |0 |
+ROW |141413 |2308 |42798 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141414 |2308 |42797 |5 |1 |2774A4|0 |2 |0 |
+ROW |141415 |2307 |42799 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141416 |2307 |42800 |5 |1 |2774A4|0 |2 |0 |
+ROW |141417 |2310 |42804 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141418 |2310 |42805 |5 |1 |2774A4|0 |2 |0 |
+ROW |141419 |1001 |29729 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141420 |1001 |29728 |0 |1 |2774A4|0 |2 |0 |
+ROW |141421 |1001 |29727 |0 |2 |F63100|0 |2 |0 |
+ROW |141422 |1001 |29725 |0 |3 |A54F10|0 |2 |0 |
+ROW |141423 |1001 |29723 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141424 |1001 |29733 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141425 |1001 |29737 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141426 |1001 |29731 |0 |7 |611F27|0 |2 |0 |
+ROW |141427 |1000 |29720 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141428 |1000 |29730 |0 |1 |2774A4|0 |2 |0 |
+ROW |141429 |1000 |29721 |0 |2 |F63100|0 |2 |0 |
+ROW |141430 |1000 |29726 |0 |3 |A54F10|0 |2 |0 |
+ROW |141431 |1000 |29724 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141432 |1000 |29734 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141433 |1000 |29722 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141434 |1000 |29732 |0 |7 |611F27|0 |2 |0 |
+ROW |141435 |1027 |30022 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141436 |1027 |30021 |0 |1 |2774A4|0 |2 |0 |
+ROW |141437 |1027 |30019 |0 |2 |F63100|0 |2 |0 |
+ROW |141438 |1008 |29698 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141439 |1008 |29700 |2 |1 |FF0000|0 |2 |0 |
+ROW |141440 |1007 |29691 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141441 |1013 |29657 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141442 |1013 |29658 |0 |1 |2774A4|0 |2 |0 |
+ROW |141443 |1009 |29687 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141444 |1009 |29694 |2 |1 |FF0000|0 |2 |0 |
+ROW |141445 |1029 |30017 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141446 |1029 |30016 |0 |1 |2774A4|0 |2 |0 |
+ROW |141447 |1029 |30015 |0 |2 |F63100|0 |2 |0 |
+ROW |141448 |1031 |30007 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141449 |1031 |30013 |0 |1 |2774A4|0 |2 |0 |
+ROW |141450 |1031 |30011 |0 |2 |F63100|0 |2 |0 |
+ROW |141451 |1031 |30009 |0 |3 |A54F10|0 |2 |0 |
+ROW |141452 |1031 |30005 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141453 |1031 |30003 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141454 |1031 |30023 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141455 |1031 |30001 |0 |7 |611F27|0 |2 |0 |
+ROW |141456 |1030 |30008 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141457 |1030 |30014 |0 |1 |2774A4|0 |2 |0 |
+ROW |141458 |1030 |30012 |0 |2 |F63100|0 |2 |0 |
+ROW |141459 |1030 |30010 |0 |3 |A54F10|0 |2 |0 |
+ROW |141460 |1030 |30006 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141461 |1030 |30004 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141462 |1030 |30000 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141463 |1030 |30002 |0 |7 |611F27|0 |2 |0 |
+ROW |141464 |1011 |29695 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141465 |1028 |30020 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141466 |1010 |29701 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141467 |1010 |29697 |0 |1 |2774A4|0 |2 |0 |
+ROW |141468 |1012 |29692 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141469 |1015 |29812 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141470 |1015 |29811 |0 |1 |2774A4|0 |2 |0 |
+ROW |141471 |1015 |29810 |0 |2 |F63100|0 |2 |0 |
+ROW |141472 |1015 |29808 |0 |3 |A54F10|0 |2 |0 |
+ROW |141473 |1015 |29806 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141474 |1015 |29816 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141475 |1015 |29820 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141476 |1015 |29814 |0 |7 |611F27|0 |2 |0 |
+ROW |141477 |1014 |29803 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141478 |1014 |29813 |0 |1 |2774A4|0 |2 |0 |
+ROW |141479 |1014 |29804 |0 |2 |F63100|0 |2 |0 |
+ROW |141480 |1014 |29809 |0 |3 |A54F10|0 |2 |0 |
+ROW |141481 |1014 |29807 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141482 |1014 |29817 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141483 |1014 |29805 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141484 |1014 |29815 |0 |7 |611F27|0 |2 |0 |
+ROW |141485 |1016 |29768 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141486 |1016 |29767 |0 |1 |2774A4|0 |2 |0 |
+ROW |141487 |1016 |29765 |0 |2 |F63100|0 |2 |0 |
+ROW |141488 |1022 |29782 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141489 |1022 |29781 |2 |1 |FF0000|0 |2 |0 |
+ROW |141490 |1021 |29783 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141491 |1023 |29780 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141492 |1023 |29784 |2 |1 |FF0000|0 |2 |0 |
+ROW |141493 |1018 |29763 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141494 |1018 |29762 |0 |1 |2774A4|0 |2 |0 |
+ROW |141495 |1018 |29761 |0 |2 |F63100|0 |2 |0 |
+ROW |141496 |1020 |29753 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141497 |1020 |29759 |0 |1 |2774A4|0 |2 |0 |
+ROW |141498 |1020 |29757 |0 |2 |F63100|0 |2 |0 |
+ROW |141499 |1020 |29755 |0 |3 |A54F10|0 |2 |0 |
+ROW |141500 |1020 |29751 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141501 |1020 |29749 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141502 |1020 |29769 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141503 |1020 |29747 |0 |7 |611F27|0 |2 |0 |
+ROW |141504 |1019 |29754 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141505 |1019 |29760 |0 |1 |2774A4|0 |2 |0 |
+ROW |141506 |1019 |29758 |0 |2 |F63100|0 |2 |0 |
+ROW |141507 |1019 |29756 |0 |3 |A54F10|0 |2 |0 |
+ROW |141508 |1019 |29752 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141509 |1019 |29750 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141510 |1019 |29746 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141511 |1019 |29748 |0 |7 |611F27|0 |2 |0 |
+ROW |141512 |1025 |29775 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141513 |1017 |29766 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141514 |1024 |29776 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141515 |1024 |29777 |0 |1 |2774A4|0 |2 |0 |
+ROW |141516 |1026 |29772 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141517 |1356 |32276 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141518 |1356 |32275 |0 |1 |2774A4|0 |2 |0 |
+ROW |141519 |1357 |32281 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141520 |1357 |32267 |0 |1 |2774A4|0 |2 |0 |
+ROW |141521 |1357 |32279 |0 |2 |F63100|0 |2 |0 |
+ROW |141522 |1358 |32268 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141523 |1358 |32274 |0 |1 |2774A4|0 |2 |0 |
+ROW |141524 |1358 |32271 |0 |2 |F63100|0 |2 |0 |
+ROW |141525 |1359 |32288 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141526 |1359 |32291 |0 |1 |2774A4|0 |2 |0 |
+ROW |141527 |1360 |32247 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141528 |1360 |32245 |0 |1 |2774A4|0 |2 |0 |
+ROW |141529 |1360 |32246 |0 |2 |F63100|0 |2 |0 |
+ROW |141530 |1361 |32248 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141531 |1361 |32249 |0 |1 |2774A4|0 |2 |0 |
+ROW |141532 |1361 |32250 |0 |2 |F63100|0 |2 |0 |
+ROW |141533 |1362 |32240 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141534 |1362 |32273 |0 |1 |2774A4|0 |2 |0 |
+ROW |141535 |1363 |32282 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141536 |1363 |32283 |0 |1 |2774A4|0 |2 |0 |
+ROW |141537 |1363 |32289 |0 |2 |F63100|0 |2 |0 |
+ROW |141538 |1363 |32290 |0 |3 |A54F10|0 |2 |0 |
+ROW |141539 |1363 |32286 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141540 |1363 |32287 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141541 |1363 |32241 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141542 |1363 |32242 |0 |7 |611F27|0 |2 |0 |
+ROW |141543 |1363 |32243 |0 |8 |F230E0|0 |2 |0 |
+ROW |141544 |1363 |32244 |0 |9 |FFAD40|0 |2 |0 |
+ROW |141545 |1363 |32277 |0 |10 |40CDFF|0 |2 |0 |
+ROW |141546 |1363 |32278 |0 |11 |40FFA0|0 |2 |0 |
+ROW |141547 |1427 |32768 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141548 |1427 |32767 |5 |1 |2774A4|0 |2 |0 |
+ROW |141549 |1428 |32774 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141550 |1428 |32772 |5 |1 |2774A4|0 |2 |0 |
+ROW |141551 |1428 |32775 |5 |2 |F63100|0 |2 |0 |
+ROW |141552 |1428 |32773 |5 |3 |A54F10|0 |2 |0 |
+ROW |141553 |1429 |32779 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141554 |1429 |32777 |5 |1 |2774A4|0 |2 |0 |
+ROW |141555 |1429 |32778 |5 |2 |F63100|0 |2 |0 |
+ROW |141556 |1806 |36785 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141557 |1806 |36786 |0 |1 |2774A4|0 |2 |0 |
+ROW |141558 |1806 |36787 |0 |2 |F63100|0 |2 |0 |
+ROW |141559 |2311 |42860 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141560 |2311 |42861 |0 |1 |2774A4|0 |2 |0 |
+ROW |141561 |2311 |42859 |0 |2 |F63100|0 |2 |0 |
+ROW |141562 |2311 |42858 |0 |3 |A54F10|0 |2 |0 |
+ROW |141563 |2311 |42857 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141564 |2312 |42891 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141565 |2313 |42864 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141566 |2313 |42867 |2 |1 |2774A4|0 |2 |0 |
+ROW |141567 |2313 |42866 |0 |2 |F63100|1 |2 |0 |
+ROW |141568 |2313 |42863 |0 |3 |A54F10|1 |2 |0 |
+ROW |141569 |2313 |42865 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |141570 |2313 |42862 |0 |5 |6C59DC|1 |2 |0 |
+ROW |141571 |2314 |42874 |0 |0 |969696|0 |9 |2 |
+ROW |141572 |2314 |42875 |0 |1 |C80000|0 |9 |0 |
+ROW |141573 |2315 |42879 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141574 |2315 |42883 |5 |1 |2774A4|0 |2 |0 |
+ROW |141575 |2316 |42881 |0 |0 |969696|0 |9 |2 |
+ROW |141576 |2316 |42882 |0 |1 |C80000|0 |9 |0 |
+ROW |141577 |2317 |42886 |0 |0 |969696|0 |9 |2 |
+ROW |141578 |2317 |42887 |0 |1 |C80000|0 |9 |0 |
+ROW |141579 |2318 |42888 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141580 |2318 |42890 |5 |1 |2774A4|0 |2 |0 |
+ROW |141581 |2319 |42839 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141582 |2319 |42826 |0 |1 |2774A4|0 |2 |0 |
+ROW |141583 |2320 |42837 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141584 |2320 |42832 |0 |1 |2774A4|0 |2 |0 |
+ROW |141585 |2321 |42824 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141586 |2321 |42820 |5 |1 |2774A4|0 |2 |0 |
+ROW |141587 |2322 |42825 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141588 |2323 |42842 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141589 |2323 |42844 |0 |1 |2774A4|0 |2 |0 |
+ROW |141590 |2324 |42833 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141591 |2324 |42834 |0 |1 |2774A4|0 |2 |0 |
+ROW |141592 |2324 |42835 |0 |2 |F63100|0 |2 |0 |
+ROW |141593 |2324 |42836 |0 |3 |A54F10|1 |2 |0 |
+ROW |141594 |1430 |32837 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141595 |1430 |32836 |2 |1 |2774A4|0 |2 |0 |
+ROW |141596 |1430 |32835 |2 |2 |F63100|0 |2 |0 |
+ROW |141597 |1431 |32856 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141598 |1432 |32828 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141599 |1433 |32847 |5 |0 |34bdeb|0 |2 |0 |
+ROW |141600 |1434 |32797 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141601 |1434 |32796 |5 |1 |2774A4|0 |2 |0 |
+ROW |141602 |1434 |32801 |2 |2 |F63100|0 |2 |0 |
+ROW |141603 |1435 |32834 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141604 |1436 |32819 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141605 |1437 |32826 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141606 |1614 |34976 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141607 |1614 |34975 |0 |1 |2774A4|0 |2 |0 |
+ROW |141608 |1614 |34978 |0 |2 |F63100|0 |2 |0 |
+ROW |141609 |1614 |34979 |0 |3 |A54F10|0 |2 |0 |
+ROW |141610 |1614 |34980 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141611 |1615 |34982 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141612 |1615 |34997 |0 |1 |2774A4|0 |2 |0 |
+ROW |141613 |1615 |35001 |0 |2 |F63100|0 |2 |0 |
+ROW |141614 |1615 |35000 |0 |3 |A54F10|0 |2 |0 |
+ROW |141615 |1615 |34998 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141616 |1615 |34996 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141617 |1616 |35015 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141618 |1616 |35014 |0 |1 |2774A4|0 |2 |0 |
+ROW |141619 |1617 |35012 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141620 |1617 |35013 |0 |1 |2774A4|0 |2 |0 |
+ROW |141621 |1618 |34951 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141622 |1618 |34952 |0 |1 |2774A4|0 |2 |0 |
+ROW |141623 |1618 |34953 |0 |2 |F63100|0 |2 |0 |
+ROW |141624 |1618 |34954 |0 |3 |A54F10|0 |2 |0 |
+ROW |141625 |1618 |34956 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141626 |1618 |34950 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141627 |1618 |34957 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141628 |1618 |34959 |0 |7 |611F27|0 |2 |0 |
+ROW |141629 |1618 |34965 |0 |8 |F230E0|0 |2 |0 |
+ROW |141630 |529 |23357 |0 |0 |DD0000|0 |2 |0 |
+ROW |141631 |529 |23341 |0 |1 |00DDDD|0 |2 |0 |
+ROW |141632 |529 |23342 |0 |2 |3333FF|0 |2 |0 |
+ROW |141633 |529 |28251 |0 |3 |00FF00|0 |2 |0 |
+ROW |141634 |530 |23345 |0 |0 |990099|0 |2 |0 |
+ROW |141635 |530 |23348 |0 |1 |990000|0 |2 |0 |
+ROW |141636 |530 |23355 |0 |2 |0000EE|0 |2 |0 |
+ROW |141637 |530 |23352 |0 |3 |FF33FF|0 |2 |0 |
+ROW |141638 |530 |23356 |0 |4 |007700|0 |2 |0 |
+ROW |141639 |530 |23354 |0 |5 |003300|0 |2 |0 |
+ROW |141640 |530 |23346 |0 |6 |33FFFF|0 |2 |0 |
+ROW |141641 |530 |23349 |0 |7 |DD0000|0 |2 |0 |
+ROW |141642 |530 |23344 |0 |8 |000099|0 |2 |0 |
+ROW |141643 |530 |28250 |0 |9 |00FF00|0 |2 |0 |
+ROW |141644 |530 |33019 |0 |10 |5A2B57|0 |2 |0 |
+ROW |141645 |530 |39826 |0 |11 |9FA8DA|0 |2 |0 |
+ROW |141646 |531 |23353 |0 |0 |FFAA00|0 |2 |0 |
+ROW |141647 |531 |23347 |0 |1 |990099|0 |2 |0 |
+ROW |141648 |531 |23350 |0 |2 |EE0000|0 |2 |0 |
+ROW |141649 |531 |23343 |0 |3 |FF66FF|0 |2 |0 |
+ROW |141650 |531 |23351 |0 |4 |0000EE|0 |2 |0 |
+ROW |141651 |531 |23360 |0 |5 |00EE00|0 |2 |0 |
+ROW |141652 |531 |25369 |0 |6 |009999|0 |2 |0 |
+ROW |141653 |531 |25368 |0 |7 |BBBB00|0 |2 |0 |
+ROW |141654 |531 |28618 |0 |8 |990000|0 |2 |0 |
+ROW |141655 |531 |28619 |0 |9 |008800|0 |2 |0 |
+ROW |141656 |531 |33018 |0 |10 |2B5429|0 |2 |0 |
+ROW |141657 |807 |28617 |0 |0 |008800|0 |2 |0 |
+ROW |141658 |532 |23340 |5 |0 |00C800|0 |2 |0 |
+ROW |141659 |532 |23358 |0 |1 |C80000|0 |2 |0 |
+ROW |141660 |803 |28599 |0 |0 |DD0000|0 |2 |0 |
+ROW |141661 |803 |28596 |0 |1 |00DDDD|0 |2 |0 |
+ROW |141662 |803 |28597 |0 |2 |3333FF|0 |2 |0 |
+ROW |141663 |803 |28598 |0 |3 |00FF00|0 |2 |0 |
+ROW |141664 |804 |28602 |0 |0 |990099|0 |2 |0 |
+ROW |141665 |804 |28606 |0 |1 |990000|0 |2 |0 |
+ROW |141666 |804 |28608 |0 |2 |0000EE|0 |2 |0 |
+ROW |141667 |804 |28615 |0 |3 |FF33FF|0 |2 |0 |
+ROW |141668 |804 |28610 |0 |4 |007700|0 |2 |0 |
+ROW |141669 |804 |28611 |0 |5 |003300|0 |2 |0 |
+ROW |141670 |804 |28616 |0 |6 |33FFFF|0 |2 |0 |
+ROW |141671 |804 |28607 |0 |7 |DD0000|0 |2 |0 |
+ROW |141672 |804 |28604 |0 |8 |000099|0 |2 |0 |
+ROW |141673 |804 |28588 |0 |9 |00FF00|0 |2 |0 |
+ROW |141674 |804 |33013 |0 |10 |5A2B57|0 |2 |0 |
+ROW |141675 |804 |39825 |0 |11 |9FA8DA|0 |2 |0 |
+ROW |141676 |805 |28612 |0 |0 |FFAA00|0 |2 |0 |
+ROW |141677 |805 |28600 |0 |1 |990099|0 |2 |0 |
+ROW |141678 |805 |28613 |0 |2 |EE0000|0 |2 |0 |
+ROW |141679 |805 |28605 |0 |3 |FF66FF|0 |2 |0 |
+ROW |141680 |805 |28614 |0 |4 |0000EE|0 |2 |0 |
+ROW |141681 |805 |28601 |0 |5 |00EE00|0 |2 |0 |
+ROW |141682 |805 |28603 |0 |6 |009999|0 |2 |0 |
+ROW |141683 |805 |28609 |0 |7 |BBBB00|0 |2 |0 |
+ROW |141684 |805 |40188 |0 |8 |990000|0 |2 |0 |
+ROW |141685 |805 |40189 |0 |9 |008800|0 |2 |0 |
+ROW |141686 |805 |33012 |0 |10 |2B5429|0 |2 |0 |
+ROW |141687 |2113 |40187 |0 |0 |008800|0 |2 |0 |
+ROW |141688 |806 |28595 |5 |0 |00C800|0 |2 |0 |
+ROW |141689 |806 |28586 |0 |1 |C80000|0 |2 |0 |
+ROW |141690 |1445 |22404 |0 |0 |990099|0 |2 |0 |
+ROW |141691 |1445 |22399 |0 |1 |990000|0 |2 |0 |
+ROW |141692 |1445 |22416 |0 |2 |0000EE|0 |2 |0 |
+ROW |141693 |1445 |25366 |0 |3 |FF33FF|0 |2 |0 |
+ROW |141694 |1445 |22418 |0 |4 |009600|0 |2 |0 |
+ROW |141695 |1445 |22402 |0 |5 |003300|0 |2 |0 |
+ROW |141696 |1445 |22400 |0 |6 |33FFFF|0 |2 |0 |
+ROW |141697 |1445 |22689 |0 |7 |DD0000|0 |2 |0 |
+ROW |141698 |1445 |23171 |0 |8 |000099|0 |2 |0 |
+ROW |141699 |1445 |22401 |0 |9 |00FF00|0 |2 |0 |
+ROW |141700 |1445 |33023 |0 |10 |5A2B57|0 |2 |0 |
+ROW |141701 |1445 |39822 |0 |11 |9FA8DA|0 |2 |0 |
+ROW |141702 |1651 |22406 |0 |0 |00EE00|0 |2 |0 |
+ROW |141703 |1651 |25665 |0 |1 |0000EE|0 |2 |0 |
+ROW |141704 |1651 |25666 |0 |2 |FFAA00|0 |2 |0 |
+ROW |141705 |1651 |28537 |0 |3 |00EEEE|0 |2 |0 |
+ROW |141706 |1651 |28535 |0 |4 |990099|0 |2 |0 |
+ROW |141707 |1652 |22426 |0 |0 |00EE00|0 |2 |0 |
+ROW |141708 |1652 |22408 |0 |1 |FFAA00|0 |2 |0 |
+ROW |141709 |1652 |22412 |0 |2 |990099|0 |2 |0 |
+ROW |141710 |1652 |22414 |0 |3 |FF66FF|0 |2 |0 |
+ROW |141711 |1652 |23663 |0 |4 |009999|0 |2 |0 |
+ROW |141712 |1652 |33022 |0 |5 |2B5429|0 |2 |0 |
+ROW |141713 |1652 |22430 |0 |6 |8048B4|0 |2 |0 |
+ROW |141714 |1652 |22420 |0 |7 |FD5434|0 |2 |0 |
+ROW |141715 |1653 |22422 |0 |0 |00EE00|0 |2 |0 |
+ROW |141716 |1653 |22424 |0 |1 |0000EE|0 |2 |0 |
+ROW |141717 |1653 |25370 |0 |2 |FFAA00|0 |2 |0 |
+ROW |141718 |1653 |29822 |0 |3 |00EEEE|0 |2 |0 |
+ROW |141719 |1653 |34317 |0 |4 |990099|0 |2 |0 |
+ROW |141720 |1653 |34316 |0 |5 |EE0000|0 |2 |0 |
+ROW |141721 |1654 |33021 |0 |0 |C80000|0 |2 |0 |
+ROW |141722 |1654 |33020 |0 |1 |00C800|0 |2 |0 |
+ROW |141723 |527 |22199 |0 |0 |C80000|0 |2 |0 |
+ROW |141724 |527 |22196 |0 |1 |00C800|0 |2 |0 |
+ROW |141725 |410 |22185 |0 |0 |009900|0 |2 |0 |
+ROW |141726 |410 |22189 |0 |1 |DD0000|0 |2 |0 |
+ROW |141727 |410 |22396 |0 |2 |00DDDD|0 |2 |0 |
+ROW |141728 |410 |22183 |0 |3 |3333FF|0 |2 |0 |
+ROW |141729 |410 |22191 |0 |4 |999900|0 |2 |0 |
+ROW |141730 |410 |23634 |0 |5 |00FF00|0 |2 |0 |
+ROW |141731 |404 |22404 |0 |0 |990099|0 |2 |0 |
+ROW |141732 |404 |22399 |0 |1 |990000|0 |2 |0 |
+ROW |141733 |404 |22416 |0 |2 |0000EE|0 |2 |0 |
+ROW |141734 |404 |22430 |0 |3 |FF33FF|0 |2 |0 |
+ROW |141735 |404 |22418 |0 |4 |009600|0 |2 |0 |
+ROW |141736 |404 |22402 |0 |5 |003300|0 |2 |0 |
+ROW |141737 |404 |22420 |0 |6 |CCCC00|0 |2 |0 |
+ROW |141738 |404 |22400 |0 |7 |33FFFF|0 |2 |0 |
+ROW |141739 |404 |22689 |0 |8 |DD0000|0 |2 |0 |
+ROW |141740 |404 |23171 |0 |9 |000099|0 |2 |0 |
+ROW |141741 |404 |22401 |0 |10 |00FF00|0 |2 |0 |
+ROW |141742 |404 |33023 |0 |11 |5A2B57|0 |2 |0 |
+ROW |141743 |404 |39822 |0 |12 |9FA8DA|0 |2 |0 |
+ROW |141744 |406 |22426 |0 |0 |00EE00|0 |2 |0 |
+ROW |141745 |406 |22422 |0 |1 |0000EE|0 |2 |0 |
+ROW |141746 |406 |22408 |0 |2 |FFAA00|0 |2 |0 |
+ROW |141747 |406 |22424 |0 |3 |00EEEE|0 |2 |0 |
+ROW |141748 |406 |22412 |0 |4 |990099|0 |2 |0 |
+ROW |141749 |406 |22406 |0 |5 |EE0000|0 |2 |0 |
+ROW |141750 |406 |22414 |0 |6 |FF66FF|0 |2 |0 |
+ROW |141751 |406 |23663 |0 |7 |009999|0 |2 |0 |
+ROW |141752 |406 |25366 |0 |8 |BBBB00|0 |2 |0 |
+ROW |141753 |406 |25370 |0 |9 |AA0000|0 |2 |0 |
+ROW |141754 |406 |25665 |0 |10 |990000|0 |2 |0 |
+ROW |141755 |406 |25666 |0 |11 |008800|0 |2 |0 |
+ROW |141756 |406 |28535 |0 |12 |80B0E0|0 |2 |0 |
+ROW |141757 |406 |28537 |0 |13 |4080B0|0 |2 |0 |
+ROW |141758 |406 |29822 |0 |14 |8000FF|0 |2 |0 |
+ROW |141759 |406 |33022 |0 |15 |2B5429|0 |2 |0 |
+ROW |141760 |406 |34317 |0 |16 |8048B4|0 |2 |0 |
+ROW |141761 |406 |34316 |0 |17 |FD5434|0 |2 |0 |
+ROW |141762 |406 |35274 |0 |18 |790E1F|0 |2 |0 |
+ROW |141763 |406 |35272 |0 |19 |87AC4D|0 |2 |0 |
+ROW |141764 |788 |28248 |0 |0 |008800|0 |2 |0 |
+ROW |141765 |788 |28533 |0 |1 |EE0000|0 |2 |0 |
+ROW |141766 |392 |22187 |5 |0 |00C800|0 |2 |0 |
+ROW |141767 |392 |23251 |0 |1 |F63100|0 |2 |0 |
+ROW |141768 |1444 |28581 |0 |0 |990099|0 |2 |0 |
+ROW |141769 |1444 |28574 |0 |1 |990000|0 |2 |0 |
+ROW |141770 |1444 |28571 |0 |2 |0000EE|0 |2 |0 |
+ROW |141771 |1444 |28562 |0 |3 |FF33FF|0 |2 |0 |
+ROW |141772 |1444 |28570 |0 |4 |009600|0 |2 |0 |
+ROW |141773 |1444 |28569 |0 |5 |003300|0 |2 |0 |
+ROW |141774 |1444 |28552 |0 |6 |33FFFF|0 |2 |0 |
+ROW |141775 |1444 |28573 |0 |7 |DD0000|0 |2 |0 |
+ROW |141776 |1444 |28579 |0 |8 |000099|0 |2 |0 |
+ROW |141777 |1444 |28559 |0 |9 |00FF00|0 |2 |0 |
+ROW |141778 |1444 |33017 |0 |10 |5A2B57|0 |2 |0 |
+ROW |141779 |1444 |39824 |0 |11 |9FA8DA|0 |2 |0 |
+ROW |141780 |1659 |28567 |0 |0 |00EE00|0 |2 |0 |
+ROW |141781 |1659 |28575 |0 |1 |0000EE|0 |2 |0 |
+ROW |141782 |1659 |28576 |0 |2 |FFAA00|0 |2 |0 |
+ROW |141783 |1659 |28583 |0 |3 |00EEEE|0 |2 |0 |
+ROW |141784 |1659 |28582 |0 |4 |990099|0 |2 |0 |
+ROW |141785 |1660 |28572 |0 |0 |00EE00|0 |2 |0 |
+ROW |141786 |1660 |28568 |0 |1 |FFAA00|0 |2 |0 |
+ROW |141787 |1660 |28564 |0 |2 |990099|0 |2 |0 |
+ROW |141788 |1660 |28578 |0 |3 |FF66FF|0 |2 |0 |
+ROW |141789 |1660 |28580 |0 |4 |009999|0 |2 |0 |
+ROW |141790 |1660 |33016 |0 |5 |2B5429|0 |2 |0 |
+ROW |141791 |1660 |28565 |0 |6 |8048B4|0 |2 |0 |
+ROW |141792 |1660 |28577 |0 |7 |FD5434|0 |2 |0 |
+ROW |141793 |1661 |28566 |0 |0 |00EE00|0 |2 |0 |
+ROW |141794 |1661 |28561 |0 |1 |0000EE|0 |2 |0 |
+ROW |141795 |1661 |28563 |0 |2 |FFAA00|0 |2 |0 |
+ROW |141796 |1661 |29821 |0 |3 |00EEEE|0 |2 |0 |
+ROW |141797 |1661 |34314 |0 |4 |990099|0 |2 |0 |
+ROW |141798 |1661 |34315 |0 |5 |EE0000|0 |2 |0 |
+ROW |141799 |1662 |33015 |0 |0 |C80000|0 |2 |0 |
+ROW |141800 |1662 |33014 |0 |1 |00C800|0 |2 |0 |
+ROW |141801 |797 |28546 |0 |0 |C80000|0 |2 |0 |
+ROW |141802 |797 |28545 |0 |1 |00C800|0 |2 |0 |
+ROW |141803 |798 |28551 |0 |0 |009900|0 |2 |0 |
+ROW |141804 |798 |28543 |0 |1 |DD0000|0 |2 |0 |
+ROW |141805 |798 |28542 |0 |2 |00DDDD|0 |2 |0 |
+ROW |141806 |798 |28549 |0 |3 |3333FF|0 |2 |0 |
+ROW |141807 |798 |28544 |0 |4 |999900|0 |2 |0 |
+ROW |141808 |798 |28548 |0 |5 |00FF00|0 |2 |0 |
+ROW |141809 |799 |28581 |0 |0 |990099|0 |2 |0 |
+ROW |141810 |799 |28574 |0 |1 |990000|0 |2 |0 |
+ROW |141811 |799 |28571 |0 |2 |0000EE|0 |2 |0 |
+ROW |141812 |799 |28565 |0 |3 |FF33FF|0 |2 |0 |
+ROW |141813 |799 |28570 |0 |4 |009600|0 |2 |0 |
+ROW |141814 |799 |28569 |0 |5 |003300|0 |2 |0 |
+ROW |141815 |799 |28577 |0 |6 |CCCC00|0 |2 |0 |
+ROW |141816 |799 |28552 |0 |7 |33FFFF|0 |2 |0 |
+ROW |141817 |799 |28573 |0 |8 |DD0000|0 |2 |0 |
+ROW |141818 |799 |28579 |0 |9 |000099|0 |2 |0 |
+ROW |141819 |799 |28559 |0 |10 |00FF00|0 |2 |0 |
+ROW |141820 |799 |33017 |0 |11 |5A2B57|0 |2 |0 |
+ROW |141821 |799 |39824 |0 |12 |9FA8DA|0 |2 |0 |
+ROW |141822 |800 |28572 |0 |0 |00EE00|0 |2 |0 |
+ROW |141823 |800 |28566 |0 |1 |0000EE|0 |2 |0 |
+ROW |141824 |800 |28568 |0 |2 |FFAA00|0 |2 |0 |
+ROW |141825 |800 |28561 |0 |3 |00EEEE|0 |2 |0 |
+ROW |141826 |800 |28564 |0 |4 |990099|0 |2 |0 |
+ROW |141827 |800 |28567 |0 |5 |EE0000|0 |2 |0 |
+ROW |141828 |800 |28578 |0 |6 |FF66FF|0 |2 |0 |
+ROW |141829 |800 |28580 |0 |7 |009999|0 |2 |0 |
+ROW |141830 |800 |28562 |0 |8 |BBBB00|0 |2 |0 |
+ROW |141831 |800 |28563 |0 |9 |AA0000|0 |2 |0 |
+ROW |141832 |800 |28575 |0 |10 |990000|0 |2 |0 |
+ROW |141833 |800 |28576 |0 |11 |008800|0 |2 |0 |
+ROW |141834 |800 |28582 |0 |12 |80B0E0|0 |2 |0 |
+ROW |141835 |800 |28583 |0 |13 |4080B0|0 |2 |0 |
+ROW |141836 |800 |29821 |0 |14 |8000FF|0 |2 |0 |
+ROW |141837 |800 |33016 |0 |15 |2B5429|0 |2 |0 |
+ROW |141838 |800 |34314 |0 |16 |8048B4|0 |2 |0 |
+ROW |141839 |800 |34315 |0 |17 |FD5434|0 |2 |0 |
+ROW |141840 |800 |35279 |0 |18 |790E1F|0 |2 |0 |
+ROW |141841 |800 |35278 |0 |19 |87AC4D|0 |2 |0 |
+ROW |141842 |801 |28560 |0 |0 |008800|0 |2 |0 |
+ROW |141843 |801 |28584 |0 |1 |EE0000|0 |2 |0 |
+ROW |141844 |802 |28550 |5 |0 |00C800|0 |2 |0 |
+ROW |141845 |802 |28540 |0 |1 |F63100|0 |2 |0 |
+ROW |141846 |1438 |33001 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141847 |1438 |33002 |0 |1 |2774A4|0 |2 |0 |
+ROW |141848 |1438 |33000 |2 |2 |F63100|0 |2 |0 |
+ROW |141849 |1439 |33005 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141850 |1439 |33004 |0 |1 |2774A4|0 |2 |0 |
+ROW |141851 |1440 |32980 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141852 |1440 |32970 |0 |1 |2774A4|0 |2 |0 |
+ROW |141853 |1441 |32967 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141854 |1441 |32968 |0 |1 |2774A4|0 |2 |0 |
+ROW |141855 |1441 |32995 |2 |2 |F63100|0 |2 |0 |
+ROW |141856 |1442 |32997 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141857 |1442 |32984 |0 |1 |2774A4|0 |2 |0 |
+ROW |141858 |1443 |32973 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141859 |1443 |32971 |0 |1 |2774A4|0 |2 |0 |
+ROW |141860 |1503 |33518 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141861 |1504 |33501 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141862 |1447 |33113 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141863 |1447 |33112 |0 |1 |2774A4|0 |2 |0 |
+ROW |141864 |1447 |33099 |0 |2 |F63100|0 |2 |0 |
+ROW |141865 |1447 |33098 |0 |3 |A54F10|0 |2 |0 |
+ROW |141866 |1448 |33125 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141867 |1448 |33110 |0 |1 |2774A4|0 |2 |0 |
+ROW |141868 |1449 |33080 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141869 |1449 |33081 |2 |1 |2774A4|0 |2 |0 |
+ROW |141870 |1450 |33089 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141871 |1450 |33085 |2 |1 |2774A4|0 |2 |0 |
+ROW |141872 |1451 |33082 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141873 |1451 |33086 |2 |1 |2774A4|0 |2 |0 |
+ROW |141874 |1451 |33083 |0 |2 |F63100|0 |2 |0 |
+ROW |141875 |1451 |33084 |0 |3 |A54F10|0 |2 |0 |
+ROW |141876 |1451 |33087 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141877 |1451 |33088 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141878 |1452 |33093 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141879 |1452 |33092 |2 |1 |2774A4|0 |2 |0 |
+ROW |141880 |1453 |33077 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141881 |1453 |33063 |2 |1 |2774A4|0 |2 |0 |
+ROW |141882 |1454 |33094 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141883 |1454 |33059 |0 |1 |2774A4|0 |2 |0 |
+ROW |141884 |1455 |33066 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141885 |1455 |33071 |2 |1 |2774A4|0 |2 |0 |
+ROW |141886 |1455 |33067 |0 |2 |F63100|0 |2 |0 |
+ROW |141887 |1455 |33068 |0 |3 |A54F10|0 |2 |0 |
+ROW |141888 |1455 |33072 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141889 |1455 |33073 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141890 |1159 |30886 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141891 |1159 |30887 |0 |1 |2774A4|0 |2 |0 |
+ROW |141892 |1160 |30888 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141893 |1160 |30882 |0 |1 |2774A4|0 |2 |0 |
+ROW |141894 |1160 |30890 |0 |2 |F63100|0 |2 |0 |
+ROW |141895 |1160 |30881 |0 |3 |A54F10|0 |2 |0 |
+ROW |141896 |1160 |30889 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141897 |1161 |30847 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141898 |1161 |30872 |2 |1 |2774A4|0 |2 |0 |
+ROW |141899 |1162 |30853 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141900 |1162 |30849 |2 |1 |2774A4|0 |2 |0 |
+ROW |141901 |1162 |30852 |2 |2 |F63100|0 |2 |0 |
+ROW |141902 |1162 |30851 |2 |3 |A54F10|0 |2 |0 |
+ROW |141903 |1162 |30848 |2 |4 |FC6EA3|0 |2 |0 |
+ROW |141904 |1163 |30856 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141905 |1163 |30855 |0 |1 |2774A4|0 |2 |0 |
+ROW |141906 |1163 |30854 |2 |2 |F63100|1 |2 |0 |
+ROW |141907 |1164 |30859 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141908 |1164 |30870 |2 |1 |2774A4|0 |2 |0 |
+ROW |141909 |1165 |30860 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141910 |1165 |30871 |2 |1 |2774A4|0 |2 |0 |
+ROW |141911 |1166 |30868 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141912 |1166 |30869 |0 |1 |2774A4|0 |2 |0 |
+ROW |141913 |1166 |30867 |0 |2 |F63100|0 |2 |0 |
+ROW |141914 |1166 |30866 |0 |3 |A54F10|0 |2 |0 |
+ROW |141915 |1166 |30865 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141916 |1167 |30850 |5 |0 |1A7C11|0 |2 |0 |
+ROW |141917 |1167 |30863 |5 |1 |2774A4|0 |2 |0 |
+ROW |141918 |1167 |30861 |5 |2 |F63100|0 |2 |0 |
+ROW |141919 |1168 |30833 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141920 |1168 |30841 |2 |1 |2774A4|0 |2 |0 |
+ROW |141921 |1168 |30857 |2 |2 |F63100|0 |2 |0 |
+ROW |141922 |1169 |30834 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141923 |1169 |30831 |2 |1 |2774A4|0 |2 |0 |
+ROW |141924 |1170 |30846 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141925 |1576 |34320 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141926 |1576 |30845 |0 |1 |2774A4|0 |2 |0 |
+ROW |141927 |1576 |30842 |0 |2 |F63100|0 |2 |0 |
+ROW |141928 |1576 |30873 |2 |3 |A54F10|1 |2 |0 |
+ROW |141929 |2339 |43148 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141930 |2339 |43146 |0 |1 |2774A4|0 |2 |0 |
+ROW |141931 |2340 |43144 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141932 |2340 |43145 |0 |1 |2774A4|0 |2 |0 |
+ROW |141933 |2340 |43170 |0 |2 |F63100|0 |2 |0 |
+ROW |141934 |2341 |43142 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141935 |2341 |43156 |0 |1 |2774A4|0 |2 |0 |
+ROW |141936 |2341 |43168 |0 |2 |F63100|0 |2 |0 |
+ROW |141937 |2341 |43167 |0 |3 |A54F10|0 |2 |0 |
+ROW |141938 |2341 |43169 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141939 |2341 |43166 |0 |5 |6C59DC|0 |2 |0 |
+ROW |141940 |2341 |43165 |0 |6 |AC8C14|0 |2 |0 |
+ROW |141941 |2341 |43164 |0 |7 |611F27|0 |2 |0 |
+ROW |141942 |2342 |43163 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141943 |2342 |43155 |0 |1 |2774A4|0 |2 |0 |
+ROW |141944 |2342 |43162 |0 |2 |F63100|0 |2 |0 |
+ROW |141945 |2342 |43161 |0 |3 |A54F10|0 |2 |0 |
+ROW |141946 |2343 |43158 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141947 |2343 |43157 |0 |1 |2774A4|0 |2 |0 |
+ROW |141948 |2344 |43117 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141949 |2344 |43116 |0 |1 |2774A4|0 |2 |0 |
+ROW |141950 |2345 |43124 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141951 |2345 |43114 |0 |1 |2774A4|0 |2 |0 |
+ROW |141952 |2346 |43122 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141953 |2346 |43123 |0 |1 |2774A4|0 |2 |0 |
+ROW |141954 |2347 |43119 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141955 |2347 |43120 |0 |1 |2774A4|0 |2 |0 |
+ROW |141956 |2348 |43131 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141957 |2348 |43130 |0 |1 |2774A4|0 |2 |0 |
+ROW |141958 |2349 |43138 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141959 |2349 |43135 |0 |1 |2774A4|0 |2 |0 |
+ROW |141960 |2349 |43136 |0 |2 |F63100|0 |2 |0 |
+ROW |141961 |2349 |43133 |0 |3 |A54F10|0 |2 |0 |
+ROW |141962 |2349 |43134 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |141963 |2350 |43113 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141964 |2350 |43098 |0 |1 |2774A4|0 |2 |0 |
+ROW |141965 |2351 |43087 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141966 |2351 |43088 |0 |1 |2774A4|0 |2 |0 |
+ROW |141967 |2352 |43101 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141968 |2352 |43100 |0 |1 |2774A4|0 |2 |0 |
+ROW |141969 |2352 |43099 |0 |2 |F63100|0 |2 |0 |
+ROW |141970 |2352 |43093 |0 |3 |A54F10|0 |2 |0 |
+ROW |141971 |2353 |43104 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141972 |2353 |43103 |0 |1 |2774A4|0 |2 |0 |
+ROW |141973 |2353 |43106 |0 |2 |F63100|0 |2 |0 |
+ROW |141974 |2353 |43102 |0 |3 |A54F10|0 |2 |0 |
+ROW |141975 |2354 |43108 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141976 |2354 |43107 |0 |1 |2774A4|0 |2 |0 |
+ROW |141977 |1663 |35291 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141978 |1663 |35300 |0 |1 |2774A4|0 |2 |0 |
+ROW |141979 |1664 |35295 |2 |0 |1A7C11|0 |2 |0 |
+ROW |141980 |1664 |35296 |0 |1 |2774A4|0 |2 |0 |
+ROW |141981 |1665 |35301 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141982 |1665 |35306 |0 |1 |2774A4|0 |2 |0 |
+ROW |141983 |1665 |35304 |0 |2 |F63100|0 |2 |0 |
+ROW |141984 |1665 |35302 |0 |3 |A54F10|0 |2 |0 |
+ROW |141985 |1666 |35308 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141986 |1666 |35310 |0 |1 |2774A4|0 |2 |0 |
+ROW |141987 |1666 |35309 |0 |2 |F63100|0 |2 |0 |
+ROW |141988 |1667 |35322 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141989 |1667 |35320 |0 |1 |2774A4|0 |2 |0 |
+ROW |141990 |1668 |35329 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141991 |1668 |35330 |0 |1 |2774A4|0 |2 |0 |
+ROW |141992 |1669 |35332 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141993 |1669 |35334 |0 |1 |2774A4|0 |2 |0 |
+ROW |141994 |1670 |35335 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141995 |1670 |35333 |0 |1 |2774A4|0 |2 |0 |
+ROW |141996 |1671 |35338 |0 |0 |1A7C11|0 |2 |0 |
+ROW |141997 |1671 |35341 |0 |1 |2774A4|0 |2 |0 |
+ROW |141998 |1671 |35339 |0 |2 |F63100|0 |2 |0 |
+ROW |141999 |1671 |35340 |0 |3 |A54F10|0 |2 |0 |
+ROW |142000 |1672 |35347 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142001 |1672 |35346 |0 |1 |2774A4|0 |2 |0 |
+ROW |142002 |1672 |35345 |0 |2 |F63100|0 |2 |0 |
+ROW |142003 |1673 |35350 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142004 |1673 |35351 |0 |1 |2774A4|0 |2 |0 |
+ROW |142005 |1674 |35349 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142006 |1674 |35352 |0 |1 |2774A4|0 |2 |0 |
+ROW |142007 |1674 |35353 |0 |2 |F63100|0 |2 |0 |
+ROW |142008 |1675 |35355 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142009 |1675 |35356 |0 |1 |2774A4|0 |2 |0 |
+ROW |142010 |1505 |33553 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142011 |1505 |33562 |0 |1 |2774A4|0 |2 |0 |
+ROW |142012 |1506 |33557 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142013 |1506 |33558 |0 |1 |2774A4|0 |2 |0 |
+ROW |142014 |1507 |33563 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142015 |1507 |33568 |0 |1 |2774A4|0 |2 |0 |
+ROW |142016 |1507 |33566 |0 |2 |F63100|0 |2 |0 |
+ROW |142017 |1507 |33564 |0 |3 |A54F10|0 |2 |0 |
+ROW |142018 |1508 |33570 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142019 |1508 |33572 |0 |1 |2774A4|0 |2 |0 |
+ROW |142020 |1508 |33571 |0 |2 |F63100|0 |2 |0 |
+ROW |142021 |1509 |33584 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142022 |1509 |33582 |0 |1 |2774A4|0 |2 |0 |
+ROW |142023 |1510 |33591 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142024 |1510 |33592 |0 |1 |2774A4|0 |2 |0 |
+ROW |142025 |1511 |33594 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142026 |1511 |33596 |0 |1 |2774A4|0 |2 |0 |
+ROW |142027 |1512 |33597 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142028 |1512 |33595 |0 |1 |2774A4|0 |2 |0 |
+ROW |142029 |1513 |33600 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142030 |1513 |33603 |0 |1 |2774A4|0 |2 |0 |
+ROW |142031 |1513 |33601 |0 |2 |F63100|0 |2 |0 |
+ROW |142032 |1513 |33602 |0 |3 |A54F10|0 |2 |0 |
+ROW |142033 |1514 |33609 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142034 |1514 |33608 |0 |1 |2774A4|0 |2 |0 |
+ROW |142035 |1514 |33607 |0 |2 |F63100|0 |2 |0 |
+ROW |142036 |1515 |33612 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142037 |1515 |33613 |0 |1 |2774A4|0 |2 |0 |
+ROW |142038 |1516 |33611 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142039 |1516 |33614 |0 |1 |2774A4|0 |2 |0 |
+ROW |142040 |1516 |33615 |0 |2 |F63100|0 |2 |0 |
+ROW |142041 |1517 |33617 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142042 |1517 |33618 |0 |1 |2774A4|0 |2 |0 |
+ROW |142043 |1807 |36817 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142044 |1807 |36816 |0 |1 |2774A4|0 |2 |0 |
+ROW |142045 |1808 |36815 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142046 |1808 |36814 |0 |1 |2774A4|0 |2 |0 |
+ROW |142047 |1808 |36818 |0 |2 |F63100|0 |2 |0 |
+ROW |142048 |1808 |36819 |0 |3 |A54F10|0 |2 |0 |
+ROW |142049 |1809 |36805 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142050 |1809 |36804 |0 |1 |2774A4|0 |2 |0 |
+ROW |142051 |1527 |33819 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142052 |1527 |33839 |0 |1 |2774A4|0 |2 |0 |
+ROW |142053 |1528 |33820 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142054 |1528 |33816 |0 |1 |2774A4|0 |2 |0 |
+ROW |142055 |1529 |33826 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142056 |1529 |33831 |0 |1 |2774A4|0 |2 |0 |
+ROW |142057 |1529 |33829 |0 |2 |F63100|0 |2 |0 |
+ROW |142058 |1529 |33821 |0 |3 |A54F10|0 |2 |0 |
+ROW |142059 |1529 |33825 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142060 |1529 |33833 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142061 |1529 |33823 |2 |6 |AC8C14|0 |2 |0 |
+ROW |142062 |1530 |33828 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142063 |1530 |33832 |0 |1 |2774A4|0 |2 |0 |
+ROW |142064 |1530 |33830 |0 |2 |F63100|0 |2 |0 |
+ROW |142065 |1530 |33822 |0 |3 |A54F10|0 |2 |0 |
+ROW |142066 |1530 |33815 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142067 |1530 |33834 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142068 |1530 |33824 |2 |6 |AC8C14|0 |2 |0 |
+ROW |142069 |1531 |33840 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142070 |1531 |33845 |0 |1 |2774A4|0 |2 |0 |
+ROW |142071 |1532 |33844 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142072 |1532 |33847 |0 |1 |2774A4|0 |2 |0 |
+ROW |142073 |1532 |33843 |0 |2 |F63100|0 |2 |0 |
+ROW |142074 |1532 |33841 |0 |3 |A54F10|0 |2 |0 |
+ROW |142075 |1533 |33863 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142076 |1534 |33792 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142077 |1534 |33791 |0 |1 |2774A4|0 |2 |0 |
+ROW |142078 |1534 |33793 |0 |2 |F63100|0 |2 |0 |
+ROW |142079 |1535 |33802 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142080 |1535 |33770 |0 |1 |2774A4|0 |2 |0 |
+ROW |142081 |1536 |33800 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142082 |1536 |33799 |0 |1 |2774A4|0 |2 |0 |
+ROW |142083 |1536 |33801 |0 |2 |F63100|0 |2 |0 |
+ROW |142084 |1537 |33798 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142085 |1537 |33806 |0 |1 |2774A4|0 |2 |0 |
+ROW |142086 |1537 |33774 |0 |2 |F63100|0 |2 |0 |
+ROW |142087 |1538 |33769 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142088 |1538 |33787 |0 |1 |2774A4|0 |2 |0 |
+ROW |142089 |1538 |33789 |0 |2 |F63100|0 |2 |0 |
+ROW |142090 |1538 |33790 |0 |3 |A54F10|0 |2 |0 |
+ROW |142091 |1539 |33785 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142092 |1539 |33772 |0 |1 |2774A4|0 |2 |0 |
+ROW |142093 |1539 |33773 |0 |2 |F63100|0 |2 |0 |
+ROW |142094 |1539 |33771 |0 |3 |A54F10|0 |2 |0 |
+ROW |142095 |1540 |33776 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142096 |1540 |33775 |0 |1 |2774A4|0 |2 |0 |
+ROW |142097 |1541 |33782 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142098 |1541 |33781 |0 |1 |2774A4|0 |2 |0 |
+ROW |142099 |1541 |33780 |0 |2 |F63100|0 |2 |0 |
+ROW |142100 |1541 |33783 |0 |3 |A54F10|0 |2 |0 |
+ROW |142101 |1541 |33777 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142102 |1541 |33778 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142103 |1542 |33804 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142104 |1542 |33803 |2 |1 |2774A4|0 |2 |0 |
+ROW |142105 |1542 |33805 |2 |2 |F63100|0 |2 |0 |
+ROW |142106 |1543 |33937 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142107 |1543 |33940 |0 |1 |2774A4|0 |2 |0 |
+ROW |142108 |1543 |33936 |0 |2 |F63100|0 |2 |0 |
+ROW |142109 |1543 |33934 |0 |3 |A54F10|0 |2 |0 |
+ROW |142110 |1544 |33915 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142111 |1544 |33911 |0 |1 |2774A4|0 |2 |0 |
+ROW |142112 |1544 |33912 |0 |2 |F63100|0 |2 |0 |
+ROW |142113 |1544 |33910 |0 |3 |A54F10|0 |2 |0 |
+ROW |142114 |1544 |33914 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142115 |1545 |33918 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142116 |1545 |33905 |0 |1 |2774A4|0 |2 |0 |
+ROW |142117 |1545 |33917 |0 |2 |F63100|0 |2 |0 |
+ROW |142118 |1545 |33916 |2 |3 |A54F10|1 |2 |0 |
+ROW |142119 |1546 |33908 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142120 |1546 |33909 |0 |1 |2774A4|0 |2 |0 |
+ROW |142121 |1546 |33902 |0 |2 |F63100|0 |2 |0 |
+ROW |142122 |1547 |33893 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142123 |1547 |33892 |0 |1 |2774A4|0 |2 |0 |
+ROW |142124 |1548 |33899 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142125 |1548 |33898 |2 |1 |2774A4|0 |2 |0 |
+ROW |142126 |1548 |33895 |2 |2 |F63100|0 |2 |0 |
+ROW |142127 |1548 |33900 |2 |3 |A54F10|0 |2 |0 |
+ROW |142128 |1548 |33896 |2 |4 |FC6EA3|0 |2 |0 |
+ROW |142129 |1548 |33891 |2 |5 |6C59DC|0 |2 |0 |
+ROW |142130 |1190 |31140 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142131 |1190 |31141 |0 |1 |2774A4|0 |2 |0 |
+ROW |142132 |1261 |31145 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142133 |1261 |31146 |0 |1 |2774A4|0 |2 |0 |
+ROW |142134 |1261 |31147 |0 |2 |F63100|0 |2 |0 |
+ROW |142135 |1191 |31138 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142136 |1192 |31157 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142137 |1192 |31158 |0 |1 |2774A4|0 |2 |0 |
+ROW |142138 |1193 |31092 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142139 |1193 |31108 |0 |1 |2774A4|0 |2 |0 |
+ROW |142140 |1193 |31110 |0 |2 |F63100|0 |2 |0 |
+ROW |142141 |1193 |31067 |0 |3 |A54F10|0 |2 |0 |
+ROW |142142 |1193 |31086 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142143 |1193 |31087 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142144 |1194 |31120 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142145 |1194 |31105 |0 |1 |2774A4|0 |2 |0 |
+ROW |142146 |1194 |31071 |0 |2 |F63100|0 |2 |0 |
+ROW |142147 |1194 |31081 |0 |3 |A54F10|0 |2 |0 |
+ROW |142148 |1195 |31098 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142149 |1195 |31099 |0 |1 |2774A4|0 |2 |0 |
+ROW |142150 |1196 |31072 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142151 |1196 |31072 |0 |1 |2774A4|0 |2 |0 |
+ROW |142152 |1197 |31103 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142153 |1197 |31074 |0 |1 |2774A4|0 |2 |0 |
+ROW |142154 |1198 |31104 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142155 |1198 |31063 |0 |1 |2774A4|0 |2 |0 |
+ROW |142156 |1198 |31111 |0 |2 |F63100|0 |2 |0 |
+ROW |142157 |1198 |31112 |0 |3 |A54F10|0 |2 |0 |
+ROW |142158 |1198 |31084 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142159 |1199 |31115 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142160 |1199 |31116 |0 |1 |2774A4|0 |2 |0 |
+ROW |142161 |1199 |31062 |0 |2 |F63100|0 |2 |0 |
+ROW |142162 |1199 |31118 |0 |3 |A54F10|0 |2 |0 |
+ROW |142163 |1199 |31056 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142164 |1200 |31107 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142165 |1200 |31090 |0 |1 |2774A4|0 |2 |0 |
+ROW |142166 |1201 |31097 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142167 |1201 |31096 |0 |1 |2774A4|0 |2 |0 |
+ROW |142168 |1202 |31089 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142169 |1202 |31061 |0 |1 |2774A4|0 |2 |0 |
+ROW |142170 |1203 |31064 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142171 |1204 |31065 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142172 |1204 |31066 |0 |1 |2774A4|0 |2 |0 |
+ROW |142173 |1204 |31068 |0 |2 |F63100|0 |2 |0 |
+ROW |142174 |1204 |31070 |0 |3 |A54F10|0 |2 |0 |
+ROW |142175 |1204 |31101 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142176 |1204 |31106 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142177 |1204 |31114 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142178 |1205 |31069 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142179 |1206 |31076 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142180 |1206 |31078 |0 |1 |2774A4|0 |2 |0 |
+ROW |142181 |1206 |31109 |0 |2 |F63100|0 |2 |0 |
+ROW |142182 |1206 |31075 |0 |3 |A54F10|0 |2 |0 |
+ROW |142183 |1207 |31080 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142184 |1207 |31095 |0 |1 |2774A4|0 |2 |0 |
+ROW |142185 |1208 |31113 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142186 |1208 |31118 |0 |1 |2774A4|0 |2 |0 |
+ROW |142187 |1209 |31058 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142188 |1209 |31077 |0 |1 |2774A4|0 |2 |0 |
+ROW |142189 |1209 |31056 |0 |2 |F63100|0 |2 |0 |
+ROW |142190 |1209 |31117 |0 |3 |A54F10|0 |2 |0 |
+ROW |142191 |1109 |30453 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142192 |1109 |30455 |5 |1 |2774A4|0 |2 |0 |
+ROW |142193 |1110 |30471 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142194 |1110 |30470 |0 |1 |2774A4|0 |2 |0 |
+ROW |142195 |1110 |30466 |0 |2 |F63100|0 |2 |0 |
+ROW |142196 |1110 |30441 |0 |3 |A54F10|0 |2 |0 |
+ROW |142197 |1111 |30463 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142198 |1111 |30452 |0 |1 |2774A4|0 |2 |0 |
+ROW |142199 |1111 |30451 |0 |2 |F63100|0 |2 |0 |
+ROW |142200 |1111 |30437 |0 |3 |A54F10|0 |2 |0 |
+ROW |142201 |1112 |30456 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142202 |1112 |30457 |0 |1 |2774A4|0 |2 |0 |
+ROW |142203 |1112 |30458 |0 |2 |F63100|0 |2 |0 |
+ROW |142204 |1112 |30459 |0 |3 |A54F10|0 |2 |0 |
+ROW |142205 |1113 |30442 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142206 |1113 |30444 |0 |1 |2774A4|0 |2 |0 |
+ROW |142207 |1113 |30445 |0 |2 |F63100|0 |2 |0 |
+ROW |142208 |1114 |30446 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142209 |1114 |30447 |0 |1 |2774A4|0 |2 |0 |
+ROW |142210 |1114 |31168 |0 |2 |F63100|0 |2 |0 |
+ROW |142211 |1114 |30449 |0 |3 |A54F10|0 |2 |0 |
+ROW |142212 |1136 |30659 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142213 |1136 |30661 |5 |1 |2774A4|0 |2 |0 |
+ROW |142214 |1137 |30677 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142215 |1137 |30676 |0 |1 |2774A4|0 |2 |0 |
+ROW |142216 |1137 |30672 |0 |2 |F63100|0 |2 |0 |
+ROW |142217 |1137 |30647 |0 |3 |A54F10|0 |2 |0 |
+ROW |142218 |1138 |30669 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142219 |1138 |30658 |0 |1 |2774A4|0 |2 |0 |
+ROW |142220 |1138 |30657 |0 |2 |F63100|0 |2 |0 |
+ROW |142221 |1138 |30643 |0 |3 |A54F10|0 |2 |0 |
+ROW |142222 |1139 |30662 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142223 |1139 |30663 |0 |1 |2774A4|0 |2 |0 |
+ROW |142224 |1139 |30664 |0 |2 |F63100|0 |2 |0 |
+ROW |142225 |1139 |30665 |0 |3 |A54F10|0 |2 |0 |
+ROW |142226 |1140 |30648 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142227 |1140 |30650 |0 |1 |2774A4|0 |2 |0 |
+ROW |142228 |1140 |30651 |0 |2 |F63100|0 |2 |0 |
+ROW |142229 |1141 |30652 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142230 |1141 |30653 |0 |1 |2774A4|0 |2 |0 |
+ROW |142231 |1141 |31172 |0 |2 |F63100|0 |2 |0 |
+ROW |142232 |1141 |30655 |0 |3 |A54F10|0 |2 |0 |
+ROW |142233 |1115 |30506 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142234 |1115 |30507 |5 |1 |2774A4|0 |2 |0 |
+ROW |142235 |1116 |30504 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142236 |1116 |30505 |0 |1 |2774A4|0 |2 |0 |
+ROW |142237 |1116 |30518 |0 |2 |F63100|0 |2 |0 |
+ROW |142238 |1116 |30492 |0 |3 |A54F10|0 |2 |0 |
+ROW |142239 |1117 |30493 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142240 |1117 |30500 |0 |1 |2774A4|0 |2 |0 |
+ROW |142241 |1117 |30486 |0 |2 |F63100|0 |2 |0 |
+ROW |142242 |1117 |30488 |0 |3 |A54F10|0 |2 |0 |
+ROW |142243 |1118 |30508 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142244 |1118 |30509 |0 |1 |2774A4|0 |2 |0 |
+ROW |142245 |1118 |30503 |0 |2 |F63100|0 |2 |0 |
+ROW |142246 |1118 |30510 |0 |3 |A54F10|0 |2 |0 |
+ROW |142247 |1119 |30491 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142248 |1119 |30494 |0 |1 |2774A4|0 |2 |0 |
+ROW |142249 |1119 |30495 |0 |2 |F63100|0 |2 |0 |
+ROW |142250 |1120 |30496 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142251 |1120 |30497 |0 |1 |2774A4|0 |2 |0 |
+ROW |142252 |1120 |31176 |0 |2 |F63100|0 |2 |0 |
+ROW |142253 |1120 |30499 |0 |3 |A54F10|0 |2 |0 |
+ROW |142254 |1266 |31773 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142255 |1266 |31774 |0 |1 |2774A4|0 |2 |0 |
+ROW |142256 |1267 |31777 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142257 |1267 |31779 |0 |1 |2774A4|0 |2 |0 |
+ROW |142258 |1267 |33168 |0 |2 |F63100|0 |2 |0 |
+ROW |142259 |1268 |31685 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142260 |1268 |31738 |0 |1 |2774A4|0 |2 |0 |
+ROW |142261 |1269 |31723 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142262 |1269 |31757 |0 |1 |2774A4|0 |2 |0 |
+ROW |142263 |1269 |31721 |0 |2 |F63100|0 |2 |0 |
+ROW |142264 |1270 |31728 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142265 |1270 |31759 |0 |1 |2774A4|0 |2 |0 |
+ROW |142266 |1271 |31745 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142267 |1271 |31727 |0 |1 |2774A4|0 |2 |0 |
+ROW |142268 |1272 |31687 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142269 |1272 |31710 |0 |1 |2774A4|0 |2 |0 |
+ROW |142270 |1273 |31705 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142271 |1273 |31703 |0 |1 |2774A4|0 |2 |0 |
+ROW |142272 |1273 |31706 |0 |2 |F63100|0 |2 |0 |
+ROW |142273 |1273 |31701 |0 |3 |A54F10|0 |2 |0 |
+ROW |142274 |1273 |31708 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142275 |1274 |31715 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142276 |1274 |31726 |0 |1 |2774A4|0 |2 |0 |
+ROW |142277 |1274 |31717 |0 |2 |F63100|0 |2 |0 |
+ROW |142278 |1274 |31716 |0 |3 |A54F10|0 |2 |0 |
+ROW |142279 |1274 |31714 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142280 |1274 |31713 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142281 |1210 |31261 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142282 |1210 |31262 |0 |1 |2774A4|0 |2 |0 |
+ROW |142283 |1211 |31269 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142284 |1211 |31271 |0 |1 |2774A4|0 |2 |0 |
+ROW |142285 |1211 |33170 |0 |2 |F63100|0 |2 |0 |
+ROW |142286 |1212 |31233 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142287 |1212 |31234 |0 |1 |2774A4|0 |2 |0 |
+ROW |142288 |1213 |31216 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142289 |1213 |31237 |0 |1 |2774A4|0 |2 |0 |
+ROW |142290 |1213 |31214 |0 |2 |F63100|0 |2 |0 |
+ROW |142291 |1214 |31191 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142292 |1214 |31221 |0 |1 |2774A4|0 |2 |0 |
+ROW |142293 |1215 |31206 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142294 |1215 |31220 |0 |1 |2774A4|0 |2 |0 |
+ROW |142295 |1216 |31192 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142296 |1216 |31193 |0 |1 |2774A4|0 |2 |0 |
+ROW |142297 |1217 |31200 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142298 |1217 |31197 |0 |1 |2774A4|0 |2 |0 |
+ROW |142299 |1217 |31201 |0 |2 |F63100|0 |2 |0 |
+ROW |142300 |1217 |31198 |0 |3 |A54F10|0 |2 |0 |
+ROW |142301 |1217 |31202 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142302 |1218 |31207 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142303 |1218 |31208 |0 |1 |2774A4|0 |2 |0 |
+ROW |142304 |1218 |31210 |0 |2 |F63100|0 |2 |0 |
+ROW |142305 |1218 |31209 |0 |3 |A54F10|0 |2 |0 |
+ROW |142306 |1218 |31219 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142307 |1218 |31205 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142308 |1380 |32423 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142309 |1380 |32421 |0 |1 |2774A4|0 |2 |0 |
+ROW |142310 |1381 |32405 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142311 |1382 |32426 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142312 |1382 |32408 |0 |1 |2774A4|0 |2 |0 |
+ROW |142313 |1382 |32422 |0 |2 |F63100|0 |2 |0 |
+ROW |142314 |1382 |32425 |0 |3 |A54F10|0 |2 |0 |
+ROW |142315 |1383 |32409 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142316 |1384 |32419 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142317 |1384 |32416 |0 |1 |2774A4|1 |2 |0 |
+ROW |142318 |1384 |32413 |0 |2 |F63100|1 |2 |0 |
+ROW |142319 |1384 |32418 |5 |3 |A54F10|0 |2 |0 |
+ROW |142320 |1384 |32415 |5 |4 |FC6EA3|0 |2 |0 |
+ROW |142321 |1384 |32412 |5 |5 |6C59DC|0 |2 |0 |
+ROW |142322 |1385 |32420 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142323 |1385 |32417 |0 |1 |2774A4|0 |2 |0 |
+ROW |142324 |1385 |32414 |0 |2 |F63100|0 |2 |0 |
+ROW |142325 |1386 |32433 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142326 |1386 |32432 |0 |1 |2774A4|1 |2 |0 |
+ROW |142327 |1387 |32431 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142328 |1387 |32430 |0 |1 |2774A4|0 |2 |0 |
+ROW |142329 |1387 |32429 |0 |2 |F63100|0 |2 |0 |
+ROW |142330 |1387 |32428 |0 |3 |A54F10|0 |2 |0 |
+ROW |142331 |1387 |32427 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142332 |1388 |32386 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142333 |1388 |32391 |0 |1 |2774A4|1 |2 |0 |
+ROW |142334 |1388 |32387 |0 |2 |F63100|1 |2 |0 |
+ROW |142335 |1388 |32390 |0 |3 |A54F10|1 |2 |0 |
+ROW |142336 |1388 |32395 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142337 |1388 |32389 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142338 |1389 |32393 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142339 |1389 |32392 |0 |1 |2774A4|0 |2 |0 |
+ROW |142340 |1389 |32394 |0 |2 |F63100|1 |2 |0 |
+ROW |142341 |1389 |32388 |0 |3 |A54F10|1 |2 |0 |
+ROW |142342 |1390 |32401 |5 |0 |1A7C11|1 |2 |0 |
+ROW |142343 |1390 |32402 |0 |1 |2774A4|0 |2 |0 |
+ROW |142344 |1390 |32397 |0 |2 |F63100|1 |2 |0 |
+ROW |142345 |1390 |32398 |0 |3 |A54F10|1 |2 |0 |
+ROW |142346 |1390 |32399 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142347 |1390 |32400 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142348 |1390 |32396 |0 |6 |AC8C14|1 |2 |0 |
+ROW |142349 |1391 |32367 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142350 |1391 |32366 |0 |1 |2774A4|1 |2 |0 |
+ROW |142351 |1392 |32370 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142352 |1393 |32382 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142353 |1393 |32381 |0 |1 |2774A4|1 |2 |0 |
+ROW |142354 |1393 |32383 |0 |2 |F63100|1 |2 |0 |
+ROW |142355 |1393 |32384 |0 |3 |A54F10|1 |2 |0 |
+ROW |142356 |1394 |32377 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142357 |1394 |32374 |0 |1 |2774A4|1 |2 |0 |
+ROW |142358 |1395 |32403 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142359 |1395 |32385 |0 |1 |2774A4|1 |2 |0 |
+ROW |142360 |1219 |31363 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142361 |1219 |31346 |0 |1 |2774A4|0 |2 |0 |
+ROW |142362 |1219 |31345 |0 |2 |F63100|0 |2 |0 |
+ROW |142363 |1219 |31344 |0 |3 |A54F10|0 |2 |0 |
+ROW |142364 |1219 |31343 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142365 |1219 |31342 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142366 |1219 |31340 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142367 |1219 |31339 |0 |7 |611F27|0 |2 |0 |
+ROW |142368 |1219 |31341 |0 |8 |F230E0|0 |2 |0 |
+ROW |142369 |1219 |31341 |0 |9 |FFAD40|0 |2 |0 |
+ROW |142370 |1220 |31337 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142371 |1221 |31360 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142372 |1221 |31359 |0 |1 |2774A4|0 |2 |0 |
+ROW |142373 |1221 |31357 |0 |2 |F63100|0 |2 |0 |
+ROW |142374 |1221 |31356 |0 |3 |A54F10|0 |2 |0 |
+ROW |142375 |1221 |31354 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142376 |1221 |31353 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142377 |1221 |31352 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142378 |1221 |31350 |0 |7 |611F27|0 |2 |0 |
+ROW |142379 |1221 |31351 |0 |8 |F230E0|0 |2 |0 |
+ROW |142380 |1221 |31338 |0 |9 |FFAD40|0 |2 |0 |
+ROW |142381 |1221 |31349 |0 |10 |40CDFF|0 |2 |0 |
+ROW |142382 |1221 |31348 |0 |11 |40FFA0|0 |2 |0 |
+ROW |142383 |1221 |31347 |0 |12 |AE4500|0 |2 |0 |
+ROW |142384 |2295 |42744 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142385 |2295 |42748 |0 |1 |2774A4|1 |2 |0 |
+ROW |142386 |2295 |42751 |0 |2 |F63100|1 |2 |0 |
+ROW |142387 |2295 |42746 |5 |3 |A54F10|0 |2 |0 |
+ROW |142388 |2295 |42749 |5 |4 |FC6EA3|0 |2 |0 |
+ROW |142389 |2295 |42752 |5 |5 |6C59DC|0 |2 |0 |
+ROW |142390 |1222 |31336 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142391 |2296 |42745 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142392 |2296 |42747 |0 |1 |2774A4|0 |2 |0 |
+ROW |142393 |2296 |42750 |0 |2 |F63100|0 |2 |0 |
+ROW |142394 |1456 |33178 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142395 |1456 |33179 |0 |1 |2774A4|0 |2 |0 |
+ROW |142396 |1456 |33180 |0 |2 |F63100|0 |2 |0 |
+ROW |142397 |1087 |30346 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142398 |1087 |30345 |0 |1 |2774A4|0 |2 |0 |
+ROW |142399 |1088 |30350 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142400 |1088 |30349 |5 |1 |2774A4|0 |2 |0 |
+ROW |142401 |1089 |30396 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142402 |1090 |30398 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142403 |1091 |30322 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142404 |1091 |30277 |5 |1 |2774A4|0 |2 |0 |
+ROW |142405 |1092 |30284 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142406 |1093 |30313 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142407 |1093 |30314 |0 |1 |2774A4|0 |2 |0 |
+ROW |142408 |1093 |30315 |5 |2 |F63100|0 |2 |0 |
+ROW |142409 |1093 |30316 |0 |3 |A54F10|0 |2 |0 |
+ROW |142410 |1094 |30279 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142411 |1094 |30280 |2 |1 |2774A4|0 |2 |0 |
+ROW |142412 |1095 |30290 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142413 |1095 |30293 |0 |1 |2774A4|0 |2 |0 |
+ROW |142414 |1096 |30318 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142415 |1096 |30308 |2 |1 |2774A4|0 |2 |0 |
+ROW |142416 |1096 |30320 |2 |2 |F63100|0 |2 |0 |
+ROW |142417 |1097 |30317 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142418 |1098 |30289 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142419 |1098 |30291 |5 |1 |2774A4|0 |2 |0 |
+ROW |142420 |1099 |30334 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142421 |1099 |30325 |2 |1 |2774A4|0 |2 |0 |
+ROW |142422 |1100 |30306 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142423 |1101 |30274 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142424 |1102 |30281 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142425 |1577 |34351 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142426 |1577 |34350 |0 |1 |2774A4|0 |2 |0 |
+ROW |142427 |1578 |34387 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142428 |1578 |34388 |2 |1 |2774A4|0 |2 |0 |
+ROW |142429 |1579 |34393 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142430 |1579 |34386 |0 |1 |2774A4|0 |2 |0 |
+ROW |142431 |1580 |34370 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142432 |1580 |34384 |0 |1 |2774A4|0 |2 |0 |
+ROW |142433 |1580 |34383 |0 |2 |F63100|0 |2 |0 |
+ROW |142434 |1581 |34438 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142435 |1581 |34413 |0 |1 |2774A4|0 |2 |0 |
+ROW |142436 |1581 |34427 |0 |2 |F63100|0 |2 |0 |
+ROW |142437 |1582 |34420 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142438 |1582 |34419 |0 |1 |2774A4|0 |2 |0 |
+ROW |142439 |1582 |34418 |0 |2 |F63100|0 |2 |0 |
+ROW |142440 |675 |27294 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142441 |1035 |30094 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142442 |1038 |30101 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142443 |786 |28246 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142444 |687 |27417 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142445 |691 |27376 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142446 |1060 |30159 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142447 |2114 |40461 |0 |0 |969696|0 |9 |2 |
+ROW |142448 |2114 |40462 |0 |1 |C80000|0 |9 |0 |
+ROW |142449 |2115 |40465 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142450 |1065 |30161 |0 |0 |969696|0 |9 |2 |
+ROW |142451 |1065 |30162 |0 |1 |C80000|0 |9 |0 |
+ROW |142452 |2120 |40451 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142453 |1070 |30142 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142454 |741 |27084 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142455 |741 |27085 |2 |1 |2774A4|0 |2 |0 |
+ROW |142456 |741 |27083 |0 |2 |F63100|1 |2 |0 |
+ROW |142457 |741 |27086 |0 |3 |A54F10|1 |2 |0 |
+ROW |142458 |741 |27082 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142459 |741 |27079 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142460 |745 |27104 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142461 |745 |27105 |2 |1 |2774A4|0 |2 |0 |
+ROW |142462 |745 |27103 |0 |2 |F63100|1 |2 |0 |
+ROW |142463 |745 |27106 |0 |3 |A54F10|1 |2 |0 |
+ROW |142464 |745 |27102 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142465 |745 |27099 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142466 |766 |27124 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142467 |766 |27125 |2 |1 |2774A4|0 |2 |0 |
+ROW |142468 |766 |27123 |0 |2 |F63100|1 |2 |0 |
+ROW |142469 |766 |27126 |0 |3 |A54F10|1 |2 |0 |
+ROW |142470 |766 |27122 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142471 |766 |27119 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142472 |1223 |31370 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142473 |1223 |31371 |5 |1 |2774A4|0 |2 |0 |
+ROW |142474 |1226 |31380 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142475 |1226 |31383 |5 |1 |2774A4|0 |2 |0 |
+ROW |142476 |1229 |31379 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142477 |1229 |31382 |5 |1 |2774A4|0 |2 |0 |
+ROW |142478 |887 |29211 |0 |0 |969696|0 |9 |2 |
+ROW |142479 |887 |29210 |0 |1 |C80000|0 |9 |0 |
+ROW |142480 |899 |29216 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142481 |899 |29217 |2 |1 |2774A4|0 |2 |0 |
+ROW |142482 |899 |29218 |0 |2 |F63100|1 |2 |0 |
+ROW |142483 |899 |29219 |0 |3 |A54F10|1 |2 |0 |
+ROW |142484 |899 |29220 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142485 |899 |29221 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142486 |911 |29089 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142487 |911 |29102 |0 |1 |2774A4|0 |2 |0 |
+ROW |142488 |908 |29098 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142489 |908 |29097 |0 |1 |2774A4|0 |2 |0 |
+ROW |142490 |908 |29095 |0 |2 |F63100|0 |2 |0 |
+ROW |142491 |908 |29088 |0 |3 |A54F10|0 |2 |0 |
+ROW |142492 |908 |29094 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142493 |908 |29093 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142494 |908 |29092 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142495 |908 |29091 |0 |7 |611F27|0 |2 |0 |
+ROW |142496 |908 |29090 |0 |8 |F230E0|0 |2 |0 |
+ROW |142497 |905 |29198 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142498 |917 |29104 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142499 |917 |29105 |5 |1 |2774A4|0 |2 |0 |
+ROW |142500 |914 |31364 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142501 |923 |29118 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142502 |923 |29119 |0 |1 |2774A4|0 |2 |0 |
+ROW |142503 |923 |29117 |0 |2 |F63100|0 |2 |0 |
+ROW |142504 |920 |29107 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142505 |920 |29106 |0 |1 |2774A4|0 |2 |0 |
+ROW |142506 |902 |29096 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142507 |902 |29101 |0 |1 |2774A4|0 |2 |0 |
+ROW |142508 |902 |29100 |0 |2 |F63100|0 |2 |0 |
+ROW |142509 |902 |29087 |0 |3 |A54F10|1 |2 |0 |
+ROW |142510 |1279 |31902 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142511 |1279 |31903 |5 |1 |2774A4|0 |2 |0 |
+ROW |142512 |1281 |31933 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142513 |1281 |31936 |5 |1 |2774A4|0 |2 |0 |
+ROW |142514 |1283 |31932 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142515 |1283 |31935 |5 |1 |2774A4|0 |2 |0 |
+ROW |142516 |1285 |31907 |0 |0 |969696|0 |9 |2 |
+ROW |142517 |1285 |31908 |0 |1 |C80000|0 |9 |0 |
+ROW |142518 |1287 |31911 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142519 |1287 |31914 |2 |1 |2774A4|0 |2 |0 |
+ROW |142520 |1287 |31913 |0 |2 |F63100|1 |2 |0 |
+ROW |142521 |1287 |31910 |0 |3 |A54F10|1 |2 |0 |
+ROW |142522 |1287 |31912 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142523 |1287 |31909 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142524 |1289 |31831 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142525 |1289 |31820 |0 |1 |2774A4|0 |2 |0 |
+ROW |142526 |1291 |31822 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142527 |1291 |31835 |0 |1 |2774A4|0 |2 |0 |
+ROW |142528 |1291 |31825 |0 |2 |F63100|0 |2 |0 |
+ROW |142529 |1291 |31826 |0 |3 |A54F10|0 |2 |0 |
+ROW |142530 |1291 |31823 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142531 |1291 |31827 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142532 |1291 |31824 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142533 |1291 |31828 |0 |7 |611F27|0 |2 |0 |
+ROW |142534 |1291 |31830 |0 |8 |F230E0|0 |2 |0 |
+ROW |142535 |1293 |31892 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142536 |1295 |31855 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142537 |1295 |31853 |5 |1 |2774A4|0 |2 |0 |
+ROW |142538 |1297 |31893 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142539 |1299 |31838 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142540 |1299 |31839 |0 |1 |2774A4|0 |2 |0 |
+ROW |142541 |1299 |31837 |0 |2 |F63100|0 |2 |0 |
+ROW |142542 |1301 |31850 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142543 |1301 |31852 |0 |1 |2774A4|0 |2 |0 |
+ROW |142544 |1303 |31829 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142545 |1303 |31833 |0 |1 |2774A4|0 |2 |0 |
+ROW |142546 |1303 |31834 |0 |2 |F63100|0 |2 |0 |
+ROW |142547 |1303 |31832 |0 |3 |A54F10|1 |2 |0 |
+ROW |142548 |866 |29014 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142549 |866 |29015 |5 |1 |2774A4|0 |2 |0 |
+ROW |142550 |868 |29018 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142551 |868 |29019 |0 |1 |2774A4|0 |2 |0 |
+ROW |142552 |868 |29022 |0 |2 |F63100|0 |2 |0 |
+ROW |142553 |868 |29023 |0 |3 |A54F10|0 |2 |0 |
+ROW |142554 |868 |29020 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142555 |868 |29024 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142556 |868 |29021 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142557 |868 |29025 |0 |7 |611F27|0 |2 |0 |
+ROW |142558 |868 |29026 |0 |8 |F230E0|0 |2 |0 |
+ROW |142559 |870 |29048 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142560 |872 |29028 |0 |0 |969696|0 |9 |2 |
+ROW |142561 |872 |29027 |0 |1 |C80000|0 |9 |0 |
+ROW |142562 |882 |28992 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142563 |882 |28991 |0 |1 |2774A4|0 |2 |0 |
+ROW |142564 |876 |28982 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142565 |876 |28983 |5 |1 |2774A4|0 |2 |0 |
+ROW |142566 |874 |28978 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142567 |878 |28985 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142568 |878 |28984 |0 |1 |2774A4|0 |2 |0 |
+ROW |142569 |880 |28987 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142570 |880 |28988 |0 |1 |2774A4|0 |2 |0 |
+ROW |142571 |880 |28989 |0 |2 |F63100|0 |2 |0 |
+ROW |142572 |880 |28990 |0 |3 |A54F10|1 |2 |0 |
+ROW |142573 |964 |29513 |0 |0 |969696|0 |9 |2 |
+ROW |142574 |964 |29512 |0 |1 |C80000|0 |9 |0 |
+ROW |142575 |1238 |31435 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142576 |1238 |31438 |2 |1 |2774A4|0 |2 |0 |
+ROW |142577 |1238 |31437 |0 |2 |F63100|1 |2 |0 |
+ROW |142578 |1238 |31434 |0 |3 |A54F10|1 |2 |0 |
+ROW |142579 |1238 |31436 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142580 |1238 |31433 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142581 |1488 |33321 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142582 |1488 |33324 |0 |1 |2774A4|0 |2 |0 |
+ROW |142583 |1490 |33322 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142584 |1490 |33323 |5 |1 |2774A4|0 |2 |0 |
+ROW |142585 |1240 |31441 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142586 |1240 |31442 |5 |1 |2774A4|0 |2 |0 |
+ROW |142587 |1242 |31440 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142588 |1242 |31439 |5 |1 |2774A4|0 |2 |0 |
+ROW |142589 |974 |29456 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142590 |974 |29455 |0 |1 |2774A4|0 |2 |0 |
+ROW |142591 |976 |29458 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142592 |976 |29457 |0 |1 |2774A4|0 |2 |0 |
+ROW |142593 |972 |29454 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142594 |978 |29462 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142595 |980 |31421 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142596 |980 |29466 |0 |1 |2774A4|0 |2 |0 |
+ROW |142597 |1305 |32013 |0 |0 |969696|0 |9 |2 |
+ROW |142598 |1305 |32014 |0 |1 |C80000|0 |9 |0 |
+ROW |142599 |1307 |32017 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142600 |1307 |32020 |2 |1 |2774A4|0 |2 |0 |
+ROW |142601 |1307 |32019 |0 |2 |F63100|1 |2 |0 |
+ROW |142602 |1307 |32016 |0 |3 |A54F10|1 |2 |0 |
+ROW |142603 |1307 |32018 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142604 |1307 |32015 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142605 |1492 |33329 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142606 |1492 |33332 |0 |1 |2774A4|0 |2 |0 |
+ROW |142607 |1494 |33330 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142608 |1494 |33331 |5 |1 |2774A4|0 |2 |0 |
+ROW |142609 |1309 |32023 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142610 |1309 |32024 |5 |1 |2774A4|0 |2 |0 |
+ROW |142611 |1311 |32022 |0 |0 |1A7C11|1 |2 |0 |
+ROW |142612 |1311 |32021 |5 |1 |2774A4|0 |2 |0 |
+ROW |142613 |1313 |31952 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142614 |1313 |31949 |0 |1 |2774A4|0 |2 |0 |
+ROW |142615 |1315 |31951 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142616 |1315 |31950 |0 |1 |2774A4|0 |2 |0 |
+ROW |142617 |1317 |31954 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142618 |1319 |31973 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142619 |1321 |31969 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142620 |1321 |31970 |0 |1 |2774A4|0 |2 |0 |
+ROW |142621 |2123 |40493 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142622 |2123 |40496 |2 |1 |2774A4|0 |2 |0 |
+ROW |142623 |2123 |40495 |0 |2 |F63100|1 |2 |0 |
+ROW |142624 |2123 |40492 |0 |3 |A54F10|1 |2 |0 |
+ROW |142625 |2123 |40494 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142626 |2123 |40491 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142627 |668 |27208 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142628 |1032 |30088 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142629 |1032 |30087 |5 |1 |2774A4|0 |2 |0 |
+ROW |142630 |1033 |30089 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142631 |2124 |40519 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142632 |2124 |40522 |2 |1 |2774A4|0 |2 |0 |
+ROW |142633 |2124 |40521 |0 |2 |F63100|1 |2 |0 |
+ROW |142634 |2124 |40518 |0 |3 |A54F10|1 |2 |0 |
+ROW |142635 |2124 |40520 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142636 |2124 |40517 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142637 |2125 |40528 |0 |0 |969696|0 |9 |2 |
+ROW |142638 |2125 |40529 |0 |1 |C80000|0 |9 |0 |
+ROW |142639 |2126 |40532 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142640 |2127 |40506 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142641 |2128 |40547 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142642 |2128 |40550 |2 |1 |2774A4|0 |2 |0 |
+ROW |142643 |2128 |40549 |0 |2 |F63100|1 |2 |0 |
+ROW |142644 |2128 |40546 |0 |3 |A54F10|1 |2 |0 |
+ROW |142645 |2128 |40548 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142646 |2128 |40545 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142647 |671 |27240 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142648 |1034 |30093 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142649 |2129 |40584 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142650 |2129 |40587 |2 |1 |2774A4|0 |2 |0 |
+ROW |142651 |2129 |40586 |0 |2 |F63100|1 |2 |0 |
+ROW |142652 |2129 |40583 |0 |3 |A54F10|1 |2 |0 |
+ROW |142653 |2129 |40585 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142654 |2129 |40582 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142655 |2130 |40593 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142656 |2130 |40596 |2 |1 |2774A4|0 |2 |0 |
+ROW |142657 |2130 |40595 |0 |2 |F63100|1 |2 |0 |
+ROW |142658 |2130 |40592 |0 |3 |A54F10|1 |2 |0 |
+ROW |142659 |2130 |40594 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142660 |2130 |40591 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142661 |2131 |40559 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142662 |2132 |40572 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142663 |2133 |40565 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142664 |2134 |40578 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142665 |1676 |35369 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142666 |1677 |35372 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142667 |1678 |35379 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142668 |1678 |35386 |0 |1 |2774A4|0 |2 |0 |
+ROW |142669 |1678 |35377 |0 |2 |F63100|0 |2 |0 |
+ROW |142670 |1678 |35384 |0 |3 |A54F10|0 |2 |0 |
+ROW |142671 |1678 |35376 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142672 |1678 |35383 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142673 |1679 |35387 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142674 |1679 |35380 |0 |1 |2774A4|0 |2 |0 |
+ROW |142675 |1680 |35378 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142676 |1680 |35385 |0 |1 |2774A4|0 |2 |0 |
+ROW |142677 |1681 |35403 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142678 |1681 |35404 |0 |1 |2774A4|0 |2 |0 |
+ROW |142679 |1549 |33966 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142680 |1550 |33971 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142681 |1551 |33974 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142682 |1551 |33977 |2 |1 |2774A4|0 |2 |0 |
+ROW |142683 |1551 |33976 |0 |2 |F63100|1 |2 |0 |
+ROW |142684 |1551 |33973 |0 |3 |A54F10|1 |2 |0 |
+ROW |142685 |1551 |33975 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142686 |1551 |33972 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142687 |1552 |34007 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142688 |1553 |34012 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142689 |1554 |34015 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142690 |1554 |34018 |2 |1 |2774A4|0 |2 |0 |
+ROW |142691 |1554 |34017 |0 |2 |F63100|1 |2 |0 |
+ROW |142692 |1554 |34014 |0 |3 |A54F10|1 |2 |0 |
+ROW |142693 |1554 |34016 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142694 |1554 |34013 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142695 |1555 |34048 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142696 |1556 |34053 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142697 |1557 |34056 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142698 |1557 |34059 |2 |1 |2774A4|0 |2 |0 |
+ROW |142699 |1557 |34058 |0 |2 |F63100|1 |2 |0 |
+ROW |142700 |1557 |34055 |0 |3 |A54F10|1 |2 |0 |
+ROW |142701 |1557 |34057 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142702 |1557 |34054 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142703 |1558 |34089 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142704 |1559 |34094 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142705 |1560 |34097 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142706 |1560 |34100 |2 |1 |2774A4|0 |2 |0 |
+ROW |142707 |1560 |34099 |0 |2 |F63100|1 |2 |0 |
+ROW |142708 |1560 |34096 |0 |3 |A54F10|1 |2 |0 |
+ROW |142709 |1560 |34098 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142710 |1560 |34095 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142711 |1561 |34130 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142712 |1562 |34135 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142713 |1563 |34138 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142714 |1563 |34141 |2 |1 |2774A4|0 |2 |0 |
+ROW |142715 |1563 |34140 |0 |2 |F63100|1 |2 |0 |
+ROW |142716 |1563 |34137 |0 |3 |A54F10|1 |2 |0 |
+ROW |142717 |1563 |34139 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142718 |1563 |34136 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142719 |2135 |40667 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142720 |2136 |40671 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142721 |2137 |40676 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142722 |2138 |40679 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142723 |2138 |40682 |2 |1 |2774A4|0 |2 |0 |
+ROW |142724 |2138 |40681 |0 |2 |F63100|1 |2 |0 |
+ROW |142725 |2138 |40678 |0 |3 |A54F10|1 |2 |0 |
+ROW |142726 |2138 |40680 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142727 |2138 |40677 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142728 |2139 |40690 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142729 |2140 |40695 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142730 |2141 |40698 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142731 |2141 |40701 |2 |1 |2774A4|0 |2 |0 |
+ROW |142732 |2141 |40700 |0 |2 |F63100|1 |2 |0 |
+ROW |142733 |2141 |40697 |0 |3 |A54F10|1 |2 |0 |
+ROW |142734 |2141 |40699 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142735 |2141 |40696 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142736 |2142 |40605 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142737 |694 |27478 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142738 |1042 |30105 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142739 |2143 |40723 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142740 |2143 |40726 |2 |1 |2774A4|0 |2 |0 |
+ROW |142741 |2143 |40725 |0 |2 |F63100|1 |2 |0 |
+ROW |142742 |2143 |40722 |0 |3 |A54F10|1 |2 |0 |
+ROW |142743 |2143 |40724 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142744 |2143 |40721 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142745 |1043 |30107 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142746 |2144 |40745 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142747 |2144 |40748 |2 |1 |2774A4|0 |2 |0 |
+ROW |142748 |2144 |40747 |0 |2 |F63100|1 |2 |0 |
+ROW |142749 |2144 |40744 |0 |3 |A54F10|1 |2 |0 |
+ROW |142750 |2144 |40746 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142751 |2144 |40743 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142752 |698 |27511 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142753 |1044 |30108 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142754 |2145 |40767 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142755 |2145 |40770 |2 |1 |2774A4|0 |2 |0 |
+ROW |142756 |2145 |40769 |0 |2 |F63100|1 |2 |0 |
+ROW |142757 |2145 |40766 |0 |3 |A54F10|1 |2 |0 |
+ROW |142758 |2145 |40768 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142759 |2145 |40765 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142760 |701 |27547 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142761 |1045 |27591 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142762 |1045 |30110 |5 |1 |2774A4|0 |2 |0 |
+ROW |142763 |1046 |30111 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142764 |2146 |40790 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142765 |2146 |40793 |2 |1 |2774A4|0 |2 |0 |
+ROW |142766 |2146 |40792 |0 |2 |F63100|1 |2 |0 |
+ROW |142767 |2146 |40789 |0 |3 |A54F10|1 |2 |0 |
+ROW |142768 |2146 |40791 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142769 |2146 |40788 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142770 |704 |27586 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142771 |1682 |35439 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142772 |1683 |35441 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142773 |1684 |35443 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142774 |1685 |35446 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142775 |1686 |35450 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142776 |1686 |35465 |0 |1 |2774A4|0 |2 |0 |
+ROW |142777 |1686 |35456 |0 |2 |F63100|0 |2 |0 |
+ROW |142778 |1686 |35447 |0 |3 |A54F10|0 |2 |0 |
+ROW |142779 |1686 |35468 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142780 |1686 |35471 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142781 |1686 |35459 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142782 |1687 |35449 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142783 |1687 |35464 |0 |1 |2774A4|0 |2 |0 |
+ROW |142784 |1687 |35455 |0 |2 |F63100|0 |2 |0 |
+ROW |142785 |1687 |35461 |0 |3 |A54F10|0 |2 |0 |
+ROW |142786 |1687 |35467 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142787 |1687 |35470 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142788 |1687 |35457 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142789 |1688 |35473 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142790 |1688 |35463 |0 |1 |2774A4|0 |2 |0 |
+ROW |142791 |1688 |35454 |0 |2 |F63100|0 |2 |0 |
+ROW |142792 |1688 |35472 |0 |3 |A54F10|0 |2 |0 |
+ROW |142793 |1688 |35466 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142794 |1688 |35469 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142795 |1688 |35458 |0 |6 |AC8C14|0 |2 |0 |
+ROW |142796 |1689 |35474 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142797 |1690 |35476 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142798 |1691 |35478 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142799 |1691 |35480 |0 |1 |2774A4|0 |2 |0 |
+ROW |142800 |1692 |35487 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142801 |1692 |35484 |0 |1 |2774A4|0 |2 |0 |
+ROW |142802 |1693 |35486 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142803 |1693 |35483 |0 |1 |2774A4|0 |2 |0 |
+ROW |142804 |1694 |35490 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142805 |1694 |35488 |0 |1 |2774A4|0 |2 |0 |
+ROW |142806 |1694 |35489 |0 |2 |F63100|0 |2 |0 |
+ROW |142807 |1695 |35497 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142808 |1695 |35493 |0 |1 |2774A4|1 |2 |0 |
+ROW |142809 |1695 |35503 |0 |2 |F63100|0 |2 |0 |
+ROW |142810 |1695 |35499 |0 |3 |A54F10|1 |2 |0 |
+ROW |142811 |1695 |35496 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142812 |1695 |35502 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142813 |1696 |35508 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142814 |1696 |35507 |0 |1 |2774A4|1 |2 |0 |
+ROW |142815 |1696 |35510 |0 |2 |F63100|0 |2 |0 |
+ROW |142816 |1696 |35509 |0 |3 |A54F10|1 |2 |0 |
+ROW |142817 |1697 |35516 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142818 |1697 |35515 |0 |1 |2774A4|1 |2 |0 |
+ROW |142819 |1697 |35518 |0 |2 |F63100|0 |2 |0 |
+ROW |142820 |1697 |35517 |0 |3 |A54F10|1 |2 |0 |
+ROW |142821 |1698 |35524 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142822 |1698 |35523 |0 |1 |2774A4|1 |2 |0 |
+ROW |142823 |1698 |35526 |0 |2 |F63100|0 |2 |0 |
+ROW |142824 |1698 |35525 |0 |3 |A54F10|1 |2 |0 |
+ROW |142825 |1699 |35531 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142826 |1699 |35529 |0 |1 |2774A4|0 |2 |0 |
+ROW |142827 |1699 |35530 |0 |2 |F63100|0 |2 |0 |
+ROW |142828 |1700 |35411 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142829 |1700 |35409 |0 |1 |2774A4|0 |2 |0 |
+ROW |142830 |1700 |35407 |0 |2 |F63100|0 |2 |0 |
+ROW |142831 |1700 |35413 |0 |3 |A54F10|0 |2 |0 |
+ROW |142832 |1700 |35412 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |142833 |1700 |35410 |0 |5 |6C59DC|0 |2 |0 |
+ROW |142834 |2147 |40813 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142835 |2147 |40816 |2 |1 |2774A4|0 |2 |0 |
+ROW |142836 |2147 |40815 |0 |2 |F63100|1 |2 |0 |
+ROW |142837 |2147 |40812 |0 |3 |A54F10|1 |2 |0 |
+ROW |142838 |2147 |40814 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142839 |2147 |40811 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142840 |708 |27671 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142841 |1047 |30112 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142842 |2148 |40836 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142843 |2148 |40839 |2 |1 |2774A4|0 |2 |0 |
+ROW |142844 |2148 |40838 |0 |2 |F63100|1 |2 |0 |
+ROW |142845 |2148 |40835 |0 |3 |A54F10|1 |2 |0 |
+ROW |142846 |2148 |40837 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142847 |2148 |40834 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142848 |1048 |30114 |2 |0 |1A7C11|0 |2 |0 |
+ROW |142849 |1048 |30113 |5 |1 |2774A4|0 |2 |0 |
+ROW |142850 |1049 |30115 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142851 |2149 |40859 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142852 |2149 |40862 |2 |1 |2774A4|0 |2 |0 |
+ROW |142853 |2149 |40861 |0 |2 |F63100|1 |2 |0 |
+ROW |142854 |2149 |40858 |0 |3 |A54F10|1 |2 |0 |
+ROW |142855 |2149 |40860 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142856 |2149 |40857 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142857 |775 |28143 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142858 |714 |27753 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142859 |1050 |30116 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142860 |2150 |40882 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142861 |2150 |40885 |2 |1 |2774A4|0 |2 |0 |
+ROW |142862 |2150 |40884 |0 |2 |F63100|1 |2 |0 |
+ROW |142863 |2150 |40881 |0 |3 |A54F10|1 |2 |0 |
+ROW |142864 |2150 |40883 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142865 |2150 |40880 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142866 |2151 |40904 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142867 |2151 |40907 |2 |1 |2774A4|0 |2 |0 |
+ROW |142868 |2151 |40906 |0 |2 |F63100|1 |2 |0 |
+ROW |142869 |2151 |40903 |0 |3 |A54F10|1 |2 |0 |
+ROW |142870 |2151 |40905 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142871 |2151 |40902 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142872 |856 |28894 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142873 |1051 |30118 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142874 |2152 |40926 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142875 |2152 |40929 |2 |1 |2774A4|0 |2 |0 |
+ROW |142876 |2152 |40928 |0 |2 |F63100|1 |2 |0 |
+ROW |142877 |2152 |40925 |0 |3 |A54F10|1 |2 |0 |
+ROW |142878 |2152 |40927 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142879 |2152 |40924 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142880 |1564 |34166 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142881 |1564 |34169 |2 |1 |2774A4|0 |2 |0 |
+ROW |142882 |1564 |34168 |0 |2 |F63100|1 |2 |0 |
+ROW |142883 |1564 |34165 |0 |3 |A54F10|1 |2 |0 |
+ROW |142884 |1564 |34167 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142885 |1564 |34164 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142886 |1565 |34174 |0 |0 |969696|0 |9 |2 |
+ROW |142887 |1565 |34175 |0 |1 |C80000|0 |9 |0 |
+ROW |142888 |1566 |34178 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142889 |1567 |34154 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142890 |1811 |36861 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142891 |1812 |36867 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142892 |1812 |36865 |0 |1 |2774A4|0 |2 |0 |
+ROW |142893 |1812 |36864 |0 |2 |F63100|0 |2 |0 |
+ROW |142894 |1812 |36866 |0 |3 |A54F10|0 |2 |0 |
+ROW |142895 |2153 |40948 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142896 |2153 |40951 |2 |1 |2774A4|0 |2 |0 |
+ROW |142897 |2153 |40950 |0 |2 |F63100|1 |2 |0 |
+ROW |142898 |2153 |40947 |0 |3 |A54F10|1 |2 |0 |
+ROW |142899 |2153 |40949 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142900 |2153 |40946 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142901 |1813 |36878 |0 |0 |969696|0 |9 |2 |
+ROW |142902 |1813 |36879 |0 |1 |C80000|0 |9 |0 |
+ROW |142903 |1814 |36853 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142904 |1816 |36915 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142905 |1817 |36921 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142906 |1817 |36919 |0 |1 |2774A4|0 |2 |0 |
+ROW |142907 |1817 |36918 |0 |2 |F63100|0 |2 |0 |
+ROW |142908 |1817 |36920 |0 |3 |A54F10|0 |2 |0 |
+ROW |142909 |2154 |40969 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142910 |2154 |40972 |2 |1 |2774A4|0 |2 |0 |
+ROW |142911 |2154 |40971 |0 |2 |F63100|1 |2 |0 |
+ROW |142912 |2154 |40968 |0 |3 |A54F10|1 |2 |0 |
+ROW |142913 |2154 |40970 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142914 |2154 |40967 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142915 |1818 |36932 |0 |0 |969696|0 |9 |2 |
+ROW |142916 |1818 |36933 |0 |1 |C80000|0 |9 |0 |
+ROW |142917 |1819 |36907 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142918 |1821 |36969 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142919 |1822 |36975 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142920 |1822 |36973 |0 |1 |2774A4|0 |2 |0 |
+ROW |142921 |1822 |36972 |0 |2 |F63100|0 |2 |0 |
+ROW |142922 |1822 |36974 |0 |3 |A54F10|0 |2 |0 |
+ROW |142923 |2155 |40990 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142924 |2155 |40993 |2 |1 |2774A4|0 |2 |0 |
+ROW |142925 |2155 |40992 |0 |2 |F63100|1 |2 |0 |
+ROW |142926 |2155 |40989 |0 |3 |A54F10|1 |2 |0 |
+ROW |142927 |2155 |40991 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142928 |2155 |40988 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142929 |1823 |36986 |0 |0 |969696|0 |9 |2 |
+ROW |142930 |1823 |36987 |0 |1 |C80000|0 |9 |0 |
+ROW |142931 |1824 |36961 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142932 |1826 |37023 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142933 |1827 |37029 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142934 |1827 |37027 |0 |1 |2774A4|0 |2 |0 |
+ROW |142935 |1827 |37026 |0 |2 |F63100|0 |2 |0 |
+ROW |142936 |1827 |37028 |0 |3 |A54F10|0 |2 |0 |
+ROW |142937 |2156 |41011 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142938 |2156 |41014 |2 |1 |2774A4|0 |2 |0 |
+ROW |142939 |2156 |41013 |0 |2 |F63100|1 |2 |0 |
+ROW |142940 |2156 |41010 |0 |3 |A54F10|1 |2 |0 |
+ROW |142941 |2156 |41012 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142942 |2156 |41009 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142943 |1828 |37040 |0 |0 |969696|0 |9 |2 |
+ROW |142944 |1828 |37041 |0 |1 |C80000|0 |9 |0 |
+ROW |142945 |1829 |37015 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142946 |1831 |37077 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142947 |1832 |37083 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142948 |1832 |37081 |0 |1 |2774A4|0 |2 |0 |
+ROW |142949 |1832 |37080 |0 |2 |F63100|0 |2 |0 |
+ROW |142950 |1832 |37082 |0 |3 |A54F10|0 |2 |0 |
+ROW |142951 |2157 |41032 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142952 |2157 |41035 |2 |1 |2774A4|0 |2 |0 |
+ROW |142953 |2157 |41034 |0 |2 |F63100|1 |2 |0 |
+ROW |142954 |2157 |41031 |0 |3 |A54F10|1 |2 |0 |
+ROW |142955 |2157 |41033 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142956 |2157 |41030 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142957 |1833 |37094 |0 |0 |969696|0 |9 |2 |
+ROW |142958 |1833 |37095 |0 |1 |C80000|0 |9 |0 |
+ROW |142959 |1834 |37069 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142960 |1836 |37131 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142961 |1837 |37137 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142962 |1837 |37135 |0 |1 |2774A4|0 |2 |0 |
+ROW |142963 |1837 |37134 |0 |2 |F63100|0 |2 |0 |
+ROW |142964 |1837 |37136 |0 |3 |A54F10|0 |2 |0 |
+ROW |142965 |2158 |41053 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142966 |2158 |41056 |2 |1 |2774A4|0 |2 |0 |
+ROW |142967 |2158 |41055 |0 |2 |F63100|1 |2 |0 |
+ROW |142968 |2158 |41052 |0 |3 |A54F10|1 |2 |0 |
+ROW |142969 |2158 |41054 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142970 |2158 |41051 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142971 |1838 |37148 |0 |0 |969696|0 |9 |2 |
+ROW |142972 |1838 |37149 |0 |1 |C80000|0 |9 |0 |
+ROW |142973 |1839 |37123 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142974 |1841 |37185 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142975 |1842 |37191 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142976 |1842 |37189 |0 |1 |2774A4|0 |2 |0 |
+ROW |142977 |1842 |37188 |0 |2 |F63100|0 |2 |0 |
+ROW |142978 |1842 |37190 |0 |3 |A54F10|0 |2 |0 |
+ROW |142979 |2159 |41074 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142980 |2159 |41077 |2 |1 |2774A4|0 |2 |0 |
+ROW |142981 |2159 |41076 |0 |2 |F63100|1 |2 |0 |
+ROW |142982 |2159 |41073 |0 |3 |A54F10|1 |2 |0 |
+ROW |142983 |2159 |41075 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142984 |2159 |41072 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142985 |1843 |37202 |0 |0 |969696|0 |9 |2 |
+ROW |142986 |1843 |37203 |0 |1 |C80000|0 |9 |0 |
+ROW |142987 |1844 |37177 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142988 |1846 |37239 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142989 |1847 |37245 |0 |0 |1A7C11|0 |2 |0 |
+ROW |142990 |1847 |37243 |0 |1 |2774A4|0 |2 |0 |
+ROW |142991 |1847 |37242 |0 |2 |F63100|0 |2 |0 |
+ROW |142992 |1847 |37244 |0 |3 |A54F10|0 |2 |0 |
+ROW |142993 |2160 |41095 |5 |0 |1A7C11|0 |2 |0 |
+ROW |142994 |2160 |41098 |2 |1 |2774A4|0 |2 |0 |
+ROW |142995 |2160 |41097 |0 |2 |F63100|1 |2 |0 |
+ROW |142996 |2160 |41094 |0 |3 |A54F10|1 |2 |0 |
+ROW |142997 |2160 |41096 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |142998 |2160 |41093 |0 |5 |6C59DC|1 |2 |0 |
+ROW |142999 |1848 |37256 |0 |0 |969696|0 |9 |2 |
+ROW |143000 |1848 |37257 |0 |1 |C80000|0 |9 |0 |
+ROW |143001 |1849 |37231 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143002 |1851 |37293 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143003 |1852 |37299 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143004 |1852 |37297 |0 |1 |2774A4|0 |2 |0 |
+ROW |143005 |1852 |37296 |0 |2 |F63100|0 |2 |0 |
+ROW |143006 |1852 |37298 |0 |3 |A54F10|0 |2 |0 |
+ROW |143007 |2161 |41116 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143008 |2161 |41119 |2 |1 |2774A4|0 |2 |0 |
+ROW |143009 |2161 |41118 |0 |2 |F63100|1 |2 |0 |
+ROW |143010 |2161 |41115 |0 |3 |A54F10|1 |2 |0 |
+ROW |143011 |2161 |41117 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143012 |2161 |41114 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143013 |1853 |37310 |0 |0 |969696|0 |9 |2 |
+ROW |143014 |1853 |37311 |0 |1 |C80000|0 |9 |0 |
+ROW |143015 |1854 |37285 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143016 |1856 |37347 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143017 |1857 |37353 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143018 |1857 |37351 |0 |1 |2774A4|0 |2 |0 |
+ROW |143019 |1857 |37350 |0 |2 |F63100|0 |2 |0 |
+ROW |143020 |1857 |37352 |0 |3 |A54F10|0 |2 |0 |
+ROW |143021 |2162 |41137 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143022 |2162 |41140 |2 |1 |2774A4|0 |2 |0 |
+ROW |143023 |2162 |41139 |0 |2 |F63100|1 |2 |0 |
+ROW |143024 |2162 |41136 |0 |3 |A54F10|1 |2 |0 |
+ROW |143025 |2162 |41138 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143026 |2162 |41135 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143027 |1858 |37364 |0 |0 |969696|0 |9 |2 |
+ROW |143028 |1858 |37365 |0 |1 |C80000|0 |9 |0 |
+ROW |143029 |1859 |37339 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143030 |1861 |37401 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143031 |1862 |37407 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143032 |1862 |37405 |0 |1 |2774A4|0 |2 |0 |
+ROW |143033 |1862 |37404 |0 |2 |F63100|0 |2 |0 |
+ROW |143034 |1862 |37406 |0 |3 |A54F10|0 |2 |0 |
+ROW |143035 |2163 |41158 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143036 |2163 |41161 |2 |1 |2774A4|0 |2 |0 |
+ROW |143037 |2163 |41160 |0 |2 |F63100|1 |2 |0 |
+ROW |143038 |2163 |41157 |0 |3 |A54F10|1 |2 |0 |
+ROW |143039 |2163 |41159 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143040 |2163 |41156 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143041 |1863 |37418 |0 |0 |969696|0 |9 |2 |
+ROW |143042 |1863 |37419 |0 |1 |C80000|0 |9 |0 |
+ROW |143043 |1864 |37393 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143044 |1866 |37455 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143045 |1867 |37461 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143046 |1867 |37459 |0 |1 |2774A4|0 |2 |0 |
+ROW |143047 |1867 |37458 |0 |2 |F63100|0 |2 |0 |
+ROW |143048 |1867 |37460 |0 |3 |A54F10|0 |2 |0 |
+ROW |143049 |2164 |41179 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143050 |2164 |41182 |2 |1 |2774A4|0 |2 |0 |
+ROW |143051 |2164 |41181 |0 |2 |F63100|1 |2 |0 |
+ROW |143052 |2164 |41178 |0 |3 |A54F10|1 |2 |0 |
+ROW |143053 |2164 |41180 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143054 |2164 |41177 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143055 |1868 |37472 |0 |0 |969696|0 |9 |2 |
+ROW |143056 |1868 |37473 |0 |1 |C80000|0 |9 |0 |
+ROW |143057 |1869 |37447 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143058 |1871 |37509 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143059 |1872 |37515 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143060 |1872 |37513 |0 |1 |2774A4|0 |2 |0 |
+ROW |143061 |1872 |37512 |0 |2 |F63100|0 |2 |0 |
+ROW |143062 |1872 |37514 |0 |3 |A54F10|0 |2 |0 |
+ROW |143063 |2165 |41200 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143064 |2165 |41203 |2 |1 |2774A4|0 |2 |0 |
+ROW |143065 |2165 |41202 |0 |2 |F63100|1 |2 |0 |
+ROW |143066 |2165 |41199 |0 |3 |A54F10|1 |2 |0 |
+ROW |143067 |2165 |41201 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143068 |2165 |41198 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143069 |1873 |37526 |0 |0 |969696|0 |9 |2 |
+ROW |143070 |1873 |37527 |0 |1 |C80000|0 |9 |0 |
+ROW |143071 |1874 |37501 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143072 |1876 |37563 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143073 |1877 |37569 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143074 |1877 |37567 |0 |1 |2774A4|0 |2 |0 |
+ROW |143075 |1877 |37566 |0 |2 |F63100|0 |2 |0 |
+ROW |143076 |1877 |37568 |0 |3 |A54F10|0 |2 |0 |
+ROW |143077 |2166 |41221 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143078 |2166 |41224 |2 |1 |2774A4|0 |2 |0 |
+ROW |143079 |2166 |41223 |0 |2 |F63100|1 |2 |0 |
+ROW |143080 |2166 |41220 |0 |3 |A54F10|1 |2 |0 |
+ROW |143081 |2166 |41222 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143082 |2166 |41219 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143083 |1878 |37580 |0 |0 |969696|0 |9 |2 |
+ROW |143084 |1878 |37581 |0 |1 |C80000|0 |9 |0 |
+ROW |143085 |1879 |37555 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143086 |1881 |37617 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143087 |1882 |37623 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143088 |1882 |37621 |0 |1 |2774A4|0 |2 |0 |
+ROW |143089 |1882 |37620 |0 |2 |F63100|0 |2 |0 |
+ROW |143090 |1882 |37622 |0 |3 |A54F10|0 |2 |0 |
+ROW |143091 |2167 |41242 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143092 |2167 |41245 |2 |1 |2774A4|0 |2 |0 |
+ROW |143093 |2167 |41244 |0 |2 |F63100|1 |2 |0 |
+ROW |143094 |2167 |41241 |0 |3 |A54F10|1 |2 |0 |
+ROW |143095 |2167 |41243 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143096 |2167 |41240 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143097 |1883 |37634 |0 |0 |969696|0 |9 |2 |
+ROW |143098 |1883 |37635 |0 |1 |C80000|0 |9 |0 |
+ROW |143099 |1884 |37609 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143100 |1886 |37671 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143101 |1887 |37677 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143102 |1887 |37675 |0 |1 |2774A4|0 |2 |0 |
+ROW |143103 |1887 |37674 |0 |2 |F63100|0 |2 |0 |
+ROW |143104 |1887 |37676 |0 |3 |A54F10|0 |2 |0 |
+ROW |143105 |2168 |41263 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143106 |2168 |41266 |2 |1 |2774A4|0 |2 |0 |
+ROW |143107 |2168 |41265 |0 |2 |F63100|1 |2 |0 |
+ROW |143108 |2168 |41262 |0 |3 |A54F10|1 |2 |0 |
+ROW |143109 |2168 |41264 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143110 |2168 |41261 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143111 |1888 |37688 |0 |0 |969696|0 |9 |2 |
+ROW |143112 |1888 |37689 |0 |1 |C80000|0 |9 |0 |
+ROW |143113 |1889 |37663 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143114 |1891 |37725 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143115 |1892 |37731 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143116 |1892 |37729 |0 |1 |2774A4|0 |2 |0 |
+ROW |143117 |1892 |37728 |0 |2 |F63100|0 |2 |0 |
+ROW |143118 |1892 |37730 |0 |3 |A54F10|0 |2 |0 |
+ROW |143119 |2169 |41284 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143120 |2169 |41287 |2 |1 |2774A4|0 |2 |0 |
+ROW |143121 |2169 |41286 |0 |2 |F63100|1 |2 |0 |
+ROW |143122 |2169 |41283 |0 |3 |A54F10|1 |2 |0 |
+ROW |143123 |2169 |41285 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143124 |2169 |41282 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143125 |1893 |37742 |0 |0 |969696|0 |9 |2 |
+ROW |143126 |1893 |37743 |0 |1 |C80000|0 |9 |0 |
+ROW |143127 |1894 |37717 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143128 |1896 |37779 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143129 |1897 |37785 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143130 |1897 |37783 |0 |1 |2774A4|0 |2 |0 |
+ROW |143131 |1897 |37782 |0 |2 |F63100|0 |2 |0 |
+ROW |143132 |1897 |37784 |0 |3 |A54F10|0 |2 |0 |
+ROW |143133 |2170 |41305 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143134 |2170 |41308 |2 |1 |2774A4|0 |2 |0 |
+ROW |143135 |2170 |41307 |0 |2 |F63100|1 |2 |0 |
+ROW |143136 |2170 |41304 |0 |3 |A54F10|1 |2 |0 |
+ROW |143137 |2170 |41306 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143138 |2170 |41303 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143139 |1898 |37796 |0 |0 |969696|0 |9 |2 |
+ROW |143140 |1898 |37797 |0 |1 |C80000|0 |9 |0 |
+ROW |143141 |1899 |37771 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143142 |1901 |37833 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143143 |1902 |37839 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143144 |1902 |37837 |0 |1 |2774A4|0 |2 |0 |
+ROW |143145 |1902 |37836 |0 |2 |F63100|0 |2 |0 |
+ROW |143146 |1902 |37838 |0 |3 |A54F10|0 |2 |0 |
+ROW |143147 |2171 |41326 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143148 |2171 |41329 |2 |1 |2774A4|0 |2 |0 |
+ROW |143149 |2171 |41328 |0 |2 |F63100|1 |2 |0 |
+ROW |143150 |2171 |41325 |0 |3 |A54F10|1 |2 |0 |
+ROW |143151 |2171 |41327 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143152 |2171 |41324 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143153 |1903 |37850 |0 |0 |969696|0 |9 |2 |
+ROW |143154 |1903 |37851 |0 |1 |C80000|0 |9 |0 |
+ROW |143155 |1904 |37825 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143156 |1906 |37887 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143157 |1907 |37893 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143158 |1907 |37891 |0 |1 |2774A4|0 |2 |0 |
+ROW |143159 |1907 |37890 |0 |2 |F63100|0 |2 |0 |
+ROW |143160 |1907 |37892 |0 |3 |A54F10|0 |2 |0 |
+ROW |143161 |2172 |41347 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143162 |2172 |41350 |2 |1 |2774A4|0 |2 |0 |
+ROW |143163 |2172 |41349 |0 |2 |F63100|1 |2 |0 |
+ROW |143164 |2172 |41346 |0 |3 |A54F10|1 |2 |0 |
+ROW |143165 |2172 |41348 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143166 |2172 |41345 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143167 |1908 |37904 |0 |0 |969696|0 |9 |2 |
+ROW |143168 |1908 |37905 |0 |1 |C80000|0 |9 |0 |
+ROW |143169 |1909 |37879 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143170 |1911 |37941 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143171 |1912 |37947 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143172 |1912 |37945 |0 |1 |2774A4|0 |2 |0 |
+ROW |143173 |1912 |37944 |0 |2 |F63100|0 |2 |0 |
+ROW |143174 |1912 |37946 |0 |3 |A54F10|0 |2 |0 |
+ROW |143175 |2173 |41368 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143176 |2173 |41371 |2 |1 |2774A4|0 |2 |0 |
+ROW |143177 |2173 |41370 |0 |2 |F63100|1 |2 |0 |
+ROW |143178 |2173 |41367 |0 |3 |A54F10|1 |2 |0 |
+ROW |143179 |2173 |41369 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143180 |2173 |41366 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143181 |1913 |37958 |0 |0 |969696|0 |9 |2 |
+ROW |143182 |1913 |37959 |0 |1 |C80000|0 |9 |0 |
+ROW |143183 |1914 |37933 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143184 |1916 |37995 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143185 |1917 |38001 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143186 |1917 |37999 |0 |1 |2774A4|0 |2 |0 |
+ROW |143187 |1917 |37998 |0 |2 |F63100|0 |2 |0 |
+ROW |143188 |1917 |38000 |0 |3 |A54F10|0 |2 |0 |
+ROW |143189 |2174 |41389 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143190 |2174 |41392 |2 |1 |2774A4|0 |2 |0 |
+ROW |143191 |2174 |41391 |0 |2 |F63100|1 |2 |0 |
+ROW |143192 |2174 |41388 |0 |3 |A54F10|1 |2 |0 |
+ROW |143193 |2174 |41390 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143194 |2174 |41387 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143195 |1918 |38012 |0 |0 |969696|0 |9 |2 |
+ROW |143196 |1918 |38013 |0 |1 |C80000|0 |9 |0 |
+ROW |143197 |1919 |37987 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143198 |1921 |38049 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143199 |1922 |38055 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143200 |1922 |38053 |0 |1 |2774A4|0 |2 |0 |
+ROW |143201 |1922 |38052 |0 |2 |F63100|0 |2 |0 |
+ROW |143202 |1922 |38054 |0 |3 |A54F10|0 |2 |0 |
+ROW |143203 |2175 |41410 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143204 |2175 |41413 |2 |1 |2774A4|0 |2 |0 |
+ROW |143205 |2175 |41412 |0 |2 |F63100|1 |2 |0 |
+ROW |143206 |2175 |41409 |0 |3 |A54F10|1 |2 |0 |
+ROW |143207 |2175 |41411 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143208 |2175 |41408 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143209 |1923 |38066 |0 |0 |969696|0 |9 |2 |
+ROW |143210 |1923 |38067 |0 |1 |C80000|0 |9 |0 |
+ROW |143211 |1924 |38041 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143212 |1926 |38103 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143213 |1927 |38109 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143214 |1927 |38107 |0 |1 |2774A4|0 |2 |0 |
+ROW |143215 |1927 |38106 |0 |2 |F63100|0 |2 |0 |
+ROW |143216 |1927 |38108 |0 |3 |A54F10|0 |2 |0 |
+ROW |143217 |2176 |41431 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143218 |2176 |41434 |2 |1 |2774A4|0 |2 |0 |
+ROW |143219 |2176 |41433 |0 |2 |F63100|1 |2 |0 |
+ROW |143220 |2176 |41430 |0 |3 |A54F10|1 |2 |0 |
+ROW |143221 |2176 |41432 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143222 |2176 |41429 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143223 |1928 |38120 |0 |0 |969696|0 |9 |2 |
+ROW |143224 |1928 |38121 |0 |1 |C80000|0 |9 |0 |
+ROW |143225 |1929 |38095 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143226 |1931 |38157 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143227 |1932 |38163 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143228 |1932 |38161 |0 |1 |2774A4|0 |2 |0 |
+ROW |143229 |1932 |38160 |0 |2 |F63100|0 |2 |0 |
+ROW |143230 |1932 |38162 |0 |3 |A54F10|0 |2 |0 |
+ROW |143231 |2177 |41452 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143232 |2177 |41455 |2 |1 |2774A4|0 |2 |0 |
+ROW |143233 |2177 |41454 |0 |2 |F63100|1 |2 |0 |
+ROW |143234 |2177 |41451 |0 |3 |A54F10|1 |2 |0 |
+ROW |143235 |2177 |41453 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143236 |2177 |41450 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143237 |1933 |38174 |0 |0 |969696|0 |9 |2 |
+ROW |143238 |1933 |38175 |0 |1 |C80000|0 |9 |0 |
+ROW |143239 |1934 |38149 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143240 |1936 |38211 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143241 |1937 |38217 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143242 |1937 |38215 |0 |1 |2774A4|0 |2 |0 |
+ROW |143243 |1937 |38214 |0 |2 |F63100|0 |2 |0 |
+ROW |143244 |1937 |38216 |0 |3 |A54F10|0 |2 |0 |
+ROW |143245 |2178 |41473 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143246 |2178 |41476 |2 |1 |2774A4|0 |2 |0 |
+ROW |143247 |2178 |41475 |0 |2 |F63100|1 |2 |0 |
+ROW |143248 |2178 |41472 |0 |3 |A54F10|1 |2 |0 |
+ROW |143249 |2178 |41474 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143250 |2178 |41471 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143251 |1938 |38228 |0 |0 |969696|0 |9 |2 |
+ROW |143252 |1938 |38229 |0 |1 |C80000|0 |9 |0 |
+ROW |143253 |1939 |38203 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143254 |1941 |38265 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143255 |1942 |38271 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143256 |1942 |38269 |0 |1 |2774A4|0 |2 |0 |
+ROW |143257 |1942 |38268 |0 |2 |F63100|0 |2 |0 |
+ROW |143258 |1942 |38270 |0 |3 |A54F10|0 |2 |0 |
+ROW |143259 |2179 |41494 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143260 |2179 |41497 |2 |1 |2774A4|0 |2 |0 |
+ROW |143261 |2179 |41496 |0 |2 |F63100|1 |2 |0 |
+ROW |143262 |2179 |41493 |0 |3 |A54F10|1 |2 |0 |
+ROW |143263 |2179 |41495 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143264 |2179 |41492 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143265 |1943 |38282 |0 |0 |969696|0 |9 |2 |
+ROW |143266 |1943 |38283 |0 |1 |C80000|0 |9 |0 |
+ROW |143267 |1944 |38257 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143268 |1946 |38319 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143269 |1947 |38325 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143270 |1947 |38323 |0 |1 |2774A4|0 |2 |0 |
+ROW |143271 |1947 |38322 |0 |2 |F63100|0 |2 |0 |
+ROW |143272 |1947 |38324 |0 |3 |A54F10|0 |2 |0 |
+ROW |143273 |2180 |41515 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143274 |2180 |41518 |2 |1 |2774A4|0 |2 |0 |
+ROW |143275 |2180 |41517 |0 |2 |F63100|1 |2 |0 |
+ROW |143276 |2180 |41514 |0 |3 |A54F10|1 |2 |0 |
+ROW |143277 |2180 |41516 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143278 |2180 |41513 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143279 |1948 |38336 |0 |0 |969696|0 |9 |2 |
+ROW |143280 |1948 |38337 |0 |1 |C80000|0 |9 |0 |
+ROW |143281 |1949 |38311 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143282 |1951 |38373 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143283 |1952 |38379 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143284 |1952 |38377 |0 |1 |2774A4|0 |2 |0 |
+ROW |143285 |1952 |38376 |0 |2 |F63100|0 |2 |0 |
+ROW |143286 |1952 |38378 |0 |3 |A54F10|0 |2 |0 |
+ROW |143287 |2181 |41536 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143288 |2181 |41539 |2 |1 |2774A4|0 |2 |0 |
+ROW |143289 |2181 |41538 |0 |2 |F63100|1 |2 |0 |
+ROW |143290 |2181 |41535 |0 |3 |A54F10|1 |2 |0 |
+ROW |143291 |2181 |41537 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143292 |2181 |41534 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143293 |1953 |38390 |0 |0 |969696|0 |9 |2 |
+ROW |143294 |1953 |38391 |0 |1 |C80000|0 |9 |0 |
+ROW |143295 |1954 |38365 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143296 |1956 |38427 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143297 |1957 |38433 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143298 |1957 |38431 |0 |1 |2774A4|0 |2 |0 |
+ROW |143299 |1957 |38430 |0 |2 |F63100|0 |2 |0 |
+ROW |143300 |1957 |38432 |0 |3 |A54F10|0 |2 |0 |
+ROW |143301 |2182 |41557 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143302 |2182 |41560 |2 |1 |2774A4|0 |2 |0 |
+ROW |143303 |2182 |41559 |0 |2 |F63100|1 |2 |0 |
+ROW |143304 |2182 |41556 |0 |3 |A54F10|1 |2 |0 |
+ROW |143305 |2182 |41558 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143306 |2182 |41555 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143307 |1958 |38444 |0 |0 |969696|0 |9 |2 |
+ROW |143308 |1958 |38445 |0 |1 |C80000|0 |9 |0 |
+ROW |143309 |1959 |38419 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143310 |1961 |38481 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143311 |1962 |38487 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143312 |1962 |38485 |0 |1 |2774A4|0 |2 |0 |
+ROW |143313 |1962 |38484 |0 |2 |F63100|0 |2 |0 |
+ROW |143314 |1962 |38486 |0 |3 |A54F10|0 |2 |0 |
+ROW |143315 |2183 |41578 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143316 |2183 |41581 |2 |1 |2774A4|0 |2 |0 |
+ROW |143317 |2183 |41580 |0 |2 |F63100|1 |2 |0 |
+ROW |143318 |2183 |41577 |0 |3 |A54F10|1 |2 |0 |
+ROW |143319 |2183 |41579 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143320 |2183 |41576 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143321 |1963 |38498 |0 |0 |969696|0 |9 |2 |
+ROW |143322 |1963 |38499 |0 |1 |C80000|0 |9 |0 |
+ROW |143323 |1964 |38473 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143324 |1966 |38535 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143325 |1967 |38541 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143326 |1967 |38539 |0 |1 |2774A4|0 |2 |0 |
+ROW |143327 |1967 |38538 |0 |2 |F63100|0 |2 |0 |
+ROW |143328 |1967 |38540 |0 |3 |A54F10|0 |2 |0 |
+ROW |143329 |2184 |41599 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143330 |2184 |41602 |2 |1 |2774A4|0 |2 |0 |
+ROW |143331 |2184 |41601 |0 |2 |F63100|1 |2 |0 |
+ROW |143332 |2184 |41598 |0 |3 |A54F10|1 |2 |0 |
+ROW |143333 |2184 |41600 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143334 |2184 |41597 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143335 |1968 |38552 |0 |0 |969696|0 |9 |2 |
+ROW |143336 |1968 |38553 |0 |1 |C80000|0 |9 |0 |
+ROW |143337 |1969 |38527 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143338 |1971 |38589 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143339 |1972 |38595 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143340 |1972 |38593 |0 |1 |2774A4|0 |2 |0 |
+ROW |143341 |1972 |38592 |0 |2 |F63100|0 |2 |0 |
+ROW |143342 |1972 |38594 |0 |3 |A54F10|0 |2 |0 |
+ROW |143343 |2185 |41620 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143344 |2185 |41623 |2 |1 |2774A4|0 |2 |0 |
+ROW |143345 |2185 |41622 |0 |2 |F63100|1 |2 |0 |
+ROW |143346 |2185 |41619 |0 |3 |A54F10|1 |2 |0 |
+ROW |143347 |2185 |41621 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143348 |2185 |41618 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143349 |1973 |38606 |0 |0 |969696|0 |9 |2 |
+ROW |143350 |1973 |38607 |0 |1 |C80000|0 |9 |0 |
+ROW |143351 |1974 |38581 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143352 |1976 |38643 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143353 |1977 |38649 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143354 |1977 |38647 |0 |1 |2774A4|0 |2 |0 |
+ROW |143355 |1977 |38646 |0 |2 |F63100|0 |2 |0 |
+ROW |143356 |1977 |38648 |0 |3 |A54F10|0 |2 |0 |
+ROW |143357 |2186 |41641 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143358 |2186 |41644 |2 |1 |2774A4|0 |2 |0 |
+ROW |143359 |2186 |41643 |0 |2 |F63100|1 |2 |0 |
+ROW |143360 |2186 |41640 |0 |3 |A54F10|1 |2 |0 |
+ROW |143361 |2186 |41642 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143362 |2186 |41639 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143363 |1978 |38660 |0 |0 |969696|0 |9 |2 |
+ROW |143364 |1978 |38661 |0 |1 |C80000|0 |9 |0 |
+ROW |143365 |1979 |38635 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143366 |1981 |38697 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143367 |1982 |38703 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143368 |1982 |38701 |0 |1 |2774A4|0 |2 |0 |
+ROW |143369 |1982 |38700 |0 |2 |F63100|0 |2 |0 |
+ROW |143370 |1982 |38702 |0 |3 |A54F10|0 |2 |0 |
+ROW |143371 |2187 |41662 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143372 |2187 |41665 |2 |1 |2774A4|0 |2 |0 |
+ROW |143373 |2187 |41664 |0 |2 |F63100|1 |2 |0 |
+ROW |143374 |2187 |41661 |0 |3 |A54F10|1 |2 |0 |
+ROW |143375 |2187 |41663 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143376 |2187 |41660 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143377 |1983 |38714 |0 |0 |969696|0 |9 |2 |
+ROW |143378 |1983 |38715 |0 |1 |C80000|0 |9 |0 |
+ROW |143379 |1984 |38689 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143380 |1986 |38751 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143381 |1987 |38757 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143382 |1987 |38755 |0 |1 |2774A4|0 |2 |0 |
+ROW |143383 |1987 |38754 |0 |2 |F63100|0 |2 |0 |
+ROW |143384 |1987 |38756 |0 |3 |A54F10|0 |2 |0 |
+ROW |143385 |2188 |41683 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143386 |2188 |41686 |2 |1 |2774A4|0 |2 |0 |
+ROW |143387 |2188 |41685 |0 |2 |F63100|1 |2 |0 |
+ROW |143388 |2188 |41682 |0 |3 |A54F10|1 |2 |0 |
+ROW |143389 |2188 |41684 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143390 |2188 |41681 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143391 |1988 |38768 |0 |0 |969696|0 |9 |2 |
+ROW |143392 |1988 |38769 |0 |1 |C80000|0 |9 |0 |
+ROW |143393 |1989 |38743 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143394 |1991 |38805 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143395 |1992 |38811 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143396 |1992 |38809 |0 |1 |2774A4|0 |2 |0 |
+ROW |143397 |1992 |38808 |0 |2 |F63100|0 |2 |0 |
+ROW |143398 |1992 |38810 |0 |3 |A54F10|0 |2 |0 |
+ROW |143399 |2189 |41704 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143400 |2189 |41707 |2 |1 |2774A4|0 |2 |0 |
+ROW |143401 |2189 |41706 |0 |2 |F63100|1 |2 |0 |
+ROW |143402 |2189 |41703 |0 |3 |A54F10|1 |2 |0 |
+ROW |143403 |2189 |41705 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143404 |2189 |41702 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143405 |1993 |38822 |0 |0 |969696|0 |9 |2 |
+ROW |143406 |1993 |38823 |0 |1 |C80000|0 |9 |0 |
+ROW |143407 |1994 |38797 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143408 |1996 |38859 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143409 |1997 |38865 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143410 |1997 |38863 |0 |1 |2774A4|0 |2 |0 |
+ROW |143411 |1997 |38862 |0 |2 |F63100|0 |2 |0 |
+ROW |143412 |1997 |38864 |0 |3 |A54F10|0 |2 |0 |
+ROW |143413 |2190 |41725 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143414 |2190 |41728 |2 |1 |2774A4|0 |2 |0 |
+ROW |143415 |2190 |41727 |0 |2 |F63100|1 |2 |0 |
+ROW |143416 |2190 |41724 |0 |3 |A54F10|1 |2 |0 |
+ROW |143417 |2190 |41726 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143418 |2190 |41723 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143419 |1998 |38876 |0 |0 |969696|0 |9 |2 |
+ROW |143420 |1998 |38877 |0 |1 |C80000|0 |9 |0 |
+ROW |143421 |1999 |38851 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143422 |2001 |38913 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143423 |2002 |38919 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143424 |2002 |38917 |0 |1 |2774A4|0 |2 |0 |
+ROW |143425 |2002 |38916 |0 |2 |F63100|0 |2 |0 |
+ROW |143426 |2002 |38918 |0 |3 |A54F10|0 |2 |0 |
+ROW |143427 |2191 |41746 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143428 |2191 |41749 |2 |1 |2774A4|0 |2 |0 |
+ROW |143429 |2191 |41748 |0 |2 |F63100|1 |2 |0 |
+ROW |143430 |2191 |41745 |0 |3 |A54F10|1 |2 |0 |
+ROW |143431 |2191 |41747 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143432 |2191 |41744 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143433 |2003 |38930 |0 |0 |969696|0 |9 |2 |
+ROW |143434 |2003 |38931 |0 |1 |C80000|0 |9 |0 |
+ROW |143435 |2004 |38905 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143436 |2006 |38967 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143437 |2007 |38973 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143438 |2007 |38971 |0 |1 |2774A4|0 |2 |0 |
+ROW |143439 |2007 |38970 |0 |2 |F63100|0 |2 |0 |
+ROW |143440 |2007 |38972 |0 |3 |A54F10|0 |2 |0 |
+ROW |143441 |2192 |41767 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143442 |2192 |41770 |2 |1 |2774A4|0 |2 |0 |
+ROW |143443 |2192 |41769 |0 |2 |F63100|1 |2 |0 |
+ROW |143444 |2192 |41766 |0 |3 |A54F10|1 |2 |0 |
+ROW |143445 |2192 |41768 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143446 |2192 |41765 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143447 |2008 |38984 |0 |0 |969696|0 |9 |2 |
+ROW |143448 |2008 |38985 |0 |1 |C80000|0 |9 |0 |
+ROW |143449 |2009 |38959 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143450 |2011 |39021 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143451 |2012 |39027 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143452 |2012 |39025 |0 |1 |2774A4|0 |2 |0 |
+ROW |143453 |2012 |39024 |0 |2 |F63100|0 |2 |0 |
+ROW |143454 |2012 |39026 |0 |3 |A54F10|0 |2 |0 |
+ROW |143455 |2193 |41788 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143456 |2193 |41791 |2 |1 |2774A4|0 |2 |0 |
+ROW |143457 |2193 |41790 |0 |2 |F63100|1 |2 |0 |
+ROW |143458 |2193 |41787 |0 |3 |A54F10|1 |2 |0 |
+ROW |143459 |2193 |41789 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143460 |2193 |41786 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143461 |2013 |39038 |0 |0 |969696|0 |9 |2 |
+ROW |143462 |2013 |39039 |0 |1 |C80000|0 |9 |0 |
+ROW |143463 |2014 |39013 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143464 |2016 |39075 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143465 |2017 |39081 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143466 |2017 |39079 |0 |1 |2774A4|0 |2 |0 |
+ROW |143467 |2017 |39078 |0 |2 |F63100|0 |2 |0 |
+ROW |143468 |2017 |39080 |0 |3 |A54F10|0 |2 |0 |
+ROW |143469 |2194 |41809 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143470 |2194 |41812 |2 |1 |2774A4|0 |2 |0 |
+ROW |143471 |2194 |41811 |0 |2 |F63100|1 |2 |0 |
+ROW |143472 |2194 |41808 |0 |3 |A54F10|1 |2 |0 |
+ROW |143473 |2194 |41810 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143474 |2194 |41807 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143475 |2018 |39092 |0 |0 |969696|0 |9 |2 |
+ROW |143476 |2018 |39093 |0 |1 |C80000|0 |9 |0 |
+ROW |143477 |2019 |39067 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143478 |2021 |39129 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143479 |2022 |39135 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143480 |2022 |39133 |0 |1 |2774A4|0 |2 |0 |
+ROW |143481 |2022 |39132 |0 |2 |F63100|0 |2 |0 |
+ROW |143482 |2022 |39134 |0 |3 |A54F10|0 |2 |0 |
+ROW |143483 |2195 |41830 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143484 |2195 |41833 |2 |1 |2774A4|0 |2 |0 |
+ROW |143485 |2195 |41832 |0 |2 |F63100|1 |2 |0 |
+ROW |143486 |2195 |41829 |0 |3 |A54F10|1 |2 |0 |
+ROW |143487 |2195 |41831 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143488 |2195 |41828 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143489 |2023 |39146 |0 |0 |969696|0 |9 |2 |
+ROW |143490 |2023 |39147 |0 |1 |C80000|0 |9 |0 |
+ROW |143491 |2024 |39121 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143492 |2026 |39183 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143493 |2027 |39189 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143494 |2027 |39187 |0 |1 |2774A4|0 |2 |0 |
+ROW |143495 |2027 |39186 |0 |2 |F63100|0 |2 |0 |
+ROW |143496 |2027 |39188 |0 |3 |A54F10|0 |2 |0 |
+ROW |143497 |2196 |41851 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143498 |2196 |41854 |2 |1 |2774A4|0 |2 |0 |
+ROW |143499 |2196 |41853 |0 |2 |F63100|1 |2 |0 |
+ROW |143500 |2196 |41850 |0 |3 |A54F10|1 |2 |0 |
+ROW |143501 |2196 |41852 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143502 |2196 |41849 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143503 |2028 |39200 |0 |0 |969696|0 |9 |2 |
+ROW |143504 |2028 |39201 |0 |1 |C80000|0 |9 |0 |
+ROW |143505 |2029 |39175 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143506 |2031 |39237 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143507 |2032 |39243 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143508 |2032 |39241 |0 |1 |2774A4|0 |2 |0 |
+ROW |143509 |2032 |39240 |0 |2 |F63100|0 |2 |0 |
+ROW |143510 |2032 |39242 |0 |3 |A54F10|0 |2 |0 |
+ROW |143511 |2197 |41872 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143512 |2197 |41875 |2 |1 |2774A4|0 |2 |0 |
+ROW |143513 |2197 |41874 |0 |2 |F63100|1 |2 |0 |
+ROW |143514 |2197 |41871 |0 |3 |A54F10|1 |2 |0 |
+ROW |143515 |2197 |41873 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143516 |2197 |41870 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143517 |2033 |39254 |0 |0 |969696|0 |9 |2 |
+ROW |143518 |2033 |39255 |0 |1 |C80000|0 |9 |0 |
+ROW |143519 |2034 |39229 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143520 |2036 |39291 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143521 |2037 |39297 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143522 |2037 |39295 |0 |1 |2774A4|0 |2 |0 |
+ROW |143523 |2037 |39294 |0 |2 |F63100|0 |2 |0 |
+ROW |143524 |2037 |39296 |0 |3 |A54F10|0 |2 |0 |
+ROW |143525 |2198 |41893 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143526 |2198 |41896 |2 |1 |2774A4|0 |2 |0 |
+ROW |143527 |2198 |41895 |0 |2 |F63100|1 |2 |0 |
+ROW |143528 |2198 |41892 |0 |3 |A54F10|1 |2 |0 |
+ROW |143529 |2198 |41894 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143530 |2198 |41891 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143531 |2038 |39308 |0 |0 |969696|0 |9 |2 |
+ROW |143532 |2038 |39309 |0 |1 |C80000|0 |9 |0 |
+ROW |143533 |2039 |39283 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143534 |2041 |39345 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143535 |2042 |39351 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143536 |2042 |39349 |0 |1 |2774A4|0 |2 |0 |
+ROW |143537 |2042 |39348 |0 |2 |F63100|0 |2 |0 |
+ROW |143538 |2042 |39350 |0 |3 |A54F10|0 |2 |0 |
+ROW |143539 |2199 |41914 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143540 |2199 |41917 |2 |1 |2774A4|0 |2 |0 |
+ROW |143541 |2199 |41916 |0 |2 |F63100|1 |2 |0 |
+ROW |143542 |2199 |41913 |0 |3 |A54F10|1 |2 |0 |
+ROW |143543 |2199 |41915 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143544 |2199 |41912 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143545 |2043 |39362 |0 |0 |969696|0 |9 |2 |
+ROW |143546 |2043 |39363 |0 |1 |C80000|0 |9 |0 |
+ROW |143547 |2044 |39337 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143548 |2046 |39399 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143549 |2047 |39405 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143550 |2047 |39403 |0 |1 |2774A4|0 |2 |0 |
+ROW |143551 |2047 |39402 |0 |2 |F63100|0 |2 |0 |
+ROW |143552 |2047 |39404 |0 |3 |A54F10|0 |2 |0 |
+ROW |143553 |2200 |41935 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143554 |2200 |41938 |2 |1 |2774A4|0 |2 |0 |
+ROW |143555 |2200 |41937 |0 |2 |F63100|1 |2 |0 |
+ROW |143556 |2200 |41934 |0 |3 |A54F10|1 |2 |0 |
+ROW |143557 |2200 |41936 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143558 |2200 |41933 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143559 |2048 |39416 |0 |0 |969696|0 |9 |2 |
+ROW |143560 |2048 |39417 |0 |1 |C80000|0 |9 |0 |
+ROW |143561 |2049 |39391 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143562 |2051 |39453 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143563 |2052 |39459 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143564 |2052 |39457 |0 |1 |2774A4|0 |2 |0 |
+ROW |143565 |2052 |39456 |0 |2 |F63100|0 |2 |0 |
+ROW |143566 |2052 |39458 |0 |3 |A54F10|0 |2 |0 |
+ROW |143567 |2201 |41956 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143568 |2201 |41959 |2 |1 |2774A4|0 |2 |0 |
+ROW |143569 |2201 |41958 |0 |2 |F63100|1 |2 |0 |
+ROW |143570 |2201 |41955 |0 |3 |A54F10|1 |2 |0 |
+ROW |143571 |2201 |41957 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143572 |2201 |41954 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143573 |2053 |39470 |0 |0 |969696|0 |9 |2 |
+ROW |143574 |2053 |39471 |0 |1 |C80000|0 |9 |0 |
+ROW |143575 |2054 |39445 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143576 |2056 |39507 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143577 |2057 |39513 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143578 |2057 |39511 |0 |1 |2774A4|0 |2 |0 |
+ROW |143579 |2057 |39510 |0 |2 |F63100|0 |2 |0 |
+ROW |143580 |2057 |39512 |0 |3 |A54F10|0 |2 |0 |
+ROW |143581 |2202 |41977 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143582 |2202 |41980 |2 |1 |2774A4|0 |2 |0 |
+ROW |143583 |2202 |41979 |0 |2 |F63100|1 |2 |0 |
+ROW |143584 |2202 |41976 |0 |3 |A54F10|1 |2 |0 |
+ROW |143585 |2202 |41978 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143586 |2202 |41975 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143587 |2058 |39524 |0 |0 |969696|0 |9 |2 |
+ROW |143588 |2058 |39525 |0 |1 |C80000|0 |9 |0 |
+ROW |143589 |2059 |39499 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143590 |2061 |39561 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143591 |2062 |39567 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143592 |2062 |39565 |0 |1 |2774A4|0 |2 |0 |
+ROW |143593 |2062 |39564 |0 |2 |F63100|0 |2 |0 |
+ROW |143594 |2062 |39566 |0 |3 |A54F10|0 |2 |0 |
+ROW |143595 |2203 |41998 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143596 |2203 |42001 |2 |1 |2774A4|0 |2 |0 |
+ROW |143597 |2203 |42000 |0 |2 |F63100|1 |2 |0 |
+ROW |143598 |2203 |41997 |0 |3 |A54F10|1 |2 |0 |
+ROW |143599 |2203 |41999 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143600 |2203 |41996 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143601 |2063 |39578 |0 |0 |969696|0 |9 |2 |
+ROW |143602 |2063 |39579 |0 |1 |C80000|0 |9 |0 |
+ROW |143603 |2064 |39553 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143604 |2066 |39615 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143605 |2067 |39621 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143606 |2067 |39619 |0 |1 |2774A4|0 |2 |0 |
+ROW |143607 |2067 |39618 |0 |2 |F63100|0 |2 |0 |
+ROW |143608 |2067 |39620 |0 |3 |A54F10|0 |2 |0 |
+ROW |143609 |2204 |42019 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143610 |2204 |42022 |2 |1 |2774A4|0 |2 |0 |
+ROW |143611 |2204 |42021 |0 |2 |F63100|1 |2 |0 |
+ROW |143612 |2204 |42018 |0 |3 |A54F10|1 |2 |0 |
+ROW |143613 |2204 |42020 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143614 |2204 |42017 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143615 |2068 |39632 |0 |0 |969696|0 |9 |2 |
+ROW |143616 |2068 |39633 |0 |1 |C80000|0 |9 |0 |
+ROW |143617 |2069 |39607 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143618 |2071 |39669 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143619 |2072 |39675 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143620 |2072 |39673 |0 |1 |2774A4|0 |2 |0 |
+ROW |143621 |2072 |39672 |0 |2 |F63100|0 |2 |0 |
+ROW |143622 |2072 |39674 |0 |3 |A54F10|0 |2 |0 |
+ROW |143623 |2205 |42040 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143624 |2205 |42043 |2 |1 |2774A4|0 |2 |0 |
+ROW |143625 |2205 |42042 |0 |2 |F63100|1 |2 |0 |
+ROW |143626 |2205 |42039 |0 |3 |A54F10|1 |2 |0 |
+ROW |143627 |2205 |42041 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143628 |2205 |42038 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143629 |2073 |39686 |0 |0 |969696|0 |9 |2 |
+ROW |143630 |2073 |39687 |0 |1 |C80000|0 |9 |0 |
+ROW |143631 |2074 |39661 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143632 |2076 |39723 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143633 |2077 |39729 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143634 |2077 |39727 |0 |1 |2774A4|0 |2 |0 |
+ROW |143635 |2077 |39726 |0 |2 |F63100|0 |2 |0 |
+ROW |143636 |2077 |39728 |0 |3 |A54F10|0 |2 |0 |
+ROW |143637 |2206 |42061 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143638 |2206 |42064 |2 |1 |2774A4|0 |2 |0 |
+ROW |143639 |2206 |42063 |0 |2 |F63100|1 |2 |0 |
+ROW |143640 |2206 |42060 |0 |3 |A54F10|1 |2 |0 |
+ROW |143641 |2206 |42062 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143642 |2206 |42059 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143643 |2078 |39740 |0 |0 |969696|0 |9 |2 |
+ROW |143644 |2078 |39741 |0 |1 |C80000|0 |9 |0 |
+ROW |143645 |2079 |39715 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143646 |724 |27904 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143647 |1396 |32439 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143648 |1396 |32437 |0 |1 |2774A4|0 |2 |0 |
+ROW |143649 |1396 |32436 |0 |2 |F63100|0 |2 |0 |
+ROW |143650 |1396 |32438 |0 |3 |A54F10|0 |2 |0 |
+ROW |143651 |2207 |42082 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143652 |2207 |42085 |2 |1 |2774A4|0 |2 |0 |
+ROW |143653 |2207 |42084 |0 |2 |F63100|1 |2 |0 |
+ROW |143654 |2207 |42081 |0 |3 |A54F10|1 |2 |0 |
+ROW |143655 |2207 |42083 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143656 |2207 |42080 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143657 |1052 |27907 |0 |0 |969696|0 |9 |2 |
+ROW |143658 |1052 |27908 |0 |1 |C80000|0 |9 |0 |
+ROW |143659 |1053 |30120 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143660 |1457 |33206 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143661 |1457 |33193 |5 |1 |2774A4|0 |2 |0 |
+ROW |143662 |1458 |33195 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143663 |1458 |33203 |5 |1 |2774A4|0 |2 |0 |
+ROW |143664 |1458 |33202 |5 |2 |F63100|0 |2 |0 |
+ROW |143665 |1459 |33200 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143666 |1459 |33194 |5 |1 |2774A4|0 |2 |0 |
+ROW |143667 |1460 |33187 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143668 |1460 |33186 |5 |1 |2774A4|0 |2 |0 |
+ROW |143669 |1460 |33204 |5 |2 |F63100|0 |2 |0 |
+ROW |143670 |1461 |33226 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143671 |1461 |33215 |5 |1 |2774A4|0 |2 |0 |
+ROW |143672 |1462 |33207 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143673 |1463 |33223 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143674 |1463 |33218 |5 |1 |2774A4|0 |2 |0 |
+ROW |143675 |1464 |33210 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143676 |1464 |33209 |5 |1 |2774A4|0 |2 |0 |
+ROW |143677 |1464 |33224 |5 |2 |F63100|0 |2 |0 |
+ROW |143678 |1465 |33249 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143679 |1465 |33236 |5 |1 |2774A4|0 |2 |0 |
+ROW |143680 |1466 |33238 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143681 |1466 |33246 |5 |1 |2774A4|0 |2 |0 |
+ROW |143682 |1466 |33245 |5 |2 |F63100|0 |2 |0 |
+ROW |143683 |1467 |33243 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143684 |1467 |33237 |5 |1 |2774A4|0 |2 |0 |
+ROW |143685 |1468 |33230 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143686 |1468 |33229 |5 |1 |2774A4|0 |2 |0 |
+ROW |143687 |1468 |33247 |5 |2 |F63100|0 |2 |0 |
+ROW |143688 |1469 |33258 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143689 |1470 |33251 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143690 |1471 |33256 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143691 |1472 |33277 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143692 |1473 |33274 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143693 |1473 |33273 |5 |1 |2774A4|0 |2 |0 |
+ROW |143694 |1473 |33272 |5 |2 |F63100|0 |2 |0 |
+ROW |143695 |1474 |33270 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143696 |1475 |33269 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143697 |1476 |33261 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143698 |1476 |33275 |5 |1 |2774A4|0 |2 |0 |
+ROW |143699 |1477 |33296 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143700 |1478 |33293 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143701 |1478 |33292 |5 |1 |2774A4|0 |2 |0 |
+ROW |143702 |1478 |33291 |5 |2 |F63100|0 |2 |0 |
+ROW |143703 |1479 |33289 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143704 |1480 |33288 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143705 |1481 |33280 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143706 |1481 |33294 |5 |1 |2774A4|0 |2 |0 |
+ROW |143707 |1482 |33312 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143708 |1483 |33313 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143709 |1484 |33314 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143710 |1485 |33319 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143711 |1486 |33320 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143712 |1487 |33304 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143713 |1487 |33305 |5 |1 |2774A4|0 |2 |0 |
+ROW |143714 |2208 |42103 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143715 |2208 |42106 |2 |1 |2774A4|0 |2 |0 |
+ROW |143716 |2208 |42105 |0 |2 |F63100|1 |2 |0 |
+ROW |143717 |2208 |42102 |0 |3 |A54F10|1 |2 |0 |
+ROW |143718 |2208 |42104 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143719 |2208 |42101 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143720 |727 |27936 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143721 |1054 |27935 |2 |0 |1A7C11|0 |2 |0 |
+ROW |143722 |1054 |30122 |5 |1 |2774A4|0 |2 |0 |
+ROW |143723 |1055 |30123 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143724 |2209 |42125 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143725 |2209 |42128 |2 |1 |2774A4|0 |2 |0 |
+ROW |143726 |2209 |42127 |0 |2 |F63100|1 |2 |0 |
+ROW |143727 |2209 |42124 |0 |3 |A54F10|1 |2 |0 |
+ROW |143728 |2209 |42126 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143729 |2209 |42123 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143730 |730 |27975 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143731 |1056 |30126 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143732 |733 |28003 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143733 |1057 |30131 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143734 |2210 |42147 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143735 |2210 |42150 |2 |1 |2774A4|0 |2 |0 |
+ROW |143736 |2210 |42149 |0 |2 |F63100|1 |2 |0 |
+ROW |143737 |2210 |42146 |0 |3 |A54F10|1 |2 |0 |
+ROW |143738 |2210 |42148 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143739 |2210 |42145 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143740 |2211 |42168 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143741 |2211 |42171 |2 |1 |2774A4|0 |2 |0 |
+ROW |143742 |2211 |42170 |0 |2 |F63100|1 |2 |0 |
+ROW |143743 |2211 |42167 |0 |3 |A54F10|1 |2 |0 |
+ROW |143744 |2211 |42169 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |143745 |2211 |42166 |0 |5 |6C59DC|1 |2 |0 |
+ROW |143746 |736 |28031 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143747 |1058 |30136 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143748 |2080 |39768 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143749 |2080 |39769 |0 |1 |2774A4|0 |2 |0 |
+ROW |143750 |2080 |39770 |0 |2 |F63100|0 |2 |0 |
+ROW |143751 |2080 |39771 |0 |3 |A54F10|0 |2 |0 |
+ROW |143752 |2081 |39772 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143753 |2081 |39773 |0 |1 |2774A4|0 |2 |0 |
+ROW |143754 |2082 |39774 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143755 |2082 |39775 |0 |1 |2774A4|0 |2 |0 |
+ROW |143756 |2082 |39780 |0 |2 |F63100|0 |2 |0 |
+ROW |143757 |2083 |39777 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143758 |2083 |39778 |0 |1 |2774A4|0 |2 |0 |
+ROW |143759 |2083 |39781 |0 |2 |F63100|0 |2 |0 |
+ROW |143760 |2084 |39792 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143761 |2084 |39790 |0 |1 |2774A4|0 |2 |0 |
+ROW |143762 |2084 |39793 |0 |2 |F63100|0 |2 |0 |
+ROW |143763 |2084 |39795 |0 |3 |A54F10|0 |2 |0 |
+ROW |143764 |2084 |39796 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143765 |1701 |35553 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143766 |1701 |35556 |0 |1 |2774A4|0 |2 |0 |
+ROW |143767 |1702 |35558 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143768 |1702 |35561 |0 |1 |2774A4|0 |2 |0 |
+ROW |143769 |1703 |35562 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143770 |1704 |35563 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143771 |1705 |35592 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143772 |1705 |35584 |0 |1 |2774A4|0 |2 |0 |
+ROW |143773 |1705 |35594 |0 |2 |F63100|0 |2 |0 |
+ROW |143774 |1705 |35586 |0 |3 |A54F10|0 |2 |0 |
+ROW |143775 |1705 |35595 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143776 |1705 |35587 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143777 |1706 |35593 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143778 |1706 |35585 |0 |1 |2774A4|0 |2 |0 |
+ROW |143779 |1707 |35583 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143780 |1707 |35591 |0 |1 |2774A4|0 |2 |0 |
+ROW |143781 |1708 |35598 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143782 |1709 |35606 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143783 |1710 |35607 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143784 |1711 |35566 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143785 |1712 |35622 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143786 |1713 |35634 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143787 |1713 |35626 |0 |1 |2774A4|0 |2 |0 |
+ROW |143788 |1713 |35636 |0 |2 |F63100|0 |2 |0 |
+ROW |143789 |1713 |35628 |0 |3 |A54F10|0 |2 |0 |
+ROW |143790 |1713 |35637 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143791 |1713 |35629 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143792 |1714 |35635 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143793 |1714 |35627 |0 |1 |2774A4|0 |2 |0 |
+ROW |143794 |1715 |35625 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143795 |1715 |35633 |0 |1 |2774A4|0 |2 |0 |
+ROW |143796 |1716 |35640 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143797 |1717 |35641 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143798 |1718 |35610 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143799 |1719 |35658 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143800 |1720 |35659 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143801 |1721 |35660 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143802 |1722 |35661 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143803 |1723 |35669 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143804 |1723 |35679 |0 |1 |2774A4|0 |2 |0 |
+ROW |143805 |1723 |35670 |0 |2 |F63100|0 |2 |0 |
+ROW |143806 |1723 |35665 |0 |3 |A54F10|0 |2 |0 |
+ROW |143807 |1723 |35672 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143808 |1723 |35666 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143809 |1724 |35663 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143810 |1724 |35664 |0 |1 |2774A4|0 |2 |0 |
+ROW |143811 |1725 |35686 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143812 |1725 |35693 |0 |1 |2774A4|0 |2 |0 |
+ROW |143813 |1725 |35684 |0 |2 |F63100|0 |2 |0 |
+ROW |143814 |1725 |35691 |0 |3 |A54F10|0 |2 |0 |
+ROW |143815 |1725 |35683 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143816 |1725 |35690 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143817 |1726 |35685 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143818 |1726 |35692 |0 |1 |2774A4|0 |2 |0 |
+ROW |143819 |1727 |35694 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143820 |1727 |35687 |0 |1 |2774A4|0 |2 |0 |
+ROW |143821 |1728 |35707 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143822 |1729 |35708 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143823 |1730 |35725 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143824 |1731 |35726 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143825 |1732 |35727 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143826 |1733 |35728 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143827 |1734 |35736 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143828 |1734 |35746 |0 |1 |2774A4|0 |2 |0 |
+ROW |143829 |1734 |35737 |0 |2 |F63100|0 |2 |0 |
+ROW |143830 |1734 |35732 |0 |3 |A54F10|0 |2 |0 |
+ROW |143831 |1734 |35739 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143832 |1734 |35733 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143833 |1735 |35730 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143834 |1735 |35731 |0 |1 |2774A4|0 |2 |0 |
+ROW |143835 |1736 |35753 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143836 |1736 |35760 |0 |1 |2774A4|0 |2 |0 |
+ROW |143837 |1736 |35751 |0 |2 |F63100|0 |2 |0 |
+ROW |143838 |1736 |35758 |0 |3 |A54F10|0 |2 |0 |
+ROW |143839 |1736 |35750 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143840 |1736 |35757 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143841 |1737 |35752 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143842 |1737 |35759 |0 |1 |2774A4|0 |2 |0 |
+ROW |143843 |1738 |35761 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143844 |1738 |35754 |0 |1 |2774A4|0 |2 |0 |
+ROW |143845 |1739 |35774 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143846 |1740 |35775 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143847 |1741 |35791 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143848 |1742 |35799 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143849 |1742 |35802 |0 |1 |2774A4|0 |2 |0 |
+ROW |143850 |1743 |35804 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143851 |1743 |35807 |0 |1 |2774A4|0 |2 |0 |
+ROW |143852 |1744 |35808 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143853 |1745 |35809 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143854 |1746 |35834 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143855 |1746 |35826 |0 |1 |2774A4|0 |2 |0 |
+ROW |143856 |1746 |35836 |0 |2 |F63100|0 |2 |0 |
+ROW |143857 |1746 |35828 |0 |3 |A54F10|0 |2 |0 |
+ROW |143858 |1746 |35837 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143859 |1746 |35829 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143860 |1747 |35835 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143861 |1747 |35827 |0 |1 |2774A4|0 |2 |0 |
+ROW |143862 |1748 |35825 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143863 |1748 |35833 |0 |1 |2774A4|0 |2 |0 |
+ROW |143864 |1749 |35840 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143865 |1750 |35812 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143866 |1751 |35876 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143867 |1751 |35868 |0 |1 |2774A4|0 |2 |0 |
+ROW |143868 |1751 |35878 |0 |2 |F63100|0 |2 |0 |
+ROW |143869 |1751 |35870 |0 |3 |A54F10|0 |2 |0 |
+ROW |143870 |1751 |35879 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143871 |1751 |35871 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143872 |1752 |35877 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143873 |1752 |35869 |0 |1 |2774A4|0 |2 |0 |
+ROW |143874 |1753 |35867 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143875 |1753 |35875 |0 |1 |2774A4|0 |2 |0 |
+ROW |143876 |1754 |35882 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143877 |1755 |35890 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143878 |1756 |35891 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143879 |1757 |35850 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143880 |1758 |35920 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143881 |1758 |35912 |0 |1 |2774A4|0 |2 |0 |
+ROW |143882 |1758 |35922 |0 |2 |F63100|0 |2 |0 |
+ROW |143883 |1758 |35914 |0 |3 |A54F10|0 |2 |0 |
+ROW |143884 |1758 |35923 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143885 |1758 |35915 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143886 |1759 |35921 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143887 |1759 |35913 |0 |1 |2774A4|0 |2 |0 |
+ROW |143888 |1760 |35911 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143889 |1760 |35919 |0 |1 |2774A4|0 |2 |0 |
+ROW |143890 |1761 |35926 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143891 |1762 |35934 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143892 |1763 |35935 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143893 |1764 |35894 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143894 |1765 |35952 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143895 |1766 |35964 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143896 |1766 |35956 |0 |1 |2774A4|0 |2 |0 |
+ROW |143897 |1766 |35966 |0 |2 |F63100|0 |2 |0 |
+ROW |143898 |1766 |35958 |0 |3 |A54F10|0 |2 |0 |
+ROW |143899 |1766 |35967 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143900 |1766 |35959 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143901 |1767 |35965 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143902 |1767 |35957 |0 |1 |2774A4|0 |2 |0 |
+ROW |143903 |1768 |35955 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143904 |1768 |35963 |0 |1 |2774A4|0 |2 |0 |
+ROW |143905 |1769 |35970 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143906 |1770 |35978 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143907 |1771 |35979 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143908 |1772 |35938 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143909 |1773 |35996 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143910 |1774 |36008 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143911 |1774 |36000 |0 |1 |2774A4|0 |2 |0 |
+ROW |143912 |1774 |36010 |0 |2 |F63100|0 |2 |0 |
+ROW |143913 |1774 |36002 |0 |3 |A54F10|0 |2 |0 |
+ROW |143914 |1774 |36011 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143915 |1774 |36003 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143916 |1775 |36009 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143917 |1775 |36001 |0 |1 |2774A4|0 |2 |0 |
+ROW |143918 |1776 |35999 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143919 |1776 |36007 |0 |1 |2774A4|0 |2 |0 |
+ROW |143920 |1777 |36014 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143921 |1778 |36022 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143922 |1779 |36023 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143923 |1780 |35982 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143924 |1781 |36041 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143925 |1782 |36053 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143926 |1782 |36045 |0 |1 |2774A4|0 |2 |0 |
+ROW |143927 |1782 |36055 |0 |2 |F63100|0 |2 |0 |
+ROW |143928 |1782 |36047 |0 |3 |A54F10|0 |2 |0 |
+ROW |143929 |1782 |36056 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143930 |1782 |36048 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143931 |1783 |36054 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143932 |1783 |36046 |0 |1 |2774A4|0 |2 |0 |
+ROW |143933 |1784 |36044 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143934 |1784 |36052 |0 |1 |2774A4|0 |2 |0 |
+ROW |143935 |1785 |36059 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143936 |1786 |36067 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143937 |1787 |36068 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143938 |1788 |36026 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143939 |1789 |36086 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143940 |1790 |36098 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143941 |1790 |36090 |0 |1 |2774A4|0 |2 |0 |
+ROW |143942 |1790 |36100 |0 |2 |F63100|0 |2 |0 |
+ROW |143943 |1790 |36092 |0 |3 |A54F10|0 |2 |0 |
+ROW |143944 |1790 |36101 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143945 |1790 |36093 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143946 |1791 |36099 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143947 |1791 |36091 |0 |1 |2774A4|0 |2 |0 |
+ROW |143948 |1792 |36089 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143949 |1792 |36097 |0 |1 |2774A4|0 |2 |0 |
+ROW |143950 |1793 |36104 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143951 |1794 |36112 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143952 |1795 |36113 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143953 |1796 |36071 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143954 |1797 |36131 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143955 |1798 |36144 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143956 |1798 |36136 |0 |1 |2774A4|0 |2 |0 |
+ROW |143957 |1798 |36146 |0 |2 |F63100|0 |2 |0 |
+ROW |143958 |1798 |36138 |0 |3 |A54F10|0 |2 |0 |
+ROW |143959 |1798 |36147 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143960 |1798 |36139 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143961 |1799 |36145 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143962 |1799 |36137 |0 |1 |2774A4|0 |2 |0 |
+ROW |143963 |1800 |36135 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143964 |1800 |36143 |0 |1 |2774A4|0 |2 |0 |
+ROW |143965 |1801 |36150 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143966 |1802 |36158 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143967 |1803 |36159 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143968 |1804 |36116 |5 |0 |1A7C11|0 |2 |0 |
+ROW |143969 |472 |22945 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143970 |472 |22946 |0 |1 |2774A4|0 |2 |0 |
+ROW |143971 |473 |22950 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143972 |473 |22948 |0 |1 |2774A4|0 |2 |0 |
+ROW |143973 |471 |22924 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143974 |471 |22920 |0 |1 |2774A4|0 |2 |0 |
+ROW |143975 |469 |22922 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143976 |469 |22923 |0 |1 |2774A4|0 |2 |0 |
+ROW |143977 |469 |22921 |0 |2 |F63100|0 |2 |0 |
+ROW |143978 |498 |23109 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143979 |498 |23112 |0 |1 |2774A4|0 |2 |0 |
+ROW |143980 |498 |23115 |0 |2 |F63100|0 |2 |0 |
+ROW |143981 |498 |23113 |0 |3 |A54F10|0 |2 |0 |
+ROW |143982 |498 |23114 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |143983 |498 |23110 |0 |5 |6C59DC|0 |2 |0 |
+ROW |143984 |540 |22942 |0 |0 |1A7C11|0 |2 |0 |
+ROW |143985 |492 |23073 |5 |0 |00AA00|0 |2 |0 |
+ROW |143986 |492 |23074 |5 |1 |3333FF|0 |2 |0 |
+ROW |143987 |467 |22910 |0 |0 |C80000|0 |2 |2 |
+ROW |143988 |467 |22908 |0 |1 |00C800|0 |2 |0 |
+ROW |143989 |465 |22884 |0 |0 |009900|0 |2 |0 |
+ROW |143990 |465 |22880 |0 |1 |000099|0 |2 |0 |
+ROW |143991 |463 |22882 |0 |0 |009900|0 |2 |0 |
+ROW |143992 |463 |22883 |0 |1 |000099|0 |2 |0 |
+ROW |143993 |463 |22881 |0 |2 |990000|0 |2 |0 |
+ROW |143994 |462 |22886 |1 |0 |009999|0 |2 |0 |
+ROW |143995 |462 |22888 |1 |1 |990099|0 |2 |0 |
+ROW |143996 |462 |22891 |1 |2 |990000|0 |2 |0 |
+ROW |143997 |462 |22892 |1 |3 |000099|0 |2 |0 |
+ROW |143998 |462 |22885 |1 |4 |009900|0 |2 |0 |
+ROW |143999 |541 |22902 |5 |0 |00C800|0 |2 |0 |
+ROW |144000 |464 |22897 |0 |0 |AA0000|0 |2 |2 |
+ROW |144001 |464 |22895 |0 |1 |00AA00|0 |2 |0 |
+ROW |144002 |478 |22985 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144003 |478 |22986 |0 |1 |2774A4|0 |2 |0 |
+ROW |144004 |479 |22990 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144005 |479 |22988 |0 |1 |2774A4|0 |2 |0 |
+ROW |144006 |475 |22962 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144007 |475 |22963 |0 |1 |2774A4|0 |2 |0 |
+ROW |144008 |475 |22961 |0 |2 |F63100|0 |2 |0 |
+ROW |144009 |474 |22968 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144010 |474 |22971 |0 |1 |2774A4|0 |2 |0 |
+ROW |144011 |474 |22972 |0 |2 |F63100|0 |2 |0 |
+ROW |144012 |474 |22965 |0 |3 |A54F10|0 |2 |0 |
+ROW |144013 |542 |22982 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144014 |2212 |42279 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144015 |2212 |42282 |2 |1 |2774A4|0 |2 |0 |
+ROW |144016 |2212 |42281 |0 |2 |F63100|1 |2 |0 |
+ROW |144017 |2212 |42278 |0 |3 |A54F10|1 |2 |0 |
+ROW |144018 |2212 |42280 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144019 |2212 |42277 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144020 |2213 |42285 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144021 |2213 |42286 |5 |1 |2774A4|0 |2 |0 |
+ROW |144022 |2214 |42308 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144023 |2214 |42311 |5 |1 |2774A4|0 |2 |0 |
+ROW |144024 |2215 |42307 |0 |0 |1A7C11|1 |2 |0 |
+ROW |144025 |2215 |42310 |5 |1 |2774A4|0 |2 |0 |
+ROW |144026 |2216 |42290 |0 |0 |969696|0 |9 |2 |
+ROW |144027 |2216 |42291 |0 |1 |C80000|0 |9 |0 |
+ROW |144028 |2222 |42221 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144029 |2222 |42216 |0 |1 |2774A4|0 |2 |0 |
+ROW |144030 |2223 |42189 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144031 |2223 |42190 |0 |1 |2774A4|0 |2 |0 |
+ROW |144032 |2223 |42208 |0 |2 |F63100|0 |2 |0 |
+ROW |144033 |2223 |42218 |0 |3 |A54F10|0 |2 |0 |
+ROW |144034 |2223 |42206 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |144035 |2223 |42225 |0 |5 |6C59DC|0 |2 |0 |
+ROW |144036 |2223 |42207 |0 |6 |AC8C14|0 |2 |0 |
+ROW |144037 |2223 |42222 |0 |7 |611F27|0 |2 |0 |
+ROW |144038 |2223 |42223 |0 |8 |F230E0|0 |2 |0 |
+ROW |144039 |2224 |42267 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144040 |2225 |42205 |2 |0 |1A7C11|0 |2 |0 |
+ROW |144041 |2225 |42203 |5 |1 |2774A4|0 |2 |0 |
+ROW |144042 |2226 |42268 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144043 |2227 |42213 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144044 |2227 |42214 |0 |1 |2774A4|0 |2 |0 |
+ROW |144045 |2227 |42212 |0 |2 |F63100|0 |2 |0 |
+ROW |144046 |2228 |42188 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144047 |2228 |42198 |0 |1 |2774A4|0 |2 |0 |
+ROW |144048 |2229 |42209 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144049 |2229 |42217 |0 |1 |2774A4|0 |2 |0 |
+ROW |144050 |2229 |42219 |0 |2 |F63100|0 |2 |0 |
+ROW |144051 |2229 |42220 |0 |3 |A54F10|1 |2 |0 |
+ROW |144052 |2238 |42365 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144053 |2238 |42368 |2 |1 |2774A4|0 |2 |0 |
+ROW |144054 |2238 |42367 |0 |2 |F63100|1 |2 |0 |
+ROW |144055 |2238 |42364 |0 |3 |A54F10|1 |2 |0 |
+ROW |144056 |2238 |42366 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144057 |2238 |42363 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144058 |2239 |42371 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144059 |2239 |42372 |5 |1 |2774A4|0 |2 |0 |
+ROW |144060 |2240 |42379 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144061 |2240 |42382 |5 |1 |2774A4|0 |2 |0 |
+ROW |144062 |2241 |42378 |0 |0 |1A7C11|1 |2 |0 |
+ROW |144063 |2241 |42381 |5 |1 |2774A4|0 |2 |0 |
+ROW |144064 |2242 |42376 |0 |0 |969696|0 |9 |2 |
+ROW |144065 |2242 |42377 |0 |1 |C80000|0 |9 |0 |
+ROW |144066 |2243 |42353 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144067 |2243 |42348 |0 |1 |2774A4|0 |2 |0 |
+ROW |144068 |2244 |42321 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144069 |2244 |42322 |0 |1 |2774A4|0 |2 |0 |
+ROW |144070 |2244 |42339 |0 |2 |F63100|0 |2 |0 |
+ROW |144071 |2244 |42350 |0 |3 |A54F10|0 |2 |0 |
+ROW |144072 |2244 |42338 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |144073 |2244 |42357 |0 |5 |6C59DC|0 |2 |0 |
+ROW |144074 |2244 |42329 |0 |6 |AC8C14|0 |2 |0 |
+ROW |144075 |2244 |42354 |0 |7 |611F27|0 |2 |0 |
+ROW |144076 |2244 |42355 |0 |8 |F230E0|0 |2 |0 |
+ROW |144077 |2245 |42358 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144078 |2246 |42337 |2 |0 |1A7C11|0 |2 |0 |
+ROW |144079 |2246 |42335 |5 |1 |2774A4|0 |2 |0 |
+ROW |144080 |2247 |42359 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144081 |2248 |42345 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144082 |2248 |42346 |0 |1 |2774A4|0 |2 |0 |
+ROW |144083 |2248 |42344 |0 |2 |F63100|0 |2 |0 |
+ROW |144084 |2249 |42320 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144085 |2249 |42330 |0 |1 |2774A4|0 |2 |0 |
+ROW |144086 |2250 |42341 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144087 |2250 |42349 |0 |1 |2774A4|0 |2 |0 |
+ROW |144088 |2250 |42351 |0 |2 |F63100|0 |2 |0 |
+ROW |144089 |2250 |42352 |0 |3 |A54F10|1 |2 |0 |
+ROW |144090 |952 |29436 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144091 |952 |29437 |2 |1 |2774A4|0 |2 |0 |
+ROW |144092 |952 |29438 |0 |2 |F63100|1 |2 |0 |
+ROW |144093 |952 |29439 |0 |3 |A54F10|1 |2 |0 |
+ROW |144094 |952 |29441 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144095 |952 |29440 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144096 |955 |29434 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144097 |955 |29435 |5 |1 |2774A4|0 |2 |0 |
+ROW |144098 |954 |29448 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144099 |954 |29449 |5 |1 |2774A4|0 |2 |0 |
+ROW |144100 |956 |29452 |0 |0 |1A7C11|1 |2 |0 |
+ROW |144101 |956 |29453 |5 |1 |2774A4|0 |2 |0 |
+ROW |144102 |953 |29446 |0 |0 |969696|0 |9 |2 |
+ROW |144103 |953 |29432 |0 |1 |C80000|0 |9 |0 |
+ROW |144104 |960 |29405 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144105 |960 |29406 |0 |1 |2774A4|0 |2 |0 |
+ROW |144106 |959 |29426 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144107 |959 |29413 |0 |1 |2774A4|0 |2 |0 |
+ROW |144108 |959 |29411 |0 |2 |F63100|0 |2 |0 |
+ROW |144109 |959 |29410 |0 |3 |A54F10|0 |2 |0 |
+ROW |144110 |959 |29399 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |144111 |959 |29409 |0 |5 |6C59DC|0 |2 |0 |
+ROW |144112 |959 |29412 |0 |6 |AC8C14|0 |2 |0 |
+ROW |144113 |959 |29408 |0 |7 |611F27|0 |2 |0 |
+ROW |144114 |959 |29407 |0 |8 |F230E0|0 |2 |0 |
+ROW |144115 |958 |29427 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144116 |962 |29403 |2 |0 |1A7C11|0 |2 |0 |
+ROW |144117 |962 |29402 |5 |1 |2774A4|0 |2 |0 |
+ROW |144118 |961 |29396 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144119 |963 |29400 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144120 |963 |29401 |0 |1 |2774A4|0 |2 |0 |
+ROW |144121 |957 |29420 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144122 |957 |29419 |0 |1 |2774A4|0 |2 |0 |
+ROW |144123 |957 |29418 |0 |2 |F63100|0 |2 |0 |
+ROW |144124 |957 |29417 |0 |3 |A54F10|1 |2 |0 |
+ROW |144125 |2251 |42423 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144126 |2251 |42424 |0 |1 |2774A4|0 |2 |0 |
+ROW |144127 |2251 |42420 |0 |2 |F63100|0 |2 |0 |
+ROW |144128 |2251 |42419 |0 |3 |A54F10|0 |2 |0 |
+ROW |144129 |2251 |42422 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |144130 |2251 |42418 |0 |5 |6C59DC|0 |2 |0 |
+ROW |144131 |2251 |42421 |0 |6 |AC8C14|0 |2 |0 |
+ROW |144132 |2251 |42415 |0 |7 |611F27|0 |2 |0 |
+ROW |144133 |2251 |42416 |0 |8 |F230E0|0 |2 |0 |
+ROW |144134 |2252 |42442 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144135 |2253 |42427 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144136 |2253 |42430 |2 |1 |2774A4|0 |2 |0 |
+ROW |144137 |2253 |42429 |0 |2 |F63100|1 |2 |0 |
+ROW |144138 |2253 |42426 |0 |3 |A54F10|1 |2 |0 |
+ROW |144139 |2253 |42428 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144140 |2253 |42425 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144141 |2254 |42435 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144142 |2254 |42437 |5 |1 |2774A4|0 |2 |0 |
+ROW |144143 |2255 |42440 |0 |0 |969696|0 |9 |2 |
+ROW |144144 |2255 |42441 |0 |1 |C80000|0 |9 |0 |
+ROW |144145 |2256 |42400 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144146 |2256 |42405 |0 |1 |2774A4|0 |2 |0 |
+ROW |144147 |2257 |42387 |2 |0 |1A7C11|0 |2 |0 |
+ROW |144148 |2257 |42391 |5 |1 |2774A4|0 |2 |0 |
+ROW |144149 |2258 |42386 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144150 |2259 |42395 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144151 |2259 |42393 |0 |1 |2774A4|0 |2 |0 |
+ROW |144152 |2260 |42404 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144153 |2260 |42403 |0 |1 |2774A4|0 |2 |0 |
+ROW |144154 |2260 |42402 |0 |2 |F63100|0 |2 |0 |
+ROW |144155 |2260 |42401 |0 |3 |A54F10|1 |2 |0 |
+ROW |144156 |491 |23070 |0 |0 |C80000|0 |2 |2 |
+ROW |144157 |491 |23068 |0 |1 |00C800|0 |2 |0 |
+ROW |144158 |487 |23042 |0 |0 |009900|0 |2 |0 |
+ROW |144159 |487 |23043 |0 |1 |000099|0 |2 |0 |
+ROW |144160 |487 |23041 |0 |2 |990000|0 |2 |0 |
+ROW |144161 |543 |23062 |5 |0 |00C800|0 |2 |0 |
+ROW |144162 |494 |23077 |5 |0 |00AA00|0 |2 |0 |
+ROW |144163 |494 |23078 |5 |1 |3333FF|0 |2 |0 |
+ROW |144164 |493 |23075 |5 |0 |00AA00|0 |2 |0 |
+ROW |144165 |493 |23076 |5 |1 |3333FF|0 |2 |0 |
+ROW |144166 |461 |22870 |0 |0 |C80000|0 |2 |2 |
+ROW |144167 |461 |22868 |0 |1 |00C800|0 |2 |0 |
+ROW |144168 |459 |22844 |0 |0 |009900|0 |2 |0 |
+ROW |144169 |459 |22840 |0 |1 |000099|0 |2 |0 |
+ROW |144170 |457 |22842 |0 |0 |009900|0 |2 |0 |
+ROW |144171 |457 |22843 |0 |1 |000099|0 |2 |0 |
+ROW |144172 |457 |22841 |0 |2 |990000|0 |2 |0 |
+ROW |144173 |456 |22846 |1 |0 |009999|0 |2 |0 |
+ROW |144174 |456 |22848 |1 |1 |990099|0 |2 |0 |
+ROW |144175 |456 |22851 |1 |2 |990000|0 |2 |0 |
+ROW |144176 |456 |22852 |1 |3 |000099|0 |2 |0 |
+ROW |144177 |456 |22845 |1 |4 |009900|0 |2 |0 |
+ROW |144178 |544 |22862 |5 |0 |00C800|0 |2 |0 |
+ROW |144179 |458 |22857 |0 |0 |AA0000|0 |2 |2 |
+ROW |144180 |458 |22855 |0 |1 |00AA00|0 |2 |0 |
+ROW |144181 |484 |23025 |5 |0 |00AA00|0 |2 |0 |
+ROW |144182 |484 |23026 |5 |1 |3333FF|0 |2 |0 |
+ROW |144183 |485 |23030 |0 |0 |C80000|0 |2 |2 |
+ROW |144184 |485 |23028 |0 |1 |00C800|0 |2 |0 |
+ROW |144185 |483 |23004 |0 |0 |009900|0 |2 |0 |
+ROW |144186 |483 |23000 |0 |1 |000099|0 |2 |0 |
+ROW |144187 |481 |23002 |0 |0 |009900|0 |2 |0 |
+ROW |144188 |481 |23003 |0 |1 |000099|0 |2 |0 |
+ROW |144189 |481 |23001 |0 |2 |990000|0 |2 |0 |
+ROW |144190 |480 |23007 |1 |0 |999900|0 |2 |0 |
+ROW |144191 |480 |23011 |1 |1 |990000|0 |2 |0 |
+ROW |144192 |480 |23012 |1 |2 |000099|0 |2 |0 |
+ROW |144193 |480 |23005 |1 |3 |009900|0 |2 |0 |
+ROW |144194 |545 |23022 |5 |0 |00C800|0 |2 |0 |
+ROW |144195 |482 |23017 |0 |0 |AA0000|0 |2 |2 |
+ROW |144196 |482 |23015 |0 |1 |00AA00|0 |2 |0 |
+ROW |144197 |2261 |42493 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144198 |2261 |42496 |2 |1 |2774A4|0 |2 |0 |
+ROW |144199 |2261 |42495 |0 |2 |F63100|1 |2 |0 |
+ROW |144200 |2261 |42492 |0 |3 |A54F10|1 |2 |0 |
+ROW |144201 |2261 |42494 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144202 |2261 |42491 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144203 |2262 |42498 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144204 |2262 |42501 |0 |1 |2774A4|0 |2 |0 |
+ROW |144205 |2263 |42499 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144206 |2263 |42500 |5 |1 |2774A4|0 |2 |0 |
+ROW |144207 |2264 |42503 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144208 |2264 |42504 |5 |1 |2774A4|0 |2 |0 |
+ROW |144209 |2265 |42502 |0 |0 |1A7C11|1 |2 |0 |
+ROW |144210 |2265 |42497 |5 |1 |2774A4|0 |2 |0 |
+ROW |144211 |2266 |42507 |0 |0 |969696|0 |9 |2 |
+ROW |144212 |2266 |42508 |0 |1 |C80000|0 |9 |0 |
+ROW |144213 |2267 |42473 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144214 |2267 |42476 |0 |1 |2774A4|0 |2 |0 |
+ROW |144215 |2268 |42474 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144216 |2268 |42475 |0 |1 |2774A4|0 |2 |0 |
+ROW |144217 |2269 |42469 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144218 |2270 |42459 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144219 |2271 |42465 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144220 |2271 |42464 |0 |1 |2774A4|0 |2 |0 |
+ROW |144221 |2272 |42549 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144222 |2272 |42552 |2 |1 |2774A4|0 |2 |0 |
+ROW |144223 |2272 |42551 |0 |2 |F63100|1 |2 |0 |
+ROW |144224 |2272 |42548 |0 |3 |A54F10|1 |2 |0 |
+ROW |144225 |2272 |42550 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144226 |2272 |42547 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144227 |2273 |42554 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144228 |2273 |42557 |0 |1 |2774A4|0 |2 |0 |
+ROW |144229 |2274 |42555 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144230 |2274 |42556 |5 |1 |2774A4|0 |2 |0 |
+ROW |144231 |2275 |42559 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144232 |2275 |42560 |5 |1 |2774A4|0 |2 |0 |
+ROW |144233 |2276 |42558 |0 |0 |1A7C11|1 |2 |0 |
+ROW |144234 |2276 |42553 |5 |1 |2774A4|0 |2 |0 |
+ROW |144235 |2277 |42563 |0 |0 |969696|0 |9 |2 |
+ROW |144236 |2277 |42564 |0 |1 |C80000|0 |9 |0 |
+ROW |144237 |2278 |42529 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144238 |2278 |42532 |0 |1 |2774A4|0 |2 |0 |
+ROW |144239 |2279 |42530 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144240 |2279 |42531 |0 |1 |2774A4|0 |2 |0 |
+ROW |144241 |2280 |42525 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144242 |2281 |42515 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144243 |2282 |42521 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144244 |2282 |42520 |0 |1 |2774A4|0 |2 |0 |
+ROW |144245 |2283 |42585 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144246 |2283 |42588 |2 |1 |2774A4|0 |2 |0 |
+ROW |144247 |2283 |42587 |0 |2 |F63100|1 |2 |0 |
+ROW |144248 |2283 |42584 |0 |3 |A54F10|1 |2 |0 |
+ROW |144249 |2283 |42586 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144250 |2283 |42583 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144251 |2284 |42593 |0 |0 |969696|0 |9 |2 |
+ROW |144252 |2284 |42594 |0 |1 |C80000|0 |9 |0 |
+ROW |144253 |2285 |42597 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144254 |2286 |42573 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144255 |1583 |34451 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144256 |1584 |34465 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144257 |1584 |34463 |0 |1 |2774A4|0 |2 |0 |
+ROW |144258 |1585 |34466 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144259 |1585 |34462 |0 |1 |2774A4|0 |2 |0 |
+ROW |144260 |1586 |34499 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144261 |1587 |34513 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144262 |1587 |34511 |0 |1 |2774A4|0 |2 |0 |
+ROW |144263 |1588 |34514 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144264 |1588 |34510 |0 |1 |2774A4|0 |2 |0 |
+ROW |144265 |1589 |34547 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144266 |1590 |34561 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144267 |1590 |34559 |0 |1 |2774A4|0 |2 |0 |
+ROW |144268 |1591 |34562 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144269 |1591 |34558 |0 |1 |2774A4|0 |2 |0 |
+ROW |144270 |1592 |34595 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144271 |1593 |34609 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144272 |1593 |34607 |0 |1 |2774A4|0 |2 |0 |
+ROW |144273 |1594 |34610 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144274 |1594 |34606 |0 |1 |2774A4|0 |2 |0 |
+ROW |144275 |1595 |34643 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144276 |1596 |34657 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144277 |1596 |34655 |0 |1 |2774A4|0 |2 |0 |
+ROW |144278 |1597 |34658 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144279 |1597 |34654 |0 |1 |2774A4|0 |2 |0 |
+ROW |144280 |1619 |35016 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144281 |1620 |35030 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144282 |1620 |35028 |0 |1 |2774A4|0 |2 |0 |
+ROW |144283 |1621 |35031 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144284 |1621 |35027 |0 |1 |2774A4|0 |2 |0 |
+ROW |144285 |1601 |34739 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144286 |1602 |34753 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144287 |1602 |34751 |0 |1 |2774A4|0 |2 |0 |
+ROW |144288 |1603 |34754 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144289 |1603 |34750 |0 |1 |2774A4|0 |2 |0 |
+ROW |144290 |1604 |34787 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144291 |1569 |34192 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144292 |1569 |34180 |0 |1 |2774A4|0 |2 |0 |
+ROW |144293 |1570 |34194 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144294 |1570 |34190 |0 |1 |2774A4|0 |2 |0 |
+ROW |144295 |1605 |34793 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144296 |1606 |34807 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144297 |1606 |34805 |0 |1 |2774A4|0 |2 |0 |
+ROW |144298 |1607 |34808 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144299 |1607 |34804 |0 |1 |2774A4|0 |2 |0 |
+ROW |144300 |1608 |34841 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144301 |1609 |34855 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144302 |1609 |34853 |0 |1 |2774A4|0 |2 |0 |
+ROW |144303 |1610 |34856 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144304 |1610 |34852 |0 |1 |2774A4|0 |2 |0 |
+ROW |144305 |1611 |34889 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144306 |1612 |34903 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144307 |1612 |34901 |0 |1 |2774A4|0 |2 |0 |
+ROW |144308 |1613 |34904 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144309 |1613 |34900 |0 |1 |2774A4|0 |2 |0 |
+ROW |144310 |2355 |43212 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144311 |2356 |43193 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144312 |2356 |43205 |0 |1 |2774A4|0 |2 |0 |
+ROW |144313 |2356 |43214 |0 |2 |F63100|0 |2 |0 |
+ROW |144314 |2356 |43213 |0 |3 |A54F10|0 |2 |0 |
+ROW |144315 |2357 |43210 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144316 |2358 |43209 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144317 |2358 |43207 |0 |1 |2774A4|0 |2 |0 |
+ROW |144318 |2359 |43206 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144319 |2359 |43194 |0 |1 |2774A4|0 |2 |0 |
+ROW |144320 |2360 |43227 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144321 |2360 |43241 |0 |1 |2774A4|0 |2 |0 |
+ROW |144322 |2361 |43240 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144323 |2361 |43238 |0 |1 |2774A4|0 |2 |0 |
+ROW |144324 |2362 |43237 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144325 |2362 |43234 |0 |1 |2774A4|0 |2 |0 |
+ROW |144326 |2363 |43233 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144327 |2363 |43231 |0 |1 |2774A4|0 |2 |0 |
+ROW |144328 |2364 |43250 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144329 |2365 |43255 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144330 |2365 |43256 |0 |1 |2774A4|0 |2 |0 |
+ROW |144331 |2366 |43265 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144332 |2367 |43266 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144333 |2367 |43267 |0 |1 |2774A4|0 |2 |0 |
+ROW |144334 |2367 |43268 |0 |2 |F63100|0 |2 |0 |
+ROW |144335 |2367 |43269 |0 |3 |A54F10|0 |2 |0 |
+ROW |144336 |2368 |43270 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144337 |2368 |43272 |0 |1 |2774A4|0 |2 |0 |
+ROW |144338 |2369 |43273 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144339 |2369 |43275 |0 |1 |2774A4|0 |2 |0 |
+ROW |144340 |2370 |43276 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144341 |2370 |43277 |0 |1 |2774A4|0 |2 |0 |
+ROW |144342 |2371 |43326 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144343 |2372 |43307 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144344 |2372 |43319 |0 |1 |2774A4|0 |2 |0 |
+ROW |144345 |2372 |43328 |0 |2 |F63100|0 |2 |0 |
+ROW |144346 |2372 |43327 |0 |3 |A54F10|0 |2 |0 |
+ROW |144347 |2373 |43324 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144348 |2374 |43323 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144349 |2374 |43321 |0 |1 |2774A4|0 |2 |0 |
+ROW |144350 |2375 |43320 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144351 |2375 |43308 |0 |1 |2774A4|0 |2 |0 |
+ROW |144352 |2376 |43342 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144353 |2376 |43357 |0 |1 |2774A4|0 |2 |0 |
+ROW |144354 |2377 |43353 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144355 |2377 |43351 |0 |1 |2774A4|0 |2 |0 |
+ROW |144356 |2378 |43350 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144357 |2378 |43343 |0 |1 |2774A4|0 |2 |0 |
+ROW |144358 |2379 |43301 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144359 |2379 |43300 |0 |1 |2774A4|0 |2 |0 |
+ROW |144360 |2380 |43366 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144361 |2381 |43302 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144362 |2381 |43303 |0 |1 |2774A4|0 |2 |0 |
+ROW |144363 |2382 |43385 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144364 |2382 |43386 |0 |1 |2774A4|0 |2 |0 |
+ROW |144365 |2382 |43387 |0 |2 |F63100|0 |2 |0 |
+ROW |144366 |2382 |43388 |0 |3 |A54F10|0 |2 |0 |
+ROW |144367 |2383 |43389 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144368 |2383 |43391 |0 |1 |2774A4|0 |2 |0 |
+ROW |144369 |2384 |43392 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144370 |2384 |43394 |0 |1 |2774A4|0 |2 |0 |
+ROW |144371 |2385 |43306 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144372 |2385 |43305 |0 |1 |2774A4|0 |2 |0 |
+ROW |144373 |2386 |43426 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144374 |2386 |43425 |0 |1 |2774A4|0 |2 |0 |
+ROW |144375 |2386 |43424 |0 |2 |F63100|0 |2 |0 |
+ROW |144376 |2387 |43418 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144377 |2387 |43441 |0 |1 |2774A4|0 |2 |0 |
+ROW |144378 |2387 |43420 |0 |2 |F63100|0 |2 |0 |
+ROW |144379 |2388 |43430 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144380 |2388 |43440 |0 |1 |2774A4|0 |2 |0 |
+ROW |144381 |2388 |43439 |0 |2 |F63100|0 |2 |0 |
+ROW |144382 |2389 |43436 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144383 |2389 |43435 |0 |1 |2774A4|0 |2 |0 |
+ROW |144384 |2389 |43438 |0 |2 |F63100|0 |2 |0 |
+ROW |144385 |2389 |43437 |0 |3 |A54F10|0 |2 |0 |
+ROW |144386 |2390 |43432 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144387 |2390 |43431 |0 |1 |2774A4|0 |2 |0 |
+ROW |144388 |2390 |43434 |0 |2 |F63100|0 |2 |0 |
+ROW |144389 |2390 |43433 |0 |3 |A54F10|0 |2 |0 |
+ROW |144390 |2391 |43428 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144391 |2391 |43427 |0 |1 |2774A4|0 |2 |0 |
+ROW |144392 |2391 |43429 |0 |2 |F63100|0 |2 |0 |
+ROW |144393 |2391 |43419 |0 |3 |A54F10|0 |2 |0 |
+ROW |144394 |2392 |43489 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144395 |2392 |43488 |0 |1 |2774A4|0 |2 |0 |
+ROW |144396 |2392 |43487 |0 |2 |F63100|0 |2 |0 |
+ROW |144397 |2392 |43486 |0 |3 |A54F10|0 |2 |0 |
+ROW |144398 |2393 |43468 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144399 |2393 |43491 |0 |1 |2774A4|0 |2 |0 |
+ROW |144400 |2394 |43481 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144401 |2394 |43492 |0 |1 |2774A4|0 |2 |0 |
+ROW |144402 |2394 |43490 |0 |2 |F63100|0 |2 |0 |
+ROW |144403 |2395 |43485 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144404 |2395 |43484 |0 |1 |2774A4|0 |2 |0 |
+ROW |144405 |2395 |43483 |0 |2 |F63100|0 |2 |0 |
+ROW |144406 |2395 |43482 |0 |3 |A54F10|0 |2 |0 |
+ROW |144407 |2396 |43478 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144408 |2396 |43477 |0 |1 |2774A4|0 |2 |0 |
+ROW |144409 |2396 |43476 |0 |2 |F63100|0 |2 |0 |
+ROW |144410 |2396 |43475 |0 |3 |A54F10|0 |2 |0 |
+ROW |144411 |2397 |43409 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144412 |2397 |43408 |0 |1 |2774A4|0 |2 |0 |
+ROW |144413 |2397 |43407 |0 |2 |F63100|0 |2 |0 |
+ROW |144414 |2397 |43406 |0 |3 |A54F10|0 |2 |0 |
+ROW |144415 |1518 |33705 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144416 |1519 |33724 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144417 |1519 |33722 |0 |1 |2774A4|0 |2 |0 |
+ROW |144418 |1519 |33726 |0 |2 |F63100|0 |2 |0 |
+ROW |144419 |1520 |33719 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144420 |1520 |33720 |0 |1 |2774A4|0 |2 |0 |
+ROW |144421 |1520 |33721 |0 |2 |F63100|0 |2 |0 |
+ROW |144422 |1521 |33725 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144423 |1521 |33723 |0 |1 |2774A4|0 |2 |0 |
+ROW |144424 |1521 |33727 |0 |2 |F63100|0 |2 |0 |
+ROW |144425 |1522 |33730 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144426 |1523 |33734 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144427 |1523 |33732 |0 |1 |2774A4|0 |2 |0 |
+ROW |144428 |1523 |33736 |0 |2 |F63100|0 |2 |0 |
+ROW |144429 |1524 |33735 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144430 |1524 |33733 |0 |1 |2774A4|0 |2 |0 |
+ROW |144431 |1524 |33737 |0 |2 |F63100|0 |2 |0 |
+ROW |144432 |1525 |33743 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144433 |1525 |33742 |0 |1 |2774A4|0 |2 |0 |
+ROW |144434 |1525 |33738 |0 |2 |F63100|0 |2 |0 |
+ROW |144435 |1526 |33692 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144436 |1526 |33693 |0 |1 |2774A4|0 |2 |0 |
+ROW |144437 |1571 |34269 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144438 |1571 |34270 |0 |1 |2774A4|0 |2 |0 |
+ROW |144439 |1571 |34271 |0 |2 |F63100|0 |2 |0 |
+ROW |144440 |1571 |34272 |0 |3 |A54F10|0 |2 |0 |
+ROW |144441 |1572 |34311 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144442 |1572 |34301 |0 |1 |2774A4|0 |2 |0 |
+ROW |144443 |1573 |34243 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144444 |1573 |34244 |0 |1 |2774A4|0 |2 |0 |
+ROW |144445 |1573 |34246 |0 |2 |F63100|0 |2 |0 |
+ROW |144446 |1573 |34245 |0 |3 |A54F10|0 |2 |0 |
+ROW |144447 |1574 |34239 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144448 |1574 |34227 |0 |1 |2774A4|0 |2 |0 |
+ROW |144449 |1574 |34236 |0 |2 |F63100|0 |2 |0 |
+ROW |144450 |1574 |34237 |0 |3 |A54F10|0 |2 |0 |
+ROW |144451 |1575 |34253 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144452 |1575 |34252 |0 |1 |2774A4|0 |2 |0 |
+ROW |144453 |1575 |34249 |0 |2 |F63100|0 |2 |0 |
+ROW |144454 |1575 |34251 |0 |3 |A54F10|0 |2 |0 |
+ROW |144455 |1496 |33368 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144456 |1497 |33371 |1 |0 |1A7C11|0 |2 |0 |
+ROW |144457 |1497 |33371 |1 |1 |2774A4|0 |2 |0 |
+ROW |144458 |1498 |33379 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144459 |1498 |33382 |2 |1 |2774A4|0 |2 |0 |
+ROW |144460 |1498 |33381 |0 |2 |F63100|1 |2 |0 |
+ROW |144461 |1498 |33378 |0 |3 |A54F10|1 |2 |0 |
+ROW |144462 |1498 |33380 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144463 |1498 |33377 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144464 |1142 |30689 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144465 |1805 |36187 |5 |0 |1A7C11|0 |2 |0 |
+ROW |144466 |1805 |36192 |2 |1 |2774A4|0 |2 |0 |
+ROW |144467 |1805 |36190 |0 |2 |F63100|1 |2 |0 |
+ROW |144468 |1805 |36185 |0 |3 |A54F10|1 |2 |0 |
+ROW |144469 |1805 |36189 |0 |4 |FC6EA3|1 |2 |0 |
+ROW |144470 |1805 |36184 |0 |5 |6C59DC|1 |2 |0 |
+ROW |144471 |2398 |43547 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144472 |2398 |43546 |0 |1 |2774A4|0 |2 |0 |
+ROW |144473 |2398 |43545 |0 |2 |F63100|0 |2 |0 |
+ROW |144474 |2398 |43556 |0 |3 |A54F10|0 |2 |0 |
+ROW |144475 |2398 |43557 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |144476 |2398 |43552 |0 |5 |6C59DC|0 |2 |0 |
+ROW |144477 |2399 |43626 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144478 |2399 |43627 |0 |1 |2774A4|0 |2 |0 |
+ROW |144479 |2399 |43628 |0 |2 |F63100|0 |2 |0 |
+ROW |144480 |2400 |43632 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144481 |2400 |43633 |0 |1 |2774A4|0 |2 |0 |
+ROW |144482 |2400 |43634 |0 |2 |F63100|0 |2 |0 |
+ROW |144483 |2401 |43637 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144484 |2401 |43638 |0 |1 |2774A4|0 |2 |0 |
+ROW |144485 |651 |26928 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144486 |651 |26927 |0 |1 |2774A4|0 |2 |0 |
+ROW |144487 |652 |26925 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144488 |652 |26932 |0 |1 |2774A4|0 |2 |0 |
+ROW |144489 |652 |26930 |0 |2 |F63100|0 |2 |0 |
+ROW |144490 |652 |26931 |0 |3 |A54F10|0 |2 |0 |
+ROW |144491 |652 |26929 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |144492 |652 |26926 |0 |5 |6C59DC|0 |2 |0 |
+ROW |144493 |653 |26933 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144494 |653 |26943 |0 |1 |2774A4|0 |2 |0 |
+ROW |144495 |653 |26935 |0 |2 |F63100|0 |2 |0 |
+ROW |144496 |653 |26936 |0 |3 |A54F10|0 |2 |0 |
+ROW |144497 |654 |26934 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144498 |654 |26939 |0 |1 |2774A4|0 |2 |0 |
+ROW |144499 |654 |26942 |0 |2 |F63100|0 |2 |0 |
+ROW |144500 |654 |26938 |0 |3 |A54F10|0 |2 |0 |
+ROW |144501 |654 |26937 |0 |4 |FC6EA3|0 |2 |0 |
+ROW |144502 |1275 |31794 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144503 |1275 |31792 |0 |1 |2774A4|0 |2 |0 |
+ROW |144504 |1275 |31800 |0 |2 |F63100|1 |2 |0 |
+ROW |144505 |1276 |36771 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144506 |1276 |33390 |0 |1 |2774A4|0 |2 |0 |
+ROW |144507 |1276 |31799 |0 |2 |F63100|0 |2 |0 |
+ROW |144508 |1276 |31797 |0 |3 |A54F10|0 |2 |0 |
+ROW |144509 |1277 |36770 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144510 |1277 |33389 |0 |1 |2774A4|0 |2 |0 |
+ROW |144511 |1277 |31795 |0 |2 |F63100|0 |2 |0 |
+ROW |144512 |1278 |36769 |0 |0 |1A7C11|0 |2 |0 |
+ROW |144513 |1278 |31793 |0 |1 |2774A4|0 |2 |0 |
+ROW |144514 |1278 |31802 |0 |2 |F63100|0 |2 |0 |
+ROW |144515 |1278 |31790 |0 |3 |A54F10|0 |2 |0 |
+ROW |144516 |1278 |31791 |0 |4 |FC6EA3|0 |2 |0 |
TABLE |hostmacro
FIELDS|hostmacroid|hostid|macro |value |description |type|
@@ -101595,599 +101595,599 @@ ROW |678 |10369 |target |zookeeper |
TABLE |lld_override
FIELDS|lld_overrideid|itemid|name |step|evaltype|formula|stop|
-ROW |2542 |42985 |aggregated status |1 |0 | |0 |
-ROW |2543 |42985 |checks |2 |0 | |0 |
-ROW |2544 |30961 |trigger |1 |0 | |0 |
-ROW |2545 |30193 |Discard HTTP status codes |1 |0 | |0 |
-ROW |2546 |30194 |Discard HTTP status codes |1 |0 | |0 |
-ROW |2547 |30195 |Discard HTTP status codes |1 |0 | |0 |
-ROW |2548 |30236 |Discard HTTP status codes |1 |0 | |0 |
-ROW |2549 |30237 |Discard HTTP status codes |1 |0 | |0 |
-ROW |2550 |30238 |Discard HTTP status codes |1 |0 | |0 |
-ROW |2551 |39854 |bucket item |1 |0 | |0 |
-ROW |2552 |39854 |total item |2 |0 | |0 |
-ROW |2553 |39859 |bucket item |1 |0 | |0 |
-ROW |2554 |39859 |total item |2 |0 | |0 |
-ROW |2555 |39889 |bucket item |1 |0 | |0 |
-ROW |2556 |39889 |total item |2 |0 | |0 |
-ROW |2557 |39920 |bucket item |1 |0 | |0 |
-ROW |2558 |39920 |total item |2 |0 | |0 |
-ROW |2559 |40000 |bucket item |1 |0 | |0 |
-ROW |2560 |40000 |total item |2 |0 | |0 |
-ROW |2561 |40001 |bucket item |1 |0 | |0 |
-ROW |2562 |40001 |total item |2 |0 | |0 |
-ROW |2563 |40002 |bucket item |1 |0 | |0 |
-ROW |2564 |40002 |total item |2 |0 | |0 |
-ROW |2565 |33521 |trigger disabled non main channels |1 |0 | |0 |
-ROW |2566 |33810 |Arbiter metrics |2 |0 | |0 |
-ROW |2567 |33810 |Primary metrics |1 |0 | |0 |
-ROW |2568 |34346 |Too many missed regions trigger |1 |0 | |0 |
-ROW |2569 |34346 |Unresponsive peers trigger |2 |0 | |0 |
-ROW |2570 |34403 |Failed GC-related operations trigger |1 |0 | |0 |
-ROW |2571 |34443 |Too many unreachable messages trigger |1 |0 | |0 |
-ROW |2572 |33658 |Bad_Block_Rate |9 |0 | |0 |
-ROW |2573 |33658 |Not NVMe |2 |0 | |0 |
-ROW |2574 |33658 |Power_Cycle_Count |6 |0 | |0 |
-ROW |2575 |33658 |Program_Fail_Count_Chip |10 |0 | |0 |
-ROW |2576 |33658 |Raw_Read_Error_Rate |3 |0 | |0 |
-ROW |2577 |33658 |Reallocated_Sector_Ct |11 |0 | |0 |
-ROW |2578 |33658 |Reported_Uncorrect |7 |0 | |0 |
-ROW |2579 |33658 |Seek_Error_Rate |8 |0 | |0 |
-ROW |2580 |33658 |Self-test |1 |0 | |0 |
-ROW |2581 |33658 |Spin_Up_Time |4 |0 | |0 |
-ROW |2582 |33658 |Start_Stop_Count |5 |0 | |0 |
-ROW |2583 |33670 |Bad_Block_Rate |9 |0 | |0 |
-ROW |2584 |33670 |Not NVMe |2 |0 | |0 |
-ROW |2585 |33670 |Power_Cycle_Count |6 |0 | |0 |
-ROW |2586 |33670 |Program_Fail_Count_Chip |10 |0 | |0 |
-ROW |2587 |33670 |Raw_Read_Error_Rate |3 |0 | |0 |
-ROW |2588 |33670 |Reallocated_Sector_Ct |11 |0 | |0 |
-ROW |2589 |33670 |Reported_Uncorrect |7 |0 | |0 |
-ROW |2590 |33670 |Seek_Error_Rate |8 |0 | |0 |
-ROW |2591 |33670 |Self-test |1 |0 | |0 |
-ROW |2592 |33670 |Spin_Up_Time |4 |0 | |0 |
-ROW |2593 |33670 |Start_Stop_Count |5 |0 | |0 |
-ROW |2594 |28306 |trigger THRESHOLD_HI_CRIT |4 |0 | |0 |
-ROW |2595 |28306 |trigger THRESHOLD_HI_WARN |3 |0 | |0 |
-ROW |2596 |28306 |trigger THRESHOLD_LO_CRIT |2 |0 | |0 |
-ROW |2597 |28306 |trigger THRESHOLD_LO_WARN |1 |0 | |0 |
-ROW |2598 |28307 |trigger THRESHOLD_HI_CRIT |4 |0 | |0 |
-ROW |2599 |28307 |trigger THRESHOLD_HI_WARN |3 |0 | |0 |
-ROW |2600 |28307 |trigger THRESHOLD_LO_CRIT |2 |0 | |0 |
-ROW |2601 |28307 |trigger THRESHOLD_LO_WARN |1 |0 | |0 |
-ROW |2602 |33182 |trigger THRESHOLD_HI_CRIT |4 |0 | |0 |
-ROW |2603 |33182 |trigger THRESHOLD_HI_WARN |3 |0 | |0 |
-ROW |2604 |33182 |trigger THRESHOLD_LO_CRIT |2 |0 | |0 |
-ROW |2605 |33182 |trigger THRESHOLD_LO_WARN |1 |0 | |0 |
-ROW |2606 |35366 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2607 |35542 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2608 |35543 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2609 |35575 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2610 |35619 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2611 |35653 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2612 |35654 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2613 |35720 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2614 |35721 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2615 |35787 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2616 |35788 |Trigger disabled |1 |0 | |0 |
-ROW |2617 |35788 |Trigger enabled |2 |0 | |0 |
-ROW |2618 |35820 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2619 |35859 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2620 |35903 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2621 |35947 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2622 |35991 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2623 |36036 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2624 |36081 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2625 |36126 |Don't create triggers for matching interface|1 |0 | |0 |
-ROW |2626 |34478 |Temp |1 |0 | |0 |
-ROW |2627 |34479 |Temp |1 |0 | |0 |
-ROW |2628 |34526 |Temp |1 |0 | |0 |
-ROW |2629 |34527 |Temp |1 |0 | |0 |
-ROW |2630 |34574 |Temp |1 |0 | |0 |
-ROW |2631 |34575 |Temp |1 |0 | |0 |
-ROW |2632 |34622 |Temp |1 |0 | |0 |
-ROW |2633 |34623 |Temp |1 |0 | |0 |
-ROW |2634 |34670 |Temp |1 |0 | |0 |
-ROW |2635 |34671 |Temp |1 |0 | |0 |
-ROW |2636 |35043 |Temp |1 |0 | |0 |
-ROW |2637 |35044 |Temp |1 |0 | |0 |
-ROW |2638 |34766 |Temp |1 |0 | |0 |
-ROW |2639 |34767 |Temp |1 |0 | |0 |
-ROW |2640 |34209 |Temp |1 |0 | |0 |
-ROW |2641 |34210 |Temp |1 |0 | |0 |
-ROW |2642 |34820 |Temp |1 |0 | |0 |
-ROW |2643 |34821 |Temp |1 |0 | |0 |
-ROW |2644 |34868 |Temp |1 |0 | |0 |
-ROW |2645 |34869 |Temp |1 |0 | |0 |
-ROW |2646 |34916 |Temp |1 |0 | |0 |
-ROW |2647 |34917 |Temp |1 |0 | |0 |
-ROW |2648 |43182 |SSD life left |1 |0 | |0 |
-ROW |2649 |43289 |SSD life left |1 |0 | |0 |
-ROW |2650 |33354 |Do not discover aggregate metrics |1 |0 | |0 |
-ROW |2651 |30687 |trigger SENSOR_HI_CRIT |5 |0 | |0 |
-ROW |2652 |30687 |trigger SENSOR_HI_DISAST |6 |0 | |0 |
-ROW |2653 |30687 |trigger SENSOR_HI_WARN |4 |0 | |0 |
-ROW |2654 |30687 |trigger SENSOR_LO_CRIT |2 |0 | |0 |
-ROW |2655 |30687 |trigger SENSOR_LO_DISAST |3 |0 | |0 |
-ROW |2656 |30687 |trigger SENSOR_LO_WARN |1 |0 | |0 |
+ROW |2657 |42985 |aggregated status |1 |0 | |0 |
+ROW |2658 |42985 |checks |2 |0 | |0 |
+ROW |2659 |30961 |trigger |1 |0 | |0 |
+ROW |2660 |30193 |Discard HTTP status codes |1 |0 | |0 |
+ROW |2661 |30194 |Discard HTTP status codes |1 |0 | |0 |
+ROW |2662 |30195 |Discard HTTP status codes |1 |0 | |0 |
+ROW |2663 |30236 |Discard HTTP status codes |1 |0 | |0 |
+ROW |2664 |30237 |Discard HTTP status codes |1 |0 | |0 |
+ROW |2665 |30238 |Discard HTTP status codes |1 |0 | |0 |
+ROW |2666 |39854 |bucket item |1 |0 | |0 |
+ROW |2667 |39854 |total item |2 |0 | |0 |
+ROW |2668 |39859 |bucket item |1 |0 | |0 |
+ROW |2669 |39859 |total item |2 |0 | |0 |
+ROW |2670 |39889 |bucket item |1 |0 | |0 |
+ROW |2671 |39889 |total item |2 |0 | |0 |
+ROW |2672 |39920 |bucket item |1 |0 | |0 |
+ROW |2673 |39920 |total item |2 |0 | |0 |
+ROW |2674 |40000 |bucket item |1 |0 | |0 |
+ROW |2675 |40000 |total item |2 |0 | |0 |
+ROW |2676 |40001 |bucket item |1 |0 | |0 |
+ROW |2677 |40001 |total item |2 |0 | |0 |
+ROW |2678 |40002 |bucket item |1 |0 | |0 |
+ROW |2679 |40002 |total item |2 |0 | |0 |
+ROW |2680 |33521 |trigger disabled non main channels |1 |0 | |0 |
+ROW |2681 |33810 |Arbiter metrics |2 |0 | |0 |
+ROW |2682 |33810 |Primary metrics |1 |0 | |0 |
+ROW |2683 |34346 |Too many missed regions trigger |1 |0 | |0 |
+ROW |2684 |34346 |Unresponsive peers trigger |2 |0 | |0 |
+ROW |2685 |34403 |Failed GC-related operations trigger |1 |0 | |0 |
+ROW |2686 |34443 |Too many unreachable messages trigger |1 |0 | |0 |
+ROW |2687 |33658 |Bad_Block_Rate |9 |0 | |0 |
+ROW |2688 |33658 |Not NVMe |2 |0 | |0 |
+ROW |2689 |33658 |Power_Cycle_Count |6 |0 | |0 |
+ROW |2690 |33658 |Program_Fail_Count_Chip |10 |0 | |0 |
+ROW |2691 |33658 |Raw_Read_Error_Rate |3 |0 | |0 |
+ROW |2692 |33658 |Reallocated_Sector_Ct |11 |0 | |0 |
+ROW |2693 |33658 |Reported_Uncorrect |7 |0 | |0 |
+ROW |2694 |33658 |Seek_Error_Rate |8 |0 | |0 |
+ROW |2695 |33658 |Self-test |1 |0 | |0 |
+ROW |2696 |33658 |Spin_Up_Time |4 |0 | |0 |
+ROW |2697 |33658 |Start_Stop_Count |5 |0 | |0 |
+ROW |2698 |33670 |Bad_Block_Rate |9 |0 | |0 |
+ROW |2699 |33670 |Not NVMe |2 |0 | |0 |
+ROW |2700 |33670 |Power_Cycle_Count |6 |0 | |0 |
+ROW |2701 |33670 |Program_Fail_Count_Chip |10 |0 | |0 |
+ROW |2702 |33670 |Raw_Read_Error_Rate |3 |0 | |0 |
+ROW |2703 |33670 |Reallocated_Sector_Ct |11 |0 | |0 |
+ROW |2704 |33670 |Reported_Uncorrect |7 |0 | |0 |
+ROW |2705 |33670 |Seek_Error_Rate |8 |0 | |0 |
+ROW |2706 |33670 |Self-test |1 |0 | |0 |
+ROW |2707 |33670 |Spin_Up_Time |4 |0 | |0 |
+ROW |2708 |33670 |Start_Stop_Count |5 |0 | |0 |
+ROW |2709 |28306 |trigger THRESHOLD_HI_CRIT |4 |0 | |0 |
+ROW |2710 |28306 |trigger THRESHOLD_HI_WARN |3 |0 | |0 |
+ROW |2711 |28306 |trigger THRESHOLD_LO_CRIT |2 |0 | |0 |
+ROW |2712 |28306 |trigger THRESHOLD_LO_WARN |1 |0 | |0 |
+ROW |2713 |28307 |trigger THRESHOLD_HI_CRIT |4 |0 | |0 |
+ROW |2714 |28307 |trigger THRESHOLD_HI_WARN |3 |0 | |0 |
+ROW |2715 |28307 |trigger THRESHOLD_LO_CRIT |2 |0 | |0 |
+ROW |2716 |28307 |trigger THRESHOLD_LO_WARN |1 |0 | |0 |
+ROW |2717 |33182 |trigger THRESHOLD_HI_CRIT |4 |0 | |0 |
+ROW |2718 |33182 |trigger THRESHOLD_HI_WARN |3 |0 | |0 |
+ROW |2719 |33182 |trigger THRESHOLD_LO_CRIT |2 |0 | |0 |
+ROW |2720 |33182 |trigger THRESHOLD_LO_WARN |1 |0 | |0 |
+ROW |2721 |35366 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2722 |35542 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2723 |35543 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2724 |35575 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2725 |35619 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2726 |35653 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2727 |35654 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2728 |35720 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2729 |35721 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2730 |35787 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2731 |35788 |Trigger disabled |1 |0 | |0 |
+ROW |2732 |35788 |Trigger enabled |2 |0 | |0 |
+ROW |2733 |35820 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2734 |35859 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2735 |35903 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2736 |35947 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2737 |35991 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2738 |36036 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2739 |36081 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2740 |36126 |Don't create triggers for matching interface|1 |0 | |0 |
+ROW |2741 |34478 |Temp |1 |0 | |0 |
+ROW |2742 |34479 |Temp |1 |0 | |0 |
+ROW |2743 |34526 |Temp |1 |0 | |0 |
+ROW |2744 |34527 |Temp |1 |0 | |0 |
+ROW |2745 |34574 |Temp |1 |0 | |0 |
+ROW |2746 |34575 |Temp |1 |0 | |0 |
+ROW |2747 |34622 |Temp |1 |0 | |0 |
+ROW |2748 |34623 |Temp |1 |0 | |0 |
+ROW |2749 |34670 |Temp |1 |0 | |0 |
+ROW |2750 |34671 |Temp |1 |0 | |0 |
+ROW |2751 |35043 |Temp |1 |0 | |0 |
+ROW |2752 |35044 |Temp |1 |0 | |0 |
+ROW |2753 |34766 |Temp |1 |0 | |0 |
+ROW |2754 |34767 |Temp |1 |0 | |0 |
+ROW |2755 |34209 |Temp |1 |0 | |0 |
+ROW |2756 |34210 |Temp |1 |0 | |0 |
+ROW |2757 |34820 |Temp |1 |0 | |0 |
+ROW |2758 |34821 |Temp |1 |0 | |0 |
+ROW |2759 |34868 |Temp |1 |0 | |0 |
+ROW |2760 |34869 |Temp |1 |0 | |0 |
+ROW |2761 |34916 |Temp |1 |0 | |0 |
+ROW |2762 |34917 |Temp |1 |0 | |0 |
+ROW |2763 |43182 |SSD life left |1 |0 | |0 |
+ROW |2764 |43289 |SSD life left |1 |0 | |0 |
+ROW |2765 |33354 |Do not discover aggregate metrics |1 |0 | |0 |
+ROW |2766 |30687 |trigger SENSOR_HI_CRIT |5 |0 | |0 |
+ROW |2767 |30687 |trigger SENSOR_HI_DISAST |6 |0 | |0 |
+ROW |2768 |30687 |trigger SENSOR_HI_WARN |4 |0 | |0 |
+ROW |2769 |30687 |trigger SENSOR_LO_CRIT |2 |0 | |0 |
+ROW |2770 |30687 |trigger SENSOR_LO_DISAST |3 |0 | |0 |
+ROW |2771 |30687 |trigger SENSOR_LO_WARN |1 |0 | |0 |
TABLE |lld_override_condition
FIELDS|lld_override_conditionid|lld_overrideid|operator|macro |value |
-ROW |2329 |2542 |8 |{#TYPE} |aggregated_status |
-ROW |2330 |2543 |8 |{#TYPE} |service_check |
-ROW |2331 |2544 |8 |{#GRPC.CODE} |{$ETCD.GRPC_CODE.TRIGGER.MATCHES} |
-ROW |2332 |2545 |8 |{#MODE} |tcp |
-ROW |2333 |2546 |8 |{#MODE} |tcp |
-ROW |2334 |2547 |8 |{#MODE} |tcp |
-ROW |2335 |2548 |8 |{#MODE} |tcp |
-ROW |2336 |2549 |8 |{#MODE} |tcp |
-ROW |2337 |2550 |8 |{#MODE} |tcp |
-ROW |2338 |2551 |8 |{#TYPE} |buckets |
-ROW |2339 |2552 |8 |{#TYPE} |totals |
-ROW |2340 |2553 |8 |{#TYPE} |buckets |
-ROW |2341 |2554 |8 |{#TYPE} |totals |
-ROW |2342 |2555 |8 |{#TYPE} |buckets |
-ROW |2343 |2556 |8 |{#TYPE} |totals |
-ROW |2344 |2557 |8 |{#TYPE} |buckets |
-ROW |2345 |2558 |8 |{#TYPE} |totals |
-ROW |2346 |2559 |8 |{#TYPE} |buckets |
-ROW |2347 |2560 |8 |{#TYPE} |totals |
-ROW |2348 |2561 |8 |{#TYPE} |buckets |
-ROW |2349 |2562 |8 |{#TYPE} |totals |
-ROW |2350 |2563 |8 |{#TYPE} |buckets |
-ROW |2351 |2564 |8 |{#TYPE} |totals |
-ROW |2352 |2565 |9 |{#CHANNEL_ID} |{$HIKVISION_MAIN_CHANNEL_ID} |
-ROW |2353 |2566 |8 |{#NODE_STATE} |7 |
-ROW |2354 |2567 |8 |{#NODE_STATE} |1 |
-ROW |2355 |2568 |8 |{#TYPE} |miss_peer_region_count |
-ROW |2356 |2569 |8 |{#TYPE} |down_peer_region_count |
-ROW |2357 |2570 |8 |{#TYPE} |failed |
-ROW |2358 |2571 |8 |{#TYPE} |unreachable |
-ROW |2359 |2572 |8 |{#ATTRIBUTES} |Bad_Block_Rate |
-ROW |2360 |2573 |9 |{#DISKTYPE} |nvme |
-ROW |2361 |2574 |8 |{#ATTRIBUTES} |Power_Cycle_Count |
-ROW |2362 |2575 |8 |{#ATTRIBUTES} |Program_Fail_Count_Chip |
-ROW |2363 |2576 |8 |{#ATTRIBUTES} |Raw_Read_Error_Rate |
-ROW |2364 |2577 |8 |{#ATTRIBUTES} |Reallocated_Sector_Ct |
-ROW |2365 |2578 |8 |{#ATTRIBUTES} |Reported_Uncorrect |
-ROW |2366 |2579 |8 |{#ATTRIBUTES} |Seek_Error_Rate |
-ROW |2367 |2580 |8 |{#DISKTYPE} |nvme |
-ROW |2368 |2581 |8 |{#ATTRIBUTES} |Spin_Up_Time |
-ROW |2369 |2582 |8 |{#ATTRIBUTES} |Start_Stop_Count |
-ROW |2370 |2583 |8 |{#ATTRIBUTES} |Bad_Block_Rate |
-ROW |2371 |2584 |9 |{#DISKTYPE} |nvme |
-ROW |2372 |2585 |8 |{#ATTRIBUTES} |Power_Cycle_Count |
-ROW |2373 |2586 |8 |{#ATTRIBUTES} |Program_Fail_Count_Chip |
-ROW |2374 |2587 |8 |{#ATTRIBUTES} |Raw_Read_Error_Rate |
-ROW |2375 |2588 |8 |{#ATTRIBUTES} |Reallocated_Sector_Ct |
-ROW |2376 |2589 |8 |{#ATTRIBUTES} |Reported_Uncorrect |
-ROW |2377 |2590 |8 |{#ATTRIBUTES} |Seek_Error_Rate |
-ROW |2378 |2591 |8 |{#DISKTYPE} |nvme |
-ROW |2379 |2592 |8 |{#ATTRIBUTES} |Spin_Up_Time |
-ROW |2380 |2593 |8 |{#ATTRIBUTES} |Start_Stop_Count |
-ROW |2381 |2594 |8 |{#THRESHOLD_HI_CRIT} |^$ |
-ROW |2382 |2595 |8 |{#THRESHOLD_HI_WARN} |^$ |
-ROW |2383 |2596 |8 |{#THRESHOLD_LO_CRIT} |^$ |
-ROW |2384 |2597 |8 |{#THRESHOLD_LO_WARN} |^$ |
-ROW |2385 |2598 |8 |{#THRESHOLD_HI_CRIT} |^$ |
-ROW |2386 |2599 |8 |{#THRESHOLD_HI_WARN} |^$ |
-ROW |2387 |2600 |8 |{#THRESHOLD_LO_CRIT} |^$ |
-ROW |2388 |2601 |8 |{#THRESHOLD_LO_WARN} |^$ |
-ROW |2389 |2602 |8 |{#THRESHOLD_HI_CRIT} |^$ |
-ROW |2390 |2603 |8 |{#THRESHOLD_HI_WARN} |^$ |
-ROW |2391 |2604 |8 |{#THRESHOLD_LO_CRIT} |^$ |
-ROW |2392 |2605 |8 |{#THRESHOLD_LO_WARN} |^$ |
-ROW |2393 |2606 |9 |{#CISCO.IF.NAME} |{$CISCO.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2394 |2607 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2395 |2608 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2396 |2609 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2397 |2610 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2398 |2611 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2399 |2612 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2400 |2613 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2401 |2614 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2402 |2615 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2403 |2616 |8 |{#ZYXEL.IF.NAME} |.* |
-ROW |2404 |2617 |8 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2405 |2618 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2406 |2619 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2407 |2620 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2408 |2621 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2409 |2622 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2410 |2623 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2411 |2624 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2412 |2625 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
-ROW |2413 |2626 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2414 |2627 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2415 |2628 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2416 |2629 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2417 |2630 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2418 |2631 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2419 |2632 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2420 |2633 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2421 |2634 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2422 |2635 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2423 |2636 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2424 |2637 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2425 |2638 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2426 |2639 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2427 |2640 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2428 |2641 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2429 |2642 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2430 |2643 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2431 |2644 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2432 |2645 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2433 |2646 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
-ROW |2434 |2647 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
-ROW |2435 |2648 |8 |{#TYPE} |8 |
-ROW |2436 |2649 |8 |{#TYPE} |8 |
-ROW |2437 |2650 |8 |{#FSTYPE} |3&pipe;4 |
+ROW |2438 |2657 |8 |{#TYPE} |aggregated_status |
+ROW |2439 |2658 |8 |{#TYPE} |service_check |
+ROW |2440 |2659 |8 |{#GRPC.CODE} |{$ETCD.GRPC_CODE.TRIGGER.MATCHES} |
+ROW |2441 |2660 |8 |{#MODE} |tcp |
+ROW |2442 |2661 |8 |{#MODE} |tcp |
+ROW |2443 |2662 |8 |{#MODE} |tcp |
+ROW |2444 |2663 |8 |{#MODE} |tcp |
+ROW |2445 |2664 |8 |{#MODE} |tcp |
+ROW |2446 |2665 |8 |{#MODE} |tcp |
+ROW |2447 |2666 |8 |{#TYPE} |buckets |
+ROW |2448 |2667 |8 |{#TYPE} |totals |
+ROW |2449 |2668 |8 |{#TYPE} |buckets |
+ROW |2450 |2669 |8 |{#TYPE} |totals |
+ROW |2451 |2670 |8 |{#TYPE} |buckets |
+ROW |2452 |2671 |8 |{#TYPE} |totals |
+ROW |2453 |2672 |8 |{#TYPE} |buckets |
+ROW |2454 |2673 |8 |{#TYPE} |totals |
+ROW |2455 |2674 |8 |{#TYPE} |buckets |
+ROW |2456 |2675 |8 |{#TYPE} |totals |
+ROW |2457 |2676 |8 |{#TYPE} |buckets |
+ROW |2458 |2677 |8 |{#TYPE} |totals |
+ROW |2459 |2678 |8 |{#TYPE} |buckets |
+ROW |2460 |2679 |8 |{#TYPE} |totals |
+ROW |2461 |2680 |9 |{#CHANNEL_ID} |{$HIKVISION_MAIN_CHANNEL_ID} |
+ROW |2462 |2681 |8 |{#NODE_STATE} |7 |
+ROW |2463 |2682 |8 |{#NODE_STATE} |1 |
+ROW |2464 |2683 |8 |{#TYPE} |miss_peer_region_count |
+ROW |2465 |2684 |8 |{#TYPE} |down_peer_region_count |
+ROW |2466 |2685 |8 |{#TYPE} |failed |
+ROW |2467 |2686 |8 |{#TYPE} |unreachable |
+ROW |2468 |2687 |8 |{#ATTRIBUTES} |Bad_Block_Rate |
+ROW |2469 |2688 |9 |{#DISKTYPE} |nvme |
+ROW |2470 |2689 |8 |{#ATTRIBUTES} |Power_Cycle_Count |
+ROW |2471 |2690 |8 |{#ATTRIBUTES} |Program_Fail_Count_Chip |
+ROW |2472 |2691 |8 |{#ATTRIBUTES} |Raw_Read_Error_Rate |
+ROW |2473 |2692 |8 |{#ATTRIBUTES} |Reallocated_Sector_Ct |
+ROW |2474 |2693 |8 |{#ATTRIBUTES} |Reported_Uncorrect |
+ROW |2475 |2694 |8 |{#ATTRIBUTES} |Seek_Error_Rate |
+ROW |2476 |2695 |8 |{#DISKTYPE} |nvme |
+ROW |2477 |2696 |8 |{#ATTRIBUTES} |Spin_Up_Time |
+ROW |2478 |2697 |8 |{#ATTRIBUTES} |Start_Stop_Count |
+ROW |2479 |2698 |8 |{#ATTRIBUTES} |Bad_Block_Rate |
+ROW |2480 |2699 |9 |{#DISKTYPE} |nvme |
+ROW |2481 |2700 |8 |{#ATTRIBUTES} |Power_Cycle_Count |
+ROW |2482 |2701 |8 |{#ATTRIBUTES} |Program_Fail_Count_Chip |
+ROW |2483 |2702 |8 |{#ATTRIBUTES} |Raw_Read_Error_Rate |
+ROW |2484 |2703 |8 |{#ATTRIBUTES} |Reallocated_Sector_Ct |
+ROW |2485 |2704 |8 |{#ATTRIBUTES} |Reported_Uncorrect |
+ROW |2486 |2705 |8 |{#ATTRIBUTES} |Seek_Error_Rate |
+ROW |2487 |2706 |8 |{#DISKTYPE} |nvme |
+ROW |2488 |2707 |8 |{#ATTRIBUTES} |Spin_Up_Time |
+ROW |2489 |2708 |8 |{#ATTRIBUTES} |Start_Stop_Count |
+ROW |2490 |2709 |8 |{#THRESHOLD_HI_CRIT} |^$ |
+ROW |2491 |2710 |8 |{#THRESHOLD_HI_WARN} |^$ |
+ROW |2492 |2711 |8 |{#THRESHOLD_LO_CRIT} |^$ |
+ROW |2493 |2712 |8 |{#THRESHOLD_LO_WARN} |^$ |
+ROW |2494 |2713 |8 |{#THRESHOLD_HI_CRIT} |^$ |
+ROW |2495 |2714 |8 |{#THRESHOLD_HI_WARN} |^$ |
+ROW |2496 |2715 |8 |{#THRESHOLD_LO_CRIT} |^$ |
+ROW |2497 |2716 |8 |{#THRESHOLD_LO_WARN} |^$ |
+ROW |2498 |2717 |8 |{#THRESHOLD_HI_CRIT} |^$ |
+ROW |2499 |2718 |8 |{#THRESHOLD_HI_WARN} |^$ |
+ROW |2500 |2719 |8 |{#THRESHOLD_LO_CRIT} |^$ |
+ROW |2501 |2720 |8 |{#THRESHOLD_LO_WARN} |^$ |
+ROW |2502 |2721 |9 |{#CISCO.IF.NAME} |{$CISCO.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2503 |2722 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2504 |2723 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2505 |2724 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2506 |2725 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2507 |2726 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2508 |2727 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2509 |2728 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2510 |2729 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2511 |2730 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2512 |2731 |8 |{#ZYXEL.IF.NAME} |.* |
+ROW |2513 |2732 |8 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2514 |2733 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2515 |2734 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2516 |2735 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2517 |2736 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2518 |2737 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2519 |2738 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2520 |2739 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2521 |2740 |9 |{#ZYXEL.IF.NAME} |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
+ROW |2522 |2741 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2523 |2742 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2524 |2743 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2525 |2744 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2526 |2745 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2527 |2746 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2528 |2747 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2529 |2748 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2530 |2749 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2531 |2750 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2532 |2751 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2533 |2752 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2534 |2753 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2535 |2754 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2536 |2755 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2537 |2756 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2538 |2757 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2539 |2758 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2540 |2759 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2541 |2760 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2542 |2761 |8 |{#EXTERNAL_SENSOR1_NAME}|Temp |
+ROW |2543 |2762 |8 |{#EXTERNAL_SENSOR2_NAME}|Temp |
+ROW |2544 |2763 |8 |{#TYPE} |8 |
+ROW |2545 |2764 |8 |{#TYPE} |8 |
+ROW |2546 |2765 |8 |{#FSTYPE} |3&pipe;4 |
TABLE |lld_override_operation
FIELDS|lld_override_operationid|lld_overrideid|operationobject|operator|value |
-ROW |2631 |2542 |0 |2 |Aggregated status |
-ROW |2632 |2542 |0 |2 |State |
-ROW |2633 |2543 |0 |2 |Check |
-ROW |2634 |2544 |1 |2 |Too many failed gRPC requests |
-ROW |2635 |2545 |0 |2 |Number of responses with codes |
-ROW |2636 |2546 |0 |2 |Number of responses with codes |
-ROW |2637 |2547 |0 |2 |Number of responses with codes |
-ROW |2638 |2548 |0 |2 |Number of responses with codes |
-ROW |2639 |2549 |0 |2 |Number of responses with codes |
-ROW |2640 |2550 |0 |2 |Number of responses with codes |
-ROW |2641 |2551 |0 |2 |bucket |
-ROW |2642 |2552 |0 |3 |bucket |
-ROW |2643 |2553 |0 |2 |bucket |
-ROW |2644 |2554 |0 |3 |bucket |
-ROW |2645 |2555 |0 |2 |bucket |
-ROW |2646 |2556 |0 |3 |bucket |
-ROW |2647 |2557 |0 |2 |bucket |
-ROW |2648 |2558 |0 |3 |bucket |
-ROW |2649 |2559 |0 |2 |bucket |
-ROW |2650 |2560 |0 |3 |bucket |
-ROW |2651 |2561 |0 |2 |bucket |
-ROW |2652 |2562 |0 |3 |bucket |
-ROW |2653 |2563 |0 |2 |bucket |
-ROW |2654 |2564 |0 |3 |bucket |
-ROW |2655 |2565 |1 |2 |Invalid video stream resolution parameters |
-ROW |2656 |2566 |0 |2 |Replication lag |
-ROW |2657 |2567 |0 |2 |Number of replicas |
-ROW |2658 |2567 |0 |2 |Unhealthy replicas |
-ROW |2659 |2567 |0 |2 |Number of unhealthy replicas |
-ROW |2660 |2567 |0 |2 |Replication lag |
-ROW |2661 |2568 |1 |2 |Too many missed regions |
-ROW |2662 |2569 |1 |2 |There are unresponsive peers |
-ROW |2663 |2570 |1 |2 |Too many failed GC-related operations |
-ROW |2664 |2571 |1 |2 |Too many failure messages |
-ROW |2665 |2572 |0 |8 |Bad_Block_Rate |
-ROW |2666 |2573 |0 |8 |Media&pipe;Percentage&pipe;Critical |
-ROW |2667 |2574 |0 |8 |Power_Cycle_Count |
-ROW |2668 |2575 |0 |8 |Program_Fail_Count_Chip |
-ROW |2669 |2576 |0 |8 |Raw_Read_Error_Rate |
-ROW |2670 |2577 |0 |8 |Reallocated_Sector_Ct |
-ROW |2671 |2578 |0 |8 |Reported_Uncorrect |
-ROW |2672 |2579 |0 |8 |Seek_Error_Rate |
-ROW |2673 |2580 |0 |2 |Self-test |
-ROW |2674 |2581 |0 |8 |Spin_Up_Time |
-ROW |2675 |2582 |0 |8 |Start_Stop_Count |
-ROW |2676 |2583 |0 |8 |Bad_Block_Rate |
-ROW |2677 |2584 |0 |8 |Media&pipe;Percentage&pipe;Critical |
-ROW |2678 |2585 |0 |8 |Power_Cycle_Count |
-ROW |2679 |2586 |0 |8 |Program_Fail_Count_Chip |
-ROW |2680 |2587 |0 |8 |Raw_Read_Error_Rate |
-ROW |2681 |2588 |0 |8 |Reallocated_Sector_Ct |
-ROW |2682 |2589 |0 |8 |Reported_Uncorrect |
-ROW |2683 |2590 |0 |8 |Seek_Error_Rate |
-ROW |2684 |2591 |0 |2 |Self-test |
-ROW |2685 |2592 |0 |8 |Spin_Up_Time |
-ROW |2686 |2593 |0 |8 |Start_Stop_Count |
-ROW |2687 |2594 |1 |8 |Temperature is above the critical threshold|
-ROW |2688 |2595 |1 |8 |Temperature is above the warning threshold |
-ROW |2689 |2596 |1 |8 |Temperature is below the critical threshold|
-ROW |2690 |2597 |1 |8 |Temperature is below the warning threshold |
-ROW |2691 |2598 |1 |8 |Fan speed is above the critical threshold |
-ROW |2692 |2599 |1 |8 |Fan speed is above the warning threshold |
-ROW |2693 |2600 |1 |8 |Fan speed is below the critical threshold |
-ROW |2694 |2601 |1 |8 |Fan speed is below the warning threshold |
-ROW |2695 |2602 |1 |8 |Voltage is above the critical threshold |
-ROW |2696 |2603 |1 |8 |Voltage is above the warning threshold |
-ROW |2697 |2604 |1 |8 |Voltage is below the critical threshold |
-ROW |2698 |2605 |1 |8 |Voltage is below the warning threshold |
-ROW |2699 |2606 |1 |8 |.* |
-ROW |2700 |2607 |1 |8 |.* |
-ROW |2701 |2608 |1 |8 |.* |
-ROW |2702 |2609 |1 |8 |.* |
-ROW |2703 |2610 |1 |8 |.* |
-ROW |2704 |2611 |1 |8 |.* |
-ROW |2705 |2612 |1 |8 |.* |
-ROW |2706 |2613 |1 |8 |.* |
-ROW |2707 |2614 |1 |8 |.* |
-ROW |2708 |2615 |1 |8 |.* |
-ROW |2709 |2616 |1 |8 |.* |
-ROW |2710 |2617 |1 |8 |.* |
-ROW |2711 |2618 |1 |8 |.* |
-ROW |2712 |2619 |1 |8 |.* |
-ROW |2713 |2620 |1 |8 |.* |
-ROW |2714 |2621 |1 |8 |.* |
-ROW |2715 |2622 |1 |8 |.* |
-ROW |2716 |2623 |1 |8 |.* |
-ROW |2717 |2624 |1 |8 |.* |
-ROW |2718 |2625 |1 |8 |.* |
-ROW |2719 |2626 |0 |2 |Humidity |
-ROW |2720 |2627 |0 |2 |Humidity |
-ROW |2721 |2628 |0 |2 |Humidity |
-ROW |2722 |2629 |0 |2 |Humidity |
-ROW |2723 |2630 |0 |2 |Humidity |
-ROW |2724 |2631 |0 |2 |Humidity |
-ROW |2725 |2632 |0 |2 |Humidity |
-ROW |2726 |2633 |0 |2 |Humidity |
-ROW |2727 |2634 |0 |2 |Humidity |
-ROW |2728 |2635 |0 |2 |Humidity |
-ROW |2729 |2636 |0 |2 |Humidity |
-ROW |2730 |2637 |0 |2 |Humidity |
-ROW |2731 |2638 |0 |2 |Humidity |
-ROW |2732 |2639 |0 |2 |Humidity |
-ROW |2733 |2640 |0 |2 |Humidity |
-ROW |2734 |2641 |0 |2 |Humidity |
-ROW |2735 |2642 |0 |2 |Humidity |
-ROW |2736 |2643 |0 |2 |Humidity |
-ROW |2737 |2644 |0 |2 |Humidity |
-ROW |2738 |2645 |0 |2 |Humidity |
-ROW |2739 |2646 |0 |2 |Humidity |
-ROW |2740 |2647 |0 |2 |Humidity |
-ROW |2741 |2648 |0 |8 |SSD life left |
-ROW |2742 |2649 |0 |8 |SSD life left |
-ROW |2743 |2650 |0 |2 |Saved |
-ROW |2744 |2651 |1 |2 |{#SENSOR_HI_CRIT} |
-ROW |2745 |2652 |1 |2 |{#SENSOR_HI_DISAST} |
-ROW |2746 |2653 |1 |2 |{#SENSOR_HI_WARN} |
-ROW |2747 |2654 |1 |2 |{#SENSOR_LO_CRIT} |
-ROW |2748 |2655 |1 |2 |{#SENSOR_LO_DISAST} |
-ROW |2749 |2656 |1 |2 |{#SENSOR_LO_WARN} |
+ROW |2750 |2657 |0 |2 |Aggregated status |
+ROW |2751 |2657 |0 |2 |State |
+ROW |2752 |2658 |0 |2 |Check |
+ROW |2753 |2659 |1 |2 |Too many failed gRPC requests |
+ROW |2754 |2660 |0 |2 |Number of responses with codes |
+ROW |2755 |2661 |0 |2 |Number of responses with codes |
+ROW |2756 |2662 |0 |2 |Number of responses with codes |
+ROW |2757 |2663 |0 |2 |Number of responses with codes |
+ROW |2758 |2664 |0 |2 |Number of responses with codes |
+ROW |2759 |2665 |0 |2 |Number of responses with codes |
+ROW |2760 |2666 |0 |2 |bucket |
+ROW |2761 |2667 |0 |3 |bucket |
+ROW |2762 |2668 |0 |2 |bucket |
+ROW |2763 |2669 |0 |3 |bucket |
+ROW |2764 |2670 |0 |2 |bucket |
+ROW |2765 |2671 |0 |3 |bucket |
+ROW |2766 |2672 |0 |2 |bucket |
+ROW |2767 |2673 |0 |3 |bucket |
+ROW |2768 |2674 |0 |2 |bucket |
+ROW |2769 |2675 |0 |3 |bucket |
+ROW |2770 |2676 |0 |2 |bucket |
+ROW |2771 |2677 |0 |3 |bucket |
+ROW |2772 |2678 |0 |2 |bucket |
+ROW |2773 |2679 |0 |3 |bucket |
+ROW |2774 |2680 |1 |2 |Invalid video stream resolution parameters |
+ROW |2775 |2681 |0 |2 |Replication lag |
+ROW |2776 |2682 |0 |2 |Number of replicas |
+ROW |2777 |2682 |0 |2 |Unhealthy replicas |
+ROW |2778 |2682 |0 |2 |Number of unhealthy replicas |
+ROW |2779 |2682 |0 |2 |Replication lag |
+ROW |2780 |2683 |1 |2 |Too many missed regions |
+ROW |2781 |2684 |1 |2 |There are unresponsive peers |
+ROW |2782 |2685 |1 |2 |Too many failed GC-related operations |
+ROW |2783 |2686 |1 |2 |Too many failure messages |
+ROW |2784 |2687 |0 |8 |Bad_Block_Rate |
+ROW |2785 |2688 |0 |8 |Media&pipe;Percentage&pipe;Critical |
+ROW |2786 |2689 |0 |8 |Power_Cycle_Count |
+ROW |2787 |2690 |0 |8 |Program_Fail_Count_Chip |
+ROW |2788 |2691 |0 |8 |Raw_Read_Error_Rate |
+ROW |2789 |2692 |0 |8 |Reallocated_Sector_Ct |
+ROW |2790 |2693 |0 |8 |Reported_Uncorrect |
+ROW |2791 |2694 |0 |8 |Seek_Error_Rate |
+ROW |2792 |2695 |0 |2 |Self-test |
+ROW |2793 |2696 |0 |8 |Spin_Up_Time |
+ROW |2794 |2697 |0 |8 |Start_Stop_Count |
+ROW |2795 |2698 |0 |8 |Bad_Block_Rate |
+ROW |2796 |2699 |0 |8 |Media&pipe;Percentage&pipe;Critical |
+ROW |2797 |2700 |0 |8 |Power_Cycle_Count |
+ROW |2798 |2701 |0 |8 |Program_Fail_Count_Chip |
+ROW |2799 |2702 |0 |8 |Raw_Read_Error_Rate |
+ROW |2800 |2703 |0 |8 |Reallocated_Sector_Ct |
+ROW |2801 |2704 |0 |8 |Reported_Uncorrect |
+ROW |2802 |2705 |0 |8 |Seek_Error_Rate |
+ROW |2803 |2706 |0 |2 |Self-test |
+ROW |2804 |2707 |0 |8 |Spin_Up_Time |
+ROW |2805 |2708 |0 |8 |Start_Stop_Count |
+ROW |2806 |2709 |1 |8 |Temperature is above the critical threshold|
+ROW |2807 |2710 |1 |8 |Temperature is above the warning threshold |
+ROW |2808 |2711 |1 |8 |Temperature is below the critical threshold|
+ROW |2809 |2712 |1 |8 |Temperature is below the warning threshold |
+ROW |2810 |2713 |1 |8 |Fan speed is above the critical threshold |
+ROW |2811 |2714 |1 |8 |Fan speed is above the warning threshold |
+ROW |2812 |2715 |1 |8 |Fan speed is below the critical threshold |
+ROW |2813 |2716 |1 |8 |Fan speed is below the warning threshold |
+ROW |2814 |2717 |1 |8 |Voltage is above the critical threshold |
+ROW |2815 |2718 |1 |8 |Voltage is above the warning threshold |
+ROW |2816 |2719 |1 |8 |Voltage is below the critical threshold |
+ROW |2817 |2720 |1 |8 |Voltage is below the warning threshold |
+ROW |2818 |2721 |1 |8 |.* |
+ROW |2819 |2722 |1 |8 |.* |
+ROW |2820 |2723 |1 |8 |.* |
+ROW |2821 |2724 |1 |8 |.* |
+ROW |2822 |2725 |1 |8 |.* |
+ROW |2823 |2726 |1 |8 |.* |
+ROW |2824 |2727 |1 |8 |.* |
+ROW |2825 |2728 |1 |8 |.* |
+ROW |2826 |2729 |1 |8 |.* |
+ROW |2827 |2730 |1 |8 |.* |
+ROW |2828 |2731 |1 |8 |.* |
+ROW |2829 |2732 |1 |8 |.* |
+ROW |2830 |2733 |1 |8 |.* |
+ROW |2831 |2734 |1 |8 |.* |
+ROW |2832 |2735 |1 |8 |.* |
+ROW |2833 |2736 |1 |8 |.* |
+ROW |2834 |2737 |1 |8 |.* |
+ROW |2835 |2738 |1 |8 |.* |
+ROW |2836 |2739 |1 |8 |.* |
+ROW |2837 |2740 |1 |8 |.* |
+ROW |2838 |2741 |0 |2 |Humidity |
+ROW |2839 |2742 |0 |2 |Humidity |
+ROW |2840 |2743 |0 |2 |Humidity |
+ROW |2841 |2744 |0 |2 |Humidity |
+ROW |2842 |2745 |0 |2 |Humidity |
+ROW |2843 |2746 |0 |2 |Humidity |
+ROW |2844 |2747 |0 |2 |Humidity |
+ROW |2845 |2748 |0 |2 |Humidity |
+ROW |2846 |2749 |0 |2 |Humidity |
+ROW |2847 |2750 |0 |2 |Humidity |
+ROW |2848 |2751 |0 |2 |Humidity |
+ROW |2849 |2752 |0 |2 |Humidity |
+ROW |2850 |2753 |0 |2 |Humidity |
+ROW |2851 |2754 |0 |2 |Humidity |
+ROW |2852 |2755 |0 |2 |Humidity |
+ROW |2853 |2756 |0 |2 |Humidity |
+ROW |2854 |2757 |0 |2 |Humidity |
+ROW |2855 |2758 |0 |2 |Humidity |
+ROW |2856 |2759 |0 |2 |Humidity |
+ROW |2857 |2760 |0 |2 |Humidity |
+ROW |2858 |2761 |0 |2 |Humidity |
+ROW |2859 |2762 |0 |2 |Humidity |
+ROW |2860 |2763 |0 |8 |SSD life left |
+ROW |2861 |2764 |0 |8 |SSD life left |
+ROW |2862 |2765 |0 |2 |Saved |
+ROW |2863 |2766 |1 |2 |{#SENSOR_HI_CRIT} |
+ROW |2864 |2767 |1 |2 |{#SENSOR_HI_DISAST} |
+ROW |2865 |2768 |1 |2 |{#SENSOR_HI_WARN} |
+ROW |2866 |2769 |1 |2 |{#SENSOR_LO_CRIT} |
+ROW |2867 |2770 |1 |2 |{#SENSOR_LO_DISAST} |
+ROW |2868 |2771 |1 |2 |{#SENSOR_LO_WARN} |
TABLE |lld_override_opstatus
FIELDS|lld_override_operationid|status|
-ROW |2631 |0 |
-ROW |2632 |0 |
-ROW |2633 |0 |
-ROW |2634 |0 |
-ROW |2635 |0 |
-ROW |2636 |0 |
-ROW |2637 |0 |
-ROW |2638 |0 |
-ROW |2639 |0 |
-ROW |2640 |0 |
-ROW |2641 |0 |
-ROW |2642 |0 |
-ROW |2643 |0 |
-ROW |2644 |0 |
-ROW |2645 |0 |
-ROW |2646 |0 |
-ROW |2647 |0 |
-ROW |2648 |0 |
-ROW |2649 |0 |
-ROW |2650 |0 |
-ROW |2651 |0 |
-ROW |2652 |0 |
-ROW |2653 |0 |
-ROW |2654 |0 |
-ROW |2655 |0 |
-ROW |2656 |0 |
-ROW |2657 |0 |
-ROW |2658 |0 |
-ROW |2659 |0 |
-ROW |2660 |0 |
-ROW |2661 |0 |
-ROW |2662 |0 |
-ROW |2663 |0 |
-ROW |2664 |0 |
-ROW |2665 |0 |
-ROW |2666 |0 |
-ROW |2667 |0 |
-ROW |2668 |0 |
-ROW |2669 |0 |
-ROW |2670 |0 |
-ROW |2671 |0 |
-ROW |2672 |0 |
-ROW |2673 |0 |
-ROW |2674 |0 |
-ROW |2675 |0 |
-ROW |2676 |0 |
-ROW |2677 |0 |
-ROW |2678 |0 |
-ROW |2679 |0 |
-ROW |2680 |0 |
-ROW |2681 |0 |
-ROW |2682 |0 |
-ROW |2683 |0 |
-ROW |2684 |0 |
-ROW |2685 |0 |
-ROW |2686 |0 |
-ROW |2687 |0 |
-ROW |2688 |0 |
-ROW |2689 |0 |
-ROW |2690 |0 |
-ROW |2691 |0 |
-ROW |2692 |0 |
-ROW |2693 |0 |
-ROW |2694 |0 |
-ROW |2695 |0 |
-ROW |2696 |0 |
-ROW |2697 |0 |
-ROW |2698 |0 |
-ROW |2699 |0 |
-ROW |2700 |0 |
-ROW |2701 |0 |
-ROW |2702 |0 |
-ROW |2703 |0 |
-ROW |2704 |0 |
-ROW |2705 |0 |
-ROW |2706 |0 |
-ROW |2707 |0 |
-ROW |2708 |0 |
-ROW |2709 |0 |
-ROW |2710 |0 |
-ROW |2711 |0 |
-ROW |2712 |0 |
-ROW |2713 |0 |
-ROW |2714 |0 |
-ROW |2715 |0 |
-ROW |2716 |0 |
-ROW |2717 |0 |
-ROW |2718 |0 |
-ROW |2719 |0 |
-ROW |2720 |0 |
-ROW |2721 |0 |
-ROW |2722 |0 |
-ROW |2723 |0 |
-ROW |2724 |0 |
-ROW |2725 |0 |
-ROW |2726 |0 |
-ROW |2727 |0 |
-ROW |2728 |0 |
-ROW |2729 |0 |
-ROW |2730 |0 |
-ROW |2731 |0 |
-ROW |2732 |0 |
-ROW |2733 |0 |
-ROW |2734 |0 |
-ROW |2735 |0 |
-ROW |2736 |0 |
-ROW |2737 |0 |
-ROW |2738 |0 |
-ROW |2739 |0 |
-ROW |2740 |0 |
-ROW |2741 |0 |
-ROW |2742 |0 |
-ROW |2743 |0 |
-ROW |2744 |0 |
-ROW |2745 |0 |
-ROW |2746 |0 |
-ROW |2747 |0 |
-ROW |2748 |0 |
-ROW |2749 |0 |
+ROW |2750 |0 |
+ROW |2751 |0 |
+ROW |2752 |0 |
+ROW |2753 |0 |
+ROW |2754 |0 |
+ROW |2755 |0 |
+ROW |2756 |0 |
+ROW |2757 |0 |
+ROW |2758 |0 |
+ROW |2759 |0 |
+ROW |2760 |0 |
+ROW |2761 |0 |
+ROW |2762 |0 |
+ROW |2763 |0 |
+ROW |2764 |0 |
+ROW |2765 |0 |
+ROW |2766 |0 |
+ROW |2767 |0 |
+ROW |2768 |0 |
+ROW |2769 |0 |
+ROW |2770 |0 |
+ROW |2771 |0 |
+ROW |2772 |0 |
+ROW |2773 |0 |
+ROW |2774 |0 |
+ROW |2775 |0 |
+ROW |2776 |0 |
+ROW |2777 |0 |
+ROW |2778 |0 |
+ROW |2779 |0 |
+ROW |2780 |0 |
+ROW |2781 |0 |
+ROW |2782 |0 |
+ROW |2783 |0 |
+ROW |2784 |0 |
+ROW |2785 |0 |
+ROW |2786 |0 |
+ROW |2787 |0 |
+ROW |2788 |0 |
+ROW |2789 |0 |
+ROW |2790 |0 |
+ROW |2791 |0 |
+ROW |2792 |0 |
+ROW |2793 |0 |
+ROW |2794 |0 |
+ROW |2795 |0 |
+ROW |2796 |0 |
+ROW |2797 |0 |
+ROW |2798 |0 |
+ROW |2799 |0 |
+ROW |2800 |0 |
+ROW |2801 |0 |
+ROW |2802 |0 |
+ROW |2803 |0 |
+ROW |2804 |0 |
+ROW |2805 |0 |
+ROW |2806 |0 |
+ROW |2807 |0 |
+ROW |2808 |0 |
+ROW |2809 |0 |
+ROW |2810 |0 |
+ROW |2811 |0 |
+ROW |2812 |0 |
+ROW |2813 |0 |
+ROW |2814 |0 |
+ROW |2815 |0 |
+ROW |2816 |0 |
+ROW |2817 |0 |
+ROW |2818 |0 |
+ROW |2819 |0 |
+ROW |2820 |0 |
+ROW |2821 |0 |
+ROW |2822 |0 |
+ROW |2823 |0 |
+ROW |2824 |0 |
+ROW |2825 |0 |
+ROW |2826 |0 |
+ROW |2827 |0 |
+ROW |2828 |0 |
+ROW |2829 |0 |
+ROW |2830 |0 |
+ROW |2831 |0 |
+ROW |2832 |0 |
+ROW |2833 |0 |
+ROW |2834 |0 |
+ROW |2835 |0 |
+ROW |2836 |0 |
+ROW |2837 |0 |
+ROW |2838 |0 |
+ROW |2839 |0 |
+ROW |2840 |0 |
+ROW |2841 |0 |
+ROW |2842 |0 |
+ROW |2843 |0 |
+ROW |2844 |0 |
+ROW |2845 |0 |
+ROW |2846 |0 |
+ROW |2847 |0 |
+ROW |2848 |0 |
+ROW |2849 |0 |
+ROW |2850 |0 |
+ROW |2851 |0 |
+ROW |2852 |0 |
+ROW |2853 |0 |
+ROW |2854 |0 |
+ROW |2855 |0 |
+ROW |2856 |0 |
+ROW |2857 |0 |
+ROW |2858 |0 |
+ROW |2859 |0 |
+ROW |2860 |0 |
+ROW |2861 |0 |
+ROW |2862 |0 |
+ROW |2863 |0 |
+ROW |2864 |0 |
+ROW |2865 |0 |
+ROW |2866 |0 |
+ROW |2867 |0 |
+ROW |2868 |0 |
TABLE |lld_override_opdiscover
FIELDS|lld_override_operationid|discover|
-ROW |2631 |0 |
-ROW |2632 |0 |
-ROW |2633 |0 |
-ROW |2634 |0 |
-ROW |2635 |1 |
-ROW |2636 |1 |
-ROW |2637 |1 |
-ROW |2638 |1 |
-ROW |2639 |1 |
-ROW |2640 |1 |
-ROW |2641 |0 |
-ROW |2642 |0 |
-ROW |2643 |0 |
-ROW |2644 |0 |
-ROW |2645 |0 |
-ROW |2646 |0 |
-ROW |2647 |0 |
-ROW |2648 |0 |
-ROW |2649 |0 |
-ROW |2650 |0 |
-ROW |2651 |0 |
-ROW |2652 |0 |
-ROW |2653 |0 |
-ROW |2654 |0 |
-ROW |2655 |1 |
-ROW |2656 |1 |
-ROW |2657 |0 |
-ROW |2658 |0 |
-ROW |2659 |0 |
-ROW |2660 |1 |
-ROW |2661 |0 |
-ROW |2662 |0 |
-ROW |2663 |0 |
-ROW |2664 |0 |
-ROW |2665 |0 |
-ROW |2666 |1 |
-ROW |2667 |0 |
-ROW |2668 |0 |
-ROW |2669 |0 |
-ROW |2670 |0 |
-ROW |2671 |0 |
-ROW |2672 |0 |
-ROW |2673 |1 |
-ROW |2674 |0 |
-ROW |2675 |0 |
-ROW |2676 |0 |
-ROW |2677 |1 |
-ROW |2678 |0 |
-ROW |2679 |0 |
-ROW |2680 |0 |
-ROW |2681 |0 |
-ROW |2682 |0 |
-ROW |2683 |0 |
-ROW |2684 |1 |
-ROW |2685 |0 |
-ROW |2686 |0 |
-ROW |2687 |1 |
-ROW |2688 |1 |
-ROW |2689 |1 |
-ROW |2690 |1 |
-ROW |2691 |1 |
-ROW |2692 |1 |
-ROW |2693 |1 |
-ROW |2694 |1 |
-ROW |2695 |1 |
-ROW |2696 |1 |
-ROW |2697 |1 |
-ROW |2698 |1 |
-ROW |2699 |1 |
-ROW |2700 |1 |
-ROW |2701 |1 |
-ROW |2702 |1 |
-ROW |2703 |1 |
-ROW |2704 |1 |
-ROW |2705 |1 |
-ROW |2706 |1 |
-ROW |2707 |1 |
-ROW |2708 |1 |
-ROW |2709 |1 |
-ROW |2710 |0 |
-ROW |2711 |1 |
-ROW |2712 |1 |
-ROW |2713 |1 |
-ROW |2714 |1 |
-ROW |2715 |1 |
-ROW |2716 |1 |
-ROW |2717 |1 |
-ROW |2718 |1 |
-ROW |2719 |1 |
-ROW |2720 |1 |
-ROW |2721 |1 |
-ROW |2722 |1 |
-ROW |2723 |1 |
-ROW |2724 |1 |
-ROW |2725 |1 |
-ROW |2726 |1 |
-ROW |2727 |1 |
-ROW |2728 |1 |
-ROW |2729 |1 |
-ROW |2730 |1 |
-ROW |2731 |1 |
-ROW |2732 |1 |
-ROW |2733 |1 |
-ROW |2734 |1 |
-ROW |2735 |1 |
-ROW |2736 |1 |
-ROW |2737 |1 |
-ROW |2738 |1 |
-ROW |2739 |1 |
-ROW |2740 |1 |
-ROW |2741 |0 |
-ROW |2742 |0 |
-ROW |2743 |1 |
-ROW |2744 |1 |
-ROW |2745 |1 |
-ROW |2746 |1 |
-ROW |2747 |1 |
-ROW |2748 |1 |
-ROW |2749 |1 |
+ROW |2750 |0 |
+ROW |2751 |0 |
+ROW |2752 |0 |
+ROW |2753 |0 |
+ROW |2754 |1 |
+ROW |2755 |1 |
+ROW |2756 |1 |
+ROW |2757 |1 |
+ROW |2758 |1 |
+ROW |2759 |1 |
+ROW |2760 |0 |
+ROW |2761 |0 |
+ROW |2762 |0 |
+ROW |2763 |0 |
+ROW |2764 |0 |
+ROW |2765 |0 |
+ROW |2766 |0 |
+ROW |2767 |0 |
+ROW |2768 |0 |
+ROW |2769 |0 |
+ROW |2770 |0 |
+ROW |2771 |0 |
+ROW |2772 |0 |
+ROW |2773 |0 |
+ROW |2774 |1 |
+ROW |2775 |1 |
+ROW |2776 |0 |
+ROW |2777 |0 |
+ROW |2778 |0 |
+ROW |2779 |1 |
+ROW |2780 |0 |
+ROW |2781 |0 |
+ROW |2782 |0 |
+ROW |2783 |0 |
+ROW |2784 |0 |
+ROW |2785 |1 |
+ROW |2786 |0 |
+ROW |2787 |0 |
+ROW |2788 |0 |
+ROW |2789 |0 |
+ROW |2790 |0 |
+ROW |2791 |0 |
+ROW |2792 |1 |
+ROW |2793 |0 |
+ROW |2794 |0 |
+ROW |2795 |0 |
+ROW |2796 |1 |
+ROW |2797 |0 |
+ROW |2798 |0 |
+ROW |2799 |0 |
+ROW |2800 |0 |
+ROW |2801 |0 |
+ROW |2802 |0 |
+ROW |2803 |1 |
+ROW |2804 |0 |
+ROW |2805 |0 |
+ROW |2806 |1 |
+ROW |2807 |1 |
+ROW |2808 |1 |
+ROW |2809 |1 |
+ROW |2810 |1 |
+ROW |2811 |1 |
+ROW |2812 |1 |
+ROW |2813 |1 |
+ROW |2814 |1 |
+ROW |2815 |1 |
+ROW |2816 |1 |
+ROW |2817 |1 |
+ROW |2818 |1 |
+ROW |2819 |1 |
+ROW |2820 |1 |
+ROW |2821 |1 |
+ROW |2822 |1 |
+ROW |2823 |1 |
+ROW |2824 |1 |
+ROW |2825 |1 |
+ROW |2826 |1 |
+ROW |2827 |1 |
+ROW |2828 |1 |
+ROW |2829 |0 |
+ROW |2830 |1 |
+ROW |2831 |1 |
+ROW |2832 |1 |
+ROW |2833 |1 |
+ROW |2834 |1 |
+ROW |2835 |1 |
+ROW |2836 |1 |
+ROW |2837 |1 |
+ROW |2838 |1 |
+ROW |2839 |1 |
+ROW |2840 |1 |
+ROW |2841 |1 |
+ROW |2842 |1 |
+ROW |2843 |1 |
+ROW |2844 |1 |
+ROW |2845 |1 |
+ROW |2846 |1 |
+ROW |2847 |1 |
+ROW |2848 |1 |
+ROW |2849 |1 |
+ROW |2850 |1 |
+ROW |2851 |1 |
+ROW |2852 |1 |
+ROW |2853 |1 |
+ROW |2854 |1 |
+ROW |2855 |1 |
+ROW |2856 |1 |
+ROW |2857 |1 |
+ROW |2858 |1 |
+ROW |2859 |1 |
+ROW |2860 |0 |
+ROW |2861 |0 |
+ROW |2862 |1 |
+ROW |2863 |1 |
+ROW |2864 |1 |
+ROW |2865 |1 |
+ROW |2866 |1 |
+ROW |2867 |1 |
+ROW |2868 |1 |
TABLE |item_parameter
FIELDS|item_parameterid|itemid|name |value |
diff --git a/database/postgresql/double.sql b/database/postgresql/double.sql
index 49f55c8c575..978752b9255 100644
--- a/database/postgresql/double.sql
+++ b/database/postgresql/double.sql
@@ -1,10 +1,10 @@
-ALTER TABLE ONLY trends
+ALTER TABLE trends
ALTER COLUMN value_min TYPE DOUBLE PRECISION,
ALTER COLUMN value_min SET DEFAULT '0.0000',
ALTER COLUMN value_avg TYPE DOUBLE PRECISION,
ALTER COLUMN value_avg SET DEFAULT '0.0000',
ALTER COLUMN value_max TYPE DOUBLE PRECISION,
ALTER COLUMN value_max SET DEFAULT '0.0000';
-ALTER TABLE ONLY history
+ALTER TABLE history
ALTER COLUMN value TYPE DOUBLE PRECISION,
ALTER COLUMN value SET DEFAULT '0.0000';
diff --git a/include/version.h b/include/version.h
index 5900b6d14fa..af6529e1be4 100644
--- a/include/version.h
+++ b/include/version.h
@@ -24,10 +24,10 @@
#define ZBX_STR(str) ZBX_STR2(str)
#define APPLICATION_NAME "Zabbix Agent"
-#define ZABBIX_REVDATE "14 September 2022"
+#define ZABBIX_REVDATE "25 October 2022"
#define ZABBIX_VERSION_MAJOR 6
#define ZABBIX_VERSION_MINOR 0
-#define ZABBIX_VERSION_PATCH 9
+#define ZABBIX_VERSION_PATCH 10
#ifndef ZABBIX_VERSION_REVISION
# define ZABBIX_VERSION_REVISION {ZABBIX_REVISION}
#endif
diff --git a/include/zbxdb.h b/include/zbxdb.h
index 13c7df0270e..f7c3759d750 100644
--- a/include/zbxdb.h
+++ b/include/zbxdb.h
@@ -102,6 +102,11 @@ zbx_err_codes_t zbx_db_last_errcode(void);
int zbx_tsdb_get_version(void);
char *zbx_tsdb_get_license(void);
#define ZBX_DB_TSDB_V1 (20000 > zbx_tsdb_get_version())
+int zbx_tsdb_table_has_compressed_chunks(const char *table_names);
+#define ZBX_TSDB1_HISTORY_TABLES "'history_uint'::regclass,'history_log'::regclass,'history_str'::regclass,'history_text'::regclass,'history'::regclass"
+#define ZBX_TSDB2_HISTORY_TABLES "'history_uint','history_log','history_str','history_text','history'"
+#define ZBX_TSDB1_TRENDS_TABLES "'trends'::regclass,'trends_uint'::regclass"
+#define ZBX_TSDB2_TRENDS_TABLES "'trends','trends_uint'"
#endif
#ifdef HAVE_ORACLE
@@ -167,8 +172,8 @@ int zbx_db_strlen_n(const char *text_loc, size_t maxlen);
#define ZBX_POSTGRESQL_MIN_VERSION_FRIENDLY "10.9"
#define ZBX_POSTGRESQL_MIN_SUPPORTED_VERSION 130000
#define ZBX_POSTGRESQL_MIN_SUPPORTED_VERSION_FRIENDLY "13.0"
-#define ZBX_POSTGRESQL_MAX_VERSION 149999
-#define ZBX_POSTGRESQL_MAX_VERSION_FRIENDLY "14.x"
+#define ZBX_POSTGRESQL_MAX_VERSION 159999
+#define ZBX_POSTGRESQL_MAX_VERSION_FRIENDLY "15.x"
#define ZBX_ORACLE_MIN_VERSION 1201000200
#define ZBX_ORACLE_MIN_VERSION_FRIENDLY "Database 12c Release 12.01.00.02.x"
@@ -192,12 +197,14 @@ int zbx_db_strlen_n(const char *text_loc, size_t maxlen);
#define ZBX_TIMESCALE_MIN_SUPPORTED_VERSION 20001
#define ZBX_TIMESCALE_MIN_SUPPORTED_VERSION_FRIENDLY "2.0.1"
#define ZBX_TIMESCALE_MIN_VERSION_WITH_LICENSE_PARAM_SUPPORT 20000
-#define ZBX_TIMESCALE_MAX_VERSION 20799
-#define ZBX_TIMESCALE_MAX_VERSION_FRIENDLY "2.7"
+#define ZBX_TIMESCALE_MAX_VERSION 20899
+#define ZBX_TIMESCALE_MAX_VERSION_FRIENDLY "2.8"
#define ZBX_TIMESCALE_LICENSE_APACHE "apache"
#define ZBX_TIMESCALE_LICENSE_APACHE_FRIENDLY "TimescaleDB Apache 2 Edition"
#define ZBX_TIMESCALE_LICENSE_COMMUNITY "timescale"
#define ZBX_TIMESCALE_LICENSE_COMMUNITY_FRIENDLY "TimescaleDB Community Edition"
+#define ZBX_TIMESCALE_COMPRESSED_CHUNKS_HISTORY "compressed_chunks_history"
+#define ZBX_TIMESCALE_COMPRESSED_CHUNKS_TRENDS "compressed_chunks_trends"
#if defined(HAVE_POSTGRESQL)
# define ZBX_SUPPORTED_DB_CHARACTER_SET "utf8"
@@ -281,8 +288,15 @@ struct zbx_db_version_info_t
char *ext_lic;
zbx_db_ext_err_code_t ext_err_code;
+
+ int history_compressed_chunks;
+ int trends_compressed_chunks;
};
+#if defined(HAVE_POSTGRESQL)
+void zbx_tsdb_update_dbversion_info(struct zbx_db_version_info_t *db_version_info);
+#endif
+
void zbx_dbms_version_info_extract(struct zbx_db_version_info_t *version_info);
#ifdef HAVE_POSTGRESQL
void zbx_tsdb_info_extract(struct zbx_db_version_info_t *version_info);
diff --git a/include/zbxserver.h b/include/zbxserver.h
index a58b54d17da..df1451e55d5 100644
--- a/include/zbxserver.h
+++ b/include/zbxserver.h
@@ -22,6 +22,8 @@
#include "dbcache.h"
#include "zbxvariant.h"
+#include "zbxeval.h"
+#include "zbxdb.h"
#define MACRO_TYPE_MESSAGE_NORMAL 0x00000001
#define MACRO_TYPE_MESSAGE_RECOVERY 0x00000002
@@ -142,5 +144,4 @@ int xml_xpath_check(const char *xpath, char *error, size_t errlen);
int zbx_substitute_expression_lld_macros(char **data, zbx_uint64_t rules, const struct zbx_json_parse *jp_row,
const zbx_vector_ptr_t *lld_macro_paths, char **error);
-
#endif
diff --git a/include/zbxtypes.h b/include/zbxtypes.h
index ba799ab27c0..d81244652a1 100644
--- a/include/zbxtypes.h
+++ b/include/zbxtypes.h
@@ -106,7 +106,7 @@ typedef long ssize_t;
# endif
# define zbx_uint64_t uint64_t
-# if __WORDSIZE == 64
+# if __WORDSIZE == 64 || defined(__64BIT__)
# if defined(__APPLE__) && defined(__MACH__) /* OS X */
# define ZBX_FS_UI64 "%llu"
# define ZBX_FS_UO64 "%llo"
@@ -129,7 +129,7 @@ typedef long ssize_t;
# endif
# define zbx_int64_t int64_t
-# if __WORDSIZE == 64
+# if __WORDSIZE == 64 || defined(__64BIT__)
# if defined(__APPLE__) && defined(__MACH__) /* OS X */
# define ZBX_FS_I64 "%lld"
# define ZBX_FS_O64 "%llo"
diff --git a/sass/stylesheets/sass/base/_colors.scss b/sass/stylesheets/sass/base/_colors.scss
index 634f9d85c21..ae326832b64 100644
--- a/sass/stylesheets/sass/base/_colors.scss
+++ b/sass/stylesheets/sass/base/_colors.scss
@@ -121,6 +121,7 @@ $action-shadow-color: rgba(#768d99, .5) !default;
$table-border-color: #ebeef0 !default;
$ui-tab-bg-selected-color: #0275b8 !default;
+$ui-tabfilter-item-border-color: #768d99 !default;
// Forms
$form-font-color: #1f2c33 !default;
diff --git a/sass/stylesheets/sass/components/_tabfilter.scss b/sass/stylesheets/sass/components/_tabfilter.scss
index 0883238022d..22dd80c75f6 100644
--- a/sass/stylesheets/sass/components/_tabfilter.scss
+++ b/sass/stylesheets/sass/components/_tabfilter.scss
@@ -104,17 +104,12 @@ $tab-label-counter-bg-color: $form-disabled-bg-color;
// Tab filter label li element.
.tabfilter-item-label {
- &:hover {
- color: $tab-label-hover-color;
- background-color: darken($tab-label-hover-bg-color, 5%);
- }
-
display: inline-block;
- background-color: $tab-label-bg-color;
border-radius: 2px;
border: 1px solid transparent;
color: $tab-label-color;
- margin-right: 3px;
+ margin-right: 2px;
+ margin-left: 2px;
&.unsaved .tabfilter-item-link {
font-style: italic;
@@ -133,8 +128,7 @@ $tab-label-counter-bg-color: $form-disabled-bg-color;
background-color: $tab-label-expanded-bg-color;
border: 1px solid $tab-label-expanded-border-color;
border-bottom: 0;
- padding-bottom: 8px;
- margin-top: -1px;
+ padding-bottom: 7px;
vertical-align: baseline;
.tabfilter-item-link {
@@ -144,18 +138,10 @@ $tab-label-counter-bg-color: $form-disabled-bg-color;
&:hover {
background: $tab-label-focus-bg-color;
}
-
- .icon-edit {
- background: url($sprite-path) no-repeat -42px -621px;
- }
}
&.selected {
- background-color: darken($tab-label-selected-bg-color, 5%);
-
- .tabfilter-item-link {
- color: $tab-label-selected-color;
- }
+ background-color: $tab-label-expanded-bg-color;
.tabfilter-item-link[data-counter]::after {
display: none;
@@ -174,26 +160,52 @@ $tab-label-counter-bg-color: $form-disabled-bg-color;
.icon-filter.tabfilter-item-link[data-counter]::after {
display: none;
}
+
+ &.ui-sortable-helper {
+ background-color: $tab-label-expanded-bg-color;
+ }
}
// Tab filter label li clickable a element.
.tabfilter-item-link {
+ position: relative;
display: inline-block;
- color: $tab-label-color;
+ color: $tab-label-expanded-color;
border: 1px transparent;
line-height: 22px;
vertical-align: middle;
- padding: 0 8px;
+ padding: 0 8px 7px 8px;
+ margin-bottom: -7px;
+ }
+
+ .ui-sortable-container {
+ // Tab sortable handle left border is visible when handle is not selected, do not have selected sibling before and is not dragged.
+ .tabfilter-item-label.ui-sortable-helper,
+ .tabfilter-item-label:not(.selected) {
+ & + .tabfilter-item-label.ui-sortable-handle:not(.selected,.ui-sortable-helper) {
+ .tabfilter-item-link::before {
+ content: ' ';
+ position: absolute;
+ top: 1px;
+ left: -3px;
+ display: inline-block;
+ height: 20px;
+ border-left: 1px solid $ui-tabfilter-item-border-color;
+ }
+ }
+ }
}
.icon-edit {
@extend %btn-widget-defaults;
width: 24px;
height: 22px;
- background: url($sprite-path) no-repeat -354px -621px;
+ background: url($sprite-path) no-repeat -42px -621px;
cursor: pointer;
margin: 0;
+ padding-bottom: 7px !important;
+ margin-bottom: -7px;
vertical-align: middle;
display: inline-block;
opacity: 0;
@@ -211,9 +223,9 @@ $tab-label-counter-bg-color: $form-disabled-bg-color;
margin-left: .4em;
padding: 0.1em 0.4em;
font-size: $font-h3-size;
- background-color: $tab-label-counter-bg-color;
+ background-color: $ui-bg-selected-color;
border-radius: 2px;
- color: $tab-label-counter-color;
+ color: $white;
content: attr(data-counter);
}
@@ -236,15 +248,11 @@ $tab-label-counter-bg-color: $form-disabled-bg-color;
}
.icon-filter::before {
- display: block;
+ vertical-align: middle;
+ display: inline-block;
width: 24px;
height: 24px;
content: '';
- // white icon
- background: url($sprite-path) no-repeat -87px -547px;
-}
-
-.selected.expanded .icon-filter::before {
// grey icon
- background-position: -246px -547px;
+ background: url($sprite-path) no-repeat -246px -547px;
}
diff --git a/sass/stylesheets/sass/dark-theme.scss b/sass/stylesheets/sass/dark-theme.scss
index e55b7500123..6cf13b55325 100644
--- a/sass/stylesheets/sass/dark-theme.scss
+++ b/sass/stylesheets/sass/dark-theme.scss
@@ -444,7 +444,6 @@ $toc-title-bg-color: #4f4f4f;
}
}
-.selected.expanded .icon-filter::before {
- // grey icon
- background-position: -87px -547px;
+.icon-filter::before {
+ background: url($sprite-path) no-repeat -87px -547px;
}
diff --git a/sass/stylesheets/sass/hc-dark.scss b/sass/stylesheets/sass/hc-dark.scss
index 1fe9ce57236..e1388d08f20 100644
--- a/sass/stylesheets/sass/hc-dark.scss
+++ b/sass/stylesheets/sass/hc-dark.scss
@@ -1535,15 +1535,8 @@ td.inactive-bg {
// Tabfilter
.filter-container.tabfilter-container {
-
- .selected.expanded .icon-filter::before {
- // white icon
- background: url($sprite-path) no-repeat -87px -547px;
- }
-
.icon-filter::before {
- // black icon
- background: url($sprite-path) no-repeat -246px -547px;
+ background: url($sprite-path) no-repeat -87px -547px;
}
.tabfilter-item-label {
diff --git a/sass/stylesheets/sass/screen.scss b/sass/stylesheets/sass/screen.scss
index 426ee379a89..30e08f2449a 100644
--- a/sass/stylesheets/sass/screen.scss
+++ b/sass/stylesheets/sass/screen.scss
@@ -6210,7 +6210,7 @@ $range-input-width: 31px;
}
}
- &:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) {
+ &:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) :first-child {
.interface-cell:not(.interface-cell-details) {
padding-top: 10px;
margin-top: 5px;
diff --git a/sonar-project.properties b/sonar-project.properties
index c410bab39ee..2a65218a85d 100644
--- a/sonar-project.properties
+++ b/sonar-project.properties
@@ -1,6 +1,7 @@
sonar.projectKey=zabbix_zabbix
sonar.organization=zabbix
sonar.java.binaries=target
+sonar.sources=src/, ui/
sonar.java.binaries=**/*.java
sonar.exclusions=**/*.java, **/*.sql, src/zabbix_agent/zabbix_agentd.c, src/zabbix_server/server.c, src/zabbix_proxy/proxy.c, ui/tests/**/*, ui/tests/*, **/test*, **/*test, **/*test*
sonar.cfamily.cache.enabled=false
diff --git a/src/go/conf/zabbix_agent2.d/plugins.d/postgres.conf b/src/go/conf/zabbix_agent2.d/plugins.d/postgres.conf
deleted file mode 100644
index 6c0be4c6eb3..00000000000
--- a/src/go/conf/zabbix_agent2.d/plugins.d/postgres.conf
+++ /dev/null
@@ -1,96 +0,0 @@
-### Option: Plugins.Postgres.CallTimeout
-# The maximum time in seconds for waiting when a request has to be done.
-#
-# Mandatory: no
-# Range: 1-30
-# Default:
-# Plugins.Postgres.CallTimeout=<Global timeout>
-
-### Option: Plugins.Postgres.Timeout
-# The maximum time in seconds for waiting when a connection has to be established.
-#
-# Mandatory: no
-# Range: 1-30
-# Default:
-# Plugins.Postgres.Timeout=<Global timeout>
-
-### Option: Plugins.Postgres.KeepAlive
-# Time in seconds for waiting before unused connections will be closed.
-#
-# Mandatory: no
-# Range: 60-900
-# Default:
-# Plugins.Postgres.KeepAlive=300
-
-### Option: Plugins.Postgres.CustomQueriesPath
-# Full pathname of a directory containing *.sql* files with custom queries.
-#
-# Mandatory: no
-# Default:
-# Plugins.Postgres.CustomQueriesPath=
-
-### Option: Plugins.Postgres.Sessions.*.Uri
-# Uri to connect. "*" should be replaced with a session name.
-#
-# Mandatory: no
-# Range:
-# Must matches the URI format.
-# Supported schemas: "tcp" and "unix".
-# Embedded credentials will be ignored.
-# Default:
-# Plugins.Postgres.Sessions.*.Uri=
-
-### Option: Plugins.Postgres.Sessions.*.User
-# Username for session connection. "*" should be replaced with a session name.
-#
-# Mandatory: no
-# Range: Must matches PostgreSQL user name.
-# Default:
-# Plugins.Postgres.Sessions.*.User=
-
-### Option: Plugins.Postgres.Sessions.*.Password
-# Password for session connection. "*" should be replaced with a session name.
-#
-# Mandatory: no
-# Range: Must matches the Password format.
-# Default:
-# Plugins.Postgres.Sessions.*.Password=
-
-### Option: Plugins.Postgres.Sessions.*.Database
-# Database for session connection. "*" should be replaced with a session name.
-#
-# Mandatory: no
-# Default:
-# Plugins.Postgres.Sessions.*.Database=
-
-### Option: Plugins.Postgres.Sessions.*.TLSConnect
-# Encryption type for Postgres connection. "*" should be replaced with a session name.
-# tls connection required - required
-# verifies certificates - verify_ca
-# verify certificates and ip - verify_full
-#
-# Mandatory: no
-# Default:
-# Plugins.Postgres.Sessions.*.TLSConnect=
-
-### Option: Plugins.Postgres.Sessions.*.TLSCAFile
-# Full pathname of a file containing the top-level CA(s) certificate
-# peer certificate verification.
-#
-# Mandatory: no
-# Default:
-# Plugins.Postgres.Sessions.*.TLSCAFile=
-
-### Option: Plugins.Postgres.Sessions.*.TLSCertFile
-# Full pathname of a file containing the postgres certificate or certificate chain.
-#
-# Mandatory: no
-# Default:
-# Plugins.Postgres.Sessions.*.TLSCertFile=
-
-### Option: Plugins.Postgres.Sessions.*.TLSKeyFile
-# Full pathname of a file containing the postgres private key.
-#
-# Mandatory: no
-# Default:
-# Plugins.Postgres.Sessions.*.TLSKeyFile=
diff --git a/src/go/go.mod b/src/go/go.mod
index a49e83baa4d..bea9bcfd151 100644
--- a/src/go/go.mod
+++ b/src/go/go.mod
@@ -3,7 +3,7 @@ module zabbix.com
go 1.16
require (
- git.zabbix.com/ap/plugin-support v0.0.0-20220608100211-35b8bffd7ad0
+ git.zabbix.com/ap/plugin-support v1.1.1-0.20221021133846-49ba2b4b6cb5
github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69
github.com/cakturk/go-netstat v0.0.0-20200220111822-e5b49efee7a5
github.com/chromedp/cdproto v0.0.0-20210104223854-2cc87dae3ee3
@@ -18,16 +18,13 @@ require (
github.com/goburrow/serial v0.1.0 // indirect
github.com/godbus/dbus v4.1.0+incompatible
github.com/godror/godror v0.20.1
- github.com/jackc/pgx/v4 v4.8.2-0.20200910143026-040df1ccef85
github.com/mattn/go-sqlite3 v1.14.8
github.com/mediocregopher/radix/v3 v3.5.0
github.com/memcachier/mc/v3 v3.0.1
github.com/miekg/dns v1.1.43
github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce
github.com/omeid/go-yarn v0.0.1
- github.com/pkg/errors v0.9.1 // indirect
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect
- gopkg.in/yaml.v2 v2.2.8 // indirect
)
diff --git a/src/go/go.sum b/src/go/go.sum
index 52f19406c56..5e3dc4c482b 100644
--- a/src/go/go.sum
+++ b/src/go/go.sum
@@ -1,20 +1,7 @@
-git.zabbix.com/ap/plugin-support v0.0.0-20220524072909-7233a93fe116 h1:IGbQPDh/U7UHSM0M4h2k/wdRjyO3zG8uq4Dx+gej4y8=
-git.zabbix.com/ap/plugin-support v0.0.0-20220524072909-7233a93fe116/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
-git.zabbix.com/ap/plugin-support v0.0.0-20220524082638-7fd18350f78d h1:fv+sfiIPe6U8X0T+vrpI4bBpo5kzYnp9qxNwA30Ay/U=
-git.zabbix.com/ap/plugin-support v0.0.0-20220524082638-7fd18350f78d/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
-git.zabbix.com/ap/plugin-support v0.0.0-20220525103006-9363aae69d10 h1:zRmgkxzcYbFXMmHgLQ0i3FIOUhqLKK6uCTF/Fdlbl00=
-git.zabbix.com/ap/plugin-support v0.0.0-20220525103006-9363aae69d10/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
-git.zabbix.com/ap/plugin-support v0.0.0-20220530082632-bd6f3ae15c88 h1:a/w3gm8CKYRkw7gRu6+ufdCAadmWjnh4LNHqQRG3Nu4=
-git.zabbix.com/ap/plugin-support v0.0.0-20220530082632-bd6f3ae15c88/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
-git.zabbix.com/ap/plugin-support v0.0.0-20220601115430-7e21b812be52 h1:dgk5oJtySHzjkkzfELzM4tkAQbjJO9krfj0GJQMXdS4=
-git.zabbix.com/ap/plugin-support v0.0.0-20220601115430-7e21b812be52/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
-git.zabbix.com/ap/plugin-support v0.0.0-20220608100211-35b8bffd7ad0 h1:VZuQnO95vu+83jsQaY+HGDzx+SoTf8inEZFkZhPvZtM=
-git.zabbix.com/ap/plugin-support v0.0.0-20220608100211-35b8bffd7ad0/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
-git.zabbix.com/ap/plugin-support v0.0.2 h1:ce5LDuqEK4yYrD0g2BNWrSlnr33AVB3QT4G3wmjhDts=
-git.zabbix.com/ap/plugin-support v0.0.2/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
+git.zabbix.com/ap/plugin-support v1.1.1-0.20221021133846-49ba2b4b6cb5 h1:2r/hEHm1xE7tcnP1jPKY0aEimj/Y64RZijaWigJSSFw=
+git.zabbix.com/ap/plugin-support v1.1.1-0.20221021133846-49ba2b4b6cb5/go.mod h1:R3QzQWgpxlA+ddJNkOhsPTcGOVtrR69WS0hXIsnBurY=
github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69 h1:+tu3HOoMXB7RXEINRVIpxJCT+KdYiI7LAEAUrOw3dIU=
github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69/go.mod h1:L1AbZdiDllfyYH5l5OkAaZtk7VkWe89bPJFmnDBNHxg=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/cakturk/go-netstat v0.0.0-20200220111822-e5b49efee7a5 h1:BjkPE3785EwPhhyuFkbINB+2a1xATwk8SNDWnJiD41g=
github.com/cakturk/go-netstat v0.0.0-20200220111822-e5b49efee7a5/go.mod h1:jtAfVaU/2cu1+wdSRPWE2c1N2qeAA3K4RH9pYgqwets=
github.com/chromedp/cdproto v0.0.0-20210104223854-2cc87dae3ee3 h1:XeGYLuu3Yu3/2/FLDXyObe6lBYtUFDTJgjjNPcfcU40=
@@ -23,12 +10,6 @@ github.com/chromedp/chromedp v0.6.0 h1:jjzHzXW5pNdKt1D9cEDAKZM/yZ2EwL/hLyGbCUFld
github.com/chromedp/chromedp v0.6.0/go.mod h1:Yay7TUDCNOQBK8EJDUon6AUaQI12VEBOuULcGtY4uDY=
github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic=
github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww=
-github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
-github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
-github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dustin/gomemcached v0.0.0-20160817010731-a2284a01c143 h1:K9CFK8HRZWzmoIWbpA7u0XYLggCyfa/N77eVaq/nUiA=
@@ -45,7 +26,6 @@ github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI=
github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/goburrow/modbus v0.1.0 h1:DejRZY73nEM6+bt5JSP6IsFolJ9dVcqxsYbpLbeW/ro=
github.com/goburrow/modbus v0.1.0/go.mod h1:Kx552D5rLIS8E7TyUwQ/UdHEqvX5T8tyiGBTlzMcZBg=
github.com/goburrow/serial v0.1.0 h1:v2T1SQa/dlUqQiYIT8+Cu7YolfqAi3K96UmhwYyuSrA=
@@ -60,88 +40,12 @@ github.com/godbus/dbus v4.1.0+incompatible h1:WqqLRTsQic3apZUK9qC5sGNfXthmPXzUZ7
github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw=
github.com/godror/godror v0.20.1 h1:s/ehD65nfVzWR2MrZGChDkLvVPlIVxbt+Jpzfwkl1c8=
github.com/godror/godror v0.20.1/go.mod h1:YlPoIf962ZZKPM5Xqa8NxmGgck39pi51tqAs+K3IaFM=
-github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE=
-github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0=
-github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo=
-github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
-github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8=
-github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
-github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA=
-github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE=
-github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s=
-github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk=
-github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI=
-github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI=
-github.com/jackc/pgconn v1.6.5-0.20200905181414-0d4f029683fc h1:9ThyBXKdyBFN2Y1NSCPGCA0kdWCNpd9u4SKWwtr6GfU=
-github.com/jackc/pgconn v1.6.5-0.20200905181414-0d4f029683fc/go.mod h1:gm9GeeZiC+Ja7JV4fB/MNDeaOqsCrzFiZlLVhAompxk=
-github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE=
-github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8=
-github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2 h1:JVX6jT/XfzNqIjye4717ITLaNwV9mWbJx0dLCpcRzdA=
-github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE=
-github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
-github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
-github.com/jackc/pgproto3 v1.1.0 h1:FYYE4yRw+AgI8wXIinMlNjBbp/UitDJwfj5LqqewP1A=
-github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78=
-github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA=
-github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg=
-github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM=
-github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM=
-github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
-github.com/jackc/pgproto3/v2 v2.0.4 h1:RHkX5ZUD9bl/kn0f9dYUWs1N7Nwvo1wwUYvKiR26Zco=
-github.com/jackc/pgproto3/v2 v2.0.4/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
-github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E=
-github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg=
-github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E=
-github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg=
-github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc=
-github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw=
-github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0=
-github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po=
-github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ=
-github.com/jackc/pgtype v1.4.3-0.20200905161353-e7d2b057a716 h1:DrP52jA32liWkjCF/g3rYC1QjnRh6kvyXaZSevAtlqE=
-github.com/jackc/pgtype v1.4.3-0.20200905161353-e7d2b057a716/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig=
-github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y=
-github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM=
-github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc=
-github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA=
-github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o=
-github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg=
-github.com/jackc/pgx/v4 v4.8.2-0.20200910143026-040df1ccef85 h1:G5gbS1Q6cq7/Q1Z1CUqU9IKWfar2R1P6CE0zkKClEG0=
-github.com/jackc/pgx/v4 v4.8.2-0.20200910143026-040df1ccef85/go.mod h1:OWJpVJk5U9XXEiYHeQ+5NtRt82Y5c8gvIZj96kl27Ow=
-github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
-github.com/jackc/puddle v1.1.2-0.20200821025810-91d0159cc97a h1:ec2LCBkfN1pOq0PhLRH/QitjSXr9s2dnh0gOFyohxHM=
-github.com/jackc/puddle v1.1.2-0.20200821025810-91d0159cc97a/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU=
-github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
-github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
-github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
-github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-sqlite3 v1.14.8 h1:gDp86IdQsN/xWjIEmr9MF6o9mpksUgh0fu+9ByFxzIU=
github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/mediocregopher/radix/v3 v3.5.0 h1:8QHQmNh2ne9aFxTD3z63u/bkPPiOtknHoz80oP8EA/E=
@@ -154,102 +58,29 @@ github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce h1:TqjP/BTDrwN7zP9
github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:ifHPsLndGGzvgzcaXUvzmt6LxKT4pJ+uzEhtnMt+f7A=
github.com/omeid/go-yarn v0.0.1 h1:mUQExNwUrYn7tZRwQdsUuoQWHIujtjjpjb/PAtUj9dk=
github.com/omeid/go-yarn v0.0.1/go.mod h1:JYxmAvShSw7YmX/9vFsccpJE4o/KW111eUh3n/TQ5h8=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
-github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
-github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
-github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
-github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
-github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
-github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc h1:jUIKcSPO9MoMJBbEoyE/RJoE8vz7Mb8AjvifMMwSyvY=
-github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
-github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
+github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
-go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 h1:y/woIyUBFbpQGKS0u1aHF/40WUDnek3fPOyD08H5Vng=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM=
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU=
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
diff --git a/src/go/internal/agent/scheduler/manager.go b/src/go/internal/agent/scheduler/manager.go
index fa0c32abc0a..14e96f4d012 100644
--- a/src/go/internal/agent/scheduler/manager.go
+++ b/src/go/internal/agent/scheduler/manager.go
@@ -527,6 +527,7 @@ func (m *Manager) init() {
if metric.Plugin.IsExternal() {
ext := metric.Plugin.(*external.Plugin)
+ metric.Plugin.SetCapacity(1)
log.Infof("using plugin '%s' (%s) providing following interfaces: %s", metric.Plugin.Name(),
ext.Path, interfaces)
} else {
diff --git a/src/go/pkg/tls/tls.go b/src/go/pkg/tls/tls.go
index c6f7ddeac44..1f5646520c9 100644
--- a/src/go/pkg/tls/tls.go
+++ b/src/go/pkg/tls/tls.go
@@ -961,6 +961,7 @@ func SupportedErrMsg() string {
}
func init() {
+ log.Tracef("Calling C function \"tls_init()\"")
supported = C.tls_init() != -1
if !supported {
@@ -970,8 +971,10 @@ func init() {
func describeCiphersuites(context unsafe.Pointer) (desc string) {
var cDesc *C.char
+ log.Tracef("Calling C function \"tls_describe_ciphersuites()\"")
C.tls_describe_ciphersuites(C.SSL_CTX_LP(context), &cDesc)
desc = C.GoString(cDesc)
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cDesc))
return
}
@@ -987,8 +990,10 @@ type tlsConn struct {
func (c *tlsConn) Error() (err error) {
var cBuf *C.char
var errmsg string
+ log.Tracef("Calling C function \"tls_error()\"")
if c.tls != nil && 0 != C.tls_error((*C.tls_t)(c.tls), &cBuf) {
errmsg = C.GoString(cBuf)
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cBuf))
} else {
errmsg = "unknown openssl error"
@@ -997,12 +1002,14 @@ func (c *tlsConn) Error() (err error) {
}
func (c *tlsConn) ready() bool {
+ log.Tracef("Calling C function \"tls_ready()\"")
return C.tls_ready((*C.tls_t)(c.tls)) == 1
}
// Note, don't use flushTLS() and recvTLS() concurrently
func (c *tlsConn) flushTLS() (err error) {
for {
+ log.Tracef("Calling C function \"tls_recv()\"")
if cn := C.tls_recv((*C.tls_t)(c.tls), (*C.char)(unsafe.Pointer(&c.buf[0])), C.int(len(c.buf))); cn > 0 {
if c.shiftDeadline {
if err = c.conn.SetWriteDeadline(time.Now().Add(c.timeout)); err != nil {
@@ -1030,6 +1037,7 @@ func (c *tlsConn) recvTLS() (err error) {
if n, err = c.conn.Read(c.buf); err != nil {
return
}
+ log.Tracef("Calling C function \"tls_send()\"")
C.tls_send((*C.tls_t)(c.tls), (*C.char)(unsafe.Pointer(&c.buf[0])), C.int(n))
return
}
@@ -1055,9 +1063,11 @@ func (c *tlsConn) SetWriteDeadline(t time.Time) error {
}
func (c *tlsConn) Close() (err error) {
+ log.Tracef("Calling C function \"tls_close()\"")
cr := C.tls_close((*C.tls_t)(c.tls))
c.conn.Close()
+ log.Tracef("Calling C function \"tls_free()\"")
C.tls_free((*C.tls_t)(c.tls))
c.tls = nil
@@ -1072,12 +1082,15 @@ func (c *tlsConn) verifyIssuerSubject(cfg *Config) (err error) {
var cSubject, cIssuer *C.char
if cfg.ServerCertIssuer != "" {
cIssuer = C.CString(cfg.ServerCertIssuer)
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(cSubject))
}
if cfg.ServerCertSubject != "" {
cSubject = C.CString(cfg.ServerCertSubject)
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(cSubject))
}
+ log.Tracef("Calling C function \"tls_validate_issuer_and_subject()\"")
if 0 != C.tls_validate_issuer_and_subject((*C.tls_t)(c.tls), cIssuer, cSubject) {
return c.Error()
}
@@ -1087,8 +1100,10 @@ func (c *tlsConn) verifyIssuerSubject(cfg *Config) (err error) {
func (c *tlsConn) String() (desc string) {
var cDesc *C.char
+ log.Tracef("Calling C function \"tls_description()\"")
C.tls_description((*C.tls_t)(c.tls), &cDesc)
desc = C.GoString(cDesc)
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cDesc))
return
}
@@ -1099,10 +1114,13 @@ type Client struct {
}
func (c *Client) checkConnection() (err error) {
+ log.Tracef("Calling C function \"tls_connected()\"")
if C.tls_connected((*C.tls_t)(c.tls)) == C.int(1) {
return
}
+ log.Tracef("Calling C function \"tls_connected()\"")
for C.tls_connected((*C.tls_t)(c.tls)) != C.int(1) {
+ log.Tracef("Calling C function \"tls_handshake()\"")
cRet := C.tls_handshake((*C.tls_t)(c.tls))
if cRet == 0 {
break
@@ -1125,6 +1143,7 @@ func (c *Client) Write(b []byte) (n int, err error) {
if err = c.checkConnection(); err != nil {
return
}
+ log.Tracef("Calling C function \"tls_write()\"")
cRet := C.tls_write((*C.tls_t)(c.tls), (*C.char)(unsafe.Pointer(&b[0])), C.int(len(b)))
if cRet <= 0 {
return 0, c.Error()
@@ -1140,6 +1159,7 @@ func (c *Client) Read(b []byte) (n int, err error) {
if err = c.checkConnection(); err != nil {
return
}
+ log.Tracef("Calling C function \"tls_read()\"")
cRet := C.tls_read((*C.tls_t)(c.tls), (*C.char)(unsafe.Pointer(&b[0])), C.int(len(b)))
if cRet > 0 {
return int(cRet), nil
@@ -1169,7 +1189,9 @@ func NewClient(nc net.Conn, cfg *Config, timeout time.Duration, shiftDeadline bo
cSecret = C.CString(cfg.PSKKey)
defer func() {
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cUser))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cSecret))
}()
context = pskContext
@@ -1179,11 +1201,13 @@ func NewClient(nc net.Conn, cfg *Config, timeout time.Duration, shiftDeadline bo
hostname := url.Host()
if nil == net.ParseIP(hostname) {
cHostname = C.CString(hostname)
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(cHostname))
}
}
// for TLS we overwrite the timeoutMode and force it to move on every read or write
+ log.Tracef("Calling C function \"tls_new_client()\"")
c := &Client{
tlsConn: tlsConn{
conn: nc,
@@ -1193,6 +1217,7 @@ func NewClient(nc net.Conn, cfg *Config, timeout time.Duration, shiftDeadline bo
shiftDeadline: shiftDeadline,
},
}
+ log.Tracef("Calling C function \"tls_free()\"")
runtime.SetFinalizer(c, func(c *Client) { C.tls_free((*C.tls_t)(c.tls)) })
if !c.ready() {
@@ -1218,10 +1243,12 @@ type Server struct {
}
func (s *Server) checkConnection() (err error) {
+ log.Tracef("Calling C function \"tls_connected()\"")
if C.tls_connected((*C.tls_t)(s.tls)) == C.int(1) {
return
}
for {
+ log.Tracef("Calling C function \"tls_accept()\"")
cRet := C.tls_accept((*C.tls_t)(s.tls))
if cRet == 0 {
break
@@ -1244,6 +1271,7 @@ func (s *Server) Write(b []byte) (n int, err error) {
if err = s.checkConnection(); err != nil {
return
}
+ log.Tracef("Calling C function \"tls_write()\"")
cRet := C.tls_write((*C.tls_t)(s.tls), (*C.char)(unsafe.Pointer(&b[0])), C.int(len(b)))
if cRet <= 0 {
return 0, s.Error()
@@ -1257,6 +1285,7 @@ func (s *Server) Read(b []byte) (n int, err error) {
if err = s.checkConnection(); err != nil {
return
}
+ log.Tracef("Calling C function \"tls_read()\"")
cRet := C.tls_read((*C.tls_t)(s.tls), (*C.char)(unsafe.Pointer(&b[0])), C.int(len(b)))
if cRet > 0 {
return int(cRet), nil
@@ -1281,7 +1310,9 @@ func NewServer(nc net.Conn, cfg *Config, b []byte, timeout time.Duration, shiftD
cSecret = C.CString(cfg.PSKKey)
defer func() {
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cUser))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cSecret))
}()
}
@@ -1292,6 +1323,7 @@ func NewServer(nc net.Conn, cfg *Config, b []byte, timeout time.Duration, shiftD
}
// for TLS we overwrite the timeoutMode and force it to move on every read or write
+ log.Tracef("Calling C function \"tls_new_server()\"")
s := &Server{
tlsConn: tlsConn{
conn: nc,
@@ -1301,12 +1333,14 @@ func NewServer(nc net.Conn, cfg *Config, b []byte, timeout time.Duration, shiftD
shiftDeadline: shiftDeadline,
},
}
+ log.Tracef("Calling C function \"tls_free()\"")
runtime.SetFinalizer(s, func(s *Server) { C.tls_free((*C.tls_t)(s.tls)) })
if !s.ready() {
return nil, s.Error()
}
+ log.Tracef("Calling C function \"tls_send()\"")
C.tls_send((*C.tls_t)(s.tls), (*C.char)(unsafe.Pointer(&b[0])), C.int(len(b)))
if err = s.checkConnection(); err != nil {
@@ -1345,11 +1379,13 @@ type Config struct {
}
func CopyrightMessage() (message string) {
+ log.Tracef("Calling C function \"tls_version()\"")
version := C.tls_version()
if version == nil {
return ""
}
+ log.Tracef("Calling C function \"tls_version_static()\"")
return fmt.Sprintf("\n\nThis product includes software developed by the OpenSSL Project\n"+
"for use in the OpenSSL Toolkit (http://www.openssl.org/).\n\n"+
"Compiled with %s\nRunning with %s\n", C.GoString(C.tls_version_static()), C.GoString(version))
@@ -1360,9 +1396,11 @@ func Init(config *Config) (err error) {
return errors.New(SupportedErrMsg())
}
if pskContext != nil {
+ log.Tracef("Calling C function \"tls_free_context()\"")
C.tls_free_context(C.SSL_CTX_LP(pskContext))
}
if defaultContext != nil {
+ log.Tracef("Calling C function \"tls_free_context()\"")
C.tls_free_context(C.SSL_CTX_LP(defaultContext))
}
@@ -1371,28 +1409,37 @@ func Init(config *Config) (err error) {
cCaFile = C.CString(config.CAFile)
cCertFile = C.CString(config.CertFile)
cKeyFile = C.CString(config.KeyFile)
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(cCaFile))
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(cCertFile))
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(cKeyFile))
if config.CRLFile != "" {
cCrlFile = C.CString(config.CRLFile)
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(cCrlFile))
}
}
+ log.Tracef("Calling C function \"tls_new_context()\"")
if defaultContext = unsafe.Pointer(C.tls_new_context(cCaFile, cCrlFile, cCertFile, cKeyFile, &cErr)); defaultContext == nil {
err = fmt.Errorf("cannot initialize default TLS context: %s", C.GoString(cErr))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cErr))
return
}
+ log.Tracef("Calling C function \"tls_new_context()\"")
if pskContext = unsafe.Pointer(C.tls_new_context(cNULL, cNULL, cNULL, cNULL, &cErr)); pskContext == nil {
err = fmt.Errorf("cannot initialize PSK TLS context: %s", C.GoString(cErr))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cErr))
return
}
+ log.Tracef("Calling C function \"tls_version()\"")
log.Infof("OpenSSL library (%s) initialized", C.GoString(C.tls_version()))
log.Debugf("default context ciphersuites:%s", describeCiphersuites(defaultContext))
log.Debugf("psk context ciphersuites:%s", describeCiphersuites(pskContext))
diff --git a/src/go/pkg/tlsconfig/tlsconfig.go b/src/go/pkg/tlsconfig/tlsconfig.go
deleted file mode 100644
index 492a920bb4c..00000000000
--- a/src/go/pkg/tlsconfig/tlsconfig.go
+++ /dev/null
@@ -1,102 +0,0 @@
-package tlsconfig
-
-import (
- "crypto/tls"
- "crypto/x509"
- "errors"
- "fmt"
- "io/ioutil"
-
- "git.zabbix.com/ap/plugin-support/uri"
-)
-
-type Details struct {
- SessionName string
- TlsConnect string
- TlsCaFile string
- TlsCertFile string
- TlsKeyFile string
- RawUri string
-}
-
-func CreateConfig(details Details, skipVerify bool) (*tls.Config, error) {
- rootCertPool := x509.NewCertPool()
- pem, err := ioutil.ReadFile(details.TlsCaFile)
- if err != nil {
- return nil, err
- }
-
- if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
- return nil, errors.New("Failed to append PEM.")
- }
-
- clientCerts := make([]tls.Certificate, 0, 1)
- certs, err := tls.LoadX509KeyPair(details.TlsCertFile, details.TlsKeyFile)
- if err != nil {
- return nil, err
- }
-
- clientCerts = append(clientCerts, certs)
-
- if skipVerify {
- return &tls.Config{RootCAs: rootCertPool, Certificates: clientCerts, InsecureSkipVerify: skipVerify}, nil
- }
-
- url, err := uri.New(details.RawUri, nil)
- if err != nil {
- return nil, err
- }
-
- return &tls.Config{
- RootCAs: rootCertPool, Certificates: clientCerts, InsecureSkipVerify: skipVerify, ServerName: url.Host(),
- }, nil
-}
-
-func CreateDetails(session, dbConnect, caFile, certFile, keyFile, uri string) (Details, error) {
- if dbConnect != "" && dbConnect != "required" {
- if err := validateSetTLSFiles(caFile, certFile, keyFile); err != nil {
- return Details{}, fmt.Errorf("%s uri %s, with session %s", err.Error(), uri, session)
- }
- } else {
- if err := validateUnsetTLSFiles(caFile, certFile, keyFile); err != nil {
- return Details{}, fmt.Errorf("%s uri %s, with session %s", err.Error(), uri, session)
- }
- }
-
- return Details{session, dbConnect, caFile, certFile, keyFile, uri}, nil
-}
-
-func validateSetTLSFiles(caFile, certFile, keyFile string) error {
- if caFile == "" {
- return errors.New("missing TLS CA file for database")
- }
-
- if certFile == "" {
- return errors.New("missing TLS certificate file for database")
- }
-
- if keyFile == "" {
- return errors.New("missing TLS key file for database")
- }
-
- return nil
-}
-
-func validateUnsetTLSFiles(caFile, certFile, keyFile string) error {
- if caFile != "" {
- return errors.New(
- "TLS CA file configuration parameter set without certificates being used for database")
- }
-
- if certFile != "" {
- return errors.New(
- "TLS certificate file configuration parameter set without certificates being used for database")
- }
-
- if keyFile != "" {
- return errors.New(
- "TLS key file configuration parameter set without certificates being used for database")
- }
-
- return nil
-}
diff --git a/src/go/pkg/version/version.go b/src/go/pkg/version/version.go
index c0590eb9eac..020ff81ef16 100644
--- a/src/go/pkg/version/version.go
+++ b/src/go/pkg/version/version.go
@@ -26,15 +26,15 @@ import (
)
const (
- ZABBIX_REVDATE = "14 September 2022"
+ ZABBIX_REVDATE = "25 October 2022"
ZABBIX_VERSION_MAJOR = 6
ZABBIX_VERSION_MINOR = 0
- ZABBIX_VERSION_PATCH = 9
+ ZABBIX_VERSION_PATCH = 10
ZABBIX_VERSION_RC = "rc1"
ZABBIX_VERSION_RC_NUM = "{ZABBIX_RC_NUM}"
ZABBIX_VERSION_REVISION = "{ZABBIX_REVISION}"
copyrightMessage = "Copyright (C) 2022 Zabbix SIA\n" +
- "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.\n" +
+ "License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>.\n" +
"This is free software: you are free to change and redistribute it according to\n" +
"the license. There is NO WARRANTY, to the extent permitted by law."
)
diff --git a/src/go/pkg/zbxlib/checks.go b/src/go/pkg/zbxlib/checks.go
index 24bf205c3ab..fa0811f74ea 100644
--- a/src/go/pkg/zbxlib/checks.go
+++ b/src/go/pkg/zbxlib/checks.go
@@ -72,6 +72,7 @@ import (
"unsafe"
"zabbix.com/pkg/itemutil"
+ "git.zabbix.com/ap/plugin-support/log"
)
func ExecuteCheck(key string, params []string) (result *string, err error) {
@@ -83,17 +84,21 @@ func ExecuteCheck(key string, params []string) (result *string, err error) {
var cvalue, cerrmsg *C.char
ckey := C.CString(itemutil.MakeKey(key, params))
+ log.Tracef("Calling C function \"execute_check()\"")
if C.execute_check(ckey, C.zbx_agent_check_t(cfunc), &cvalue, &cerrmsg) == Succeed {
if cvalue != nil {
value := C.GoString(cvalue)
result = &value
}
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cvalue))
} else {
err = errors.New(C.GoString(cerrmsg))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cerrmsg))
}
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(ckey))
return
}
diff --git a/src/go/pkg/zbxlib/eventlog_windows.go b/src/go/pkg/zbxlib/eventlog_windows.go
index 9995f93f66d..281e3922d44 100644
--- a/src/go/pkg/zbxlib/eventlog_windows.go
+++ b/src/go/pkg/zbxlib/eventlog_windows.go
@@ -143,6 +143,8 @@ import (
"errors"
"time"
"unsafe"
+
+ "git.zabbix.com/ap/plugin-support/log"
)
type EventLogItem struct {
@@ -164,16 +166,20 @@ type EventLogResult struct {
}
func ProcessEventLogCheck(data unsafe.Pointer, item *EventLogItem, refresh int, cblob unsafe.Pointer) {
+ log.Tracef("Calling C function \"metric_set_refresh()\"")
C.metric_set_refresh(C.ZBX_ACTIVE_METRIC_LP(data), C.int(refresh))
var clastLogsizeSent, clastLogsizeLast C.zbx_uint64_t
var cstate, cmtime C.int
+ log.Tracef("Calling C function \"metric_get_meta()\"")
C.metric_get_meta(C.ZBX_ACTIVE_METRIC_LP(data), &clastLogsizeSent, &cmtime)
clastLogsizeLast = clastLogsizeSent
+ log.Tracef("Calling C function \"new_eventlog_result()\"")
result := C.new_eventlog_result(C.int(item.Output.PersistSlotsAvailable()))
var cerrmsg *C.char
+ log.Tracef("Calling C function \"process_eventlog_check()\"")
ret := C.process_eventlog_check(nil, C.zbx_vector_ptr_lp_t(unsafe.Pointer(result)),
C.zbx_vector_ptr_lp_t(cblob), C.ZBX_ACTIVE_METRIC_LP(data),
C.zbx_process_value_func_t(C.process_eventlog_value_cb), &clastLogsizeSent, &cerrmsg)
@@ -186,6 +192,7 @@ func ProcessEventLogCheck(data unsafe.Pointer, item *EventLogItem, refresh int,
if logTs.Before(item.LastTs) {
logTs = item.LastTs
}
+ log.Tracef("Calling C function \"get_eventlog_value()\"")
for i := 0; C.get_eventlog_value(result, C.int(i), &cvalue, &csource, &clogeventid, &cseverity, &ctimestamp, &cstate,
&clastlogsize) != C.FAIL; i++ {
@@ -221,16 +228,19 @@ func ProcessEventLogCheck(data unsafe.Pointer, item *EventLogItem, refresh int,
item.Results = append(item.Results, &r)
logTs = logTs.Add(time.Nanosecond)
}
+ log.Tracef("Calling C function \"free_eventlog_result()\"")
C.free_eventlog_result(result)
item.LastTs = logTs
if ret == C.FAIL {
+ log.Tracef("Calling C function \"metric_set_unsupported()\"")
C.metric_set_unsupported(C.ZBX_ACTIVE_METRIC_LP(data))
var err error
if cerrmsg != nil {
err = errors.New(C.GoString(cerrmsg))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cerrmsg))
} else {
err = errors.New("Unknown error.")
@@ -241,9 +251,11 @@ func ProcessEventLogCheck(data unsafe.Pointer, item *EventLogItem, refresh int,
}
item.Results = append(item.Results, result)
} else {
+ log.Tracef("Calling C function \"metric_set_supported()\"")
ret := C.metric_set_supported(C.ZBX_ACTIVE_METRIC_LP(data), clastLogsizeSent, 0, clastLogsizeLast, 0)
if ret == Succeed {
+ log.Tracef("Calling C function \"metric_get_meta()\"")
C.metric_get_meta(C.ZBX_ACTIVE_METRIC_LP(data), &clastLogsizeLast, &cmtime)
result := EventLogResult{
Ts: time.Now(),
diff --git a/src/go/pkg/zbxlib/expressions.go b/src/go/pkg/zbxlib/expressions.go
index 960a652903f..639a40fb79e 100644
--- a/src/go/pkg/zbxlib/expressions.go
+++ b/src/go/pkg/zbxlib/expressions.go
@@ -48,21 +48,28 @@ import "C"
import (
"errors"
"unsafe"
+
+ "git.zabbix.com/ap/plugin-support/log"
)
func NewGlobalRegexp() (grxp unsafe.Pointer) {
+ log.Tracef("Calling C function \"new_global_regexp()\"")
return unsafe.Pointer(C.new_global_regexp())
}
func DestroyGlobalRegexp(grxp unsafe.Pointer) {
+ log.Tracef("Calling C function \"free_global_regexp()\"")
C.free_global_regexp(C.zbx_vector_ptr_lp_t(grxp))
}
func AddGlobalRegexp(grxp unsafe.Pointer, name, body string, expr_type int, delim byte, mode int) {
cname := C.CString(name)
cbody := C.CString(body)
+ log.Tracef("Calling C function \"add_regexp_ex()\"")
C.add_regexp_ex(C.zbx_vector_ptr_lp_t(grxp), cname, cbody, C.int(expr_type), C.char(delim), C.int(mode))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cname))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cbody))
}
@@ -77,9 +84,11 @@ func MatchGlobalRegexp(
var ctemplate, coutput *C.char
if output_template != nil {
ctemplate = C.CString(*output_template)
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(ctemplate))
}
+ log.Tracef("Calling C function \"regexp_sub_ex()\"")
ret := C.regexp_sub_ex(C.zbx_vector_ptr_lp_t(grxp), cvalue, cpattern, C.int(mode), ctemplate, &coutput)
switch ret {
case C.ZBX_REGEXP_MATCH:
@@ -93,9 +102,12 @@ func MatchGlobalRegexp(
err = errors.New("invalid global regular expression")
}
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cvalue))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cpattern))
if coutput != nil {
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(coutput))
}
return
diff --git a/src/go/pkg/zbxlib/log.go b/src/go/pkg/zbxlib/log.go
index 16d698b4579..16b0bef38e0 100644
--- a/src/go/pkg/zbxlib/log.go
+++ b/src/go/pkg/zbxlib/log.go
@@ -75,10 +75,15 @@ int zbx_redirect_stdio(const char *filename)
*/
import "C"
+import (
+ "git.zabbix.com/ap/plugin-support/log"
+)
+
func SetLogLevel(level int) {
C.zbx_log_level = C.int(level)
}
func init() {
+ log.Tracef("Calling C function \"getpid()\"")
C.zbx_agent_pid = C.getpid()
}
diff --git a/src/go/pkg/zbxlib/logfile.go b/src/go/pkg/zbxlib/logfile.go
index 96aa3e2b971..4885c7cbcac 100644
--- a/src/go/pkg/zbxlib/logfile.go
+++ b/src/go/pkg/zbxlib/logfile.go
@@ -216,6 +216,7 @@ import (
"unsafe"
"zabbix.com/pkg/itemutil"
+ "git.zabbix.com/ap/plugin-support/log"
)
const (
@@ -275,29 +276,37 @@ func NewActiveMetric(key string, params []string, lastLogsize uint64, mtime int3
return nil, errors.New("Unsupported item key.")
}
ckey := C.CString(itemutil.MakeKey(key, params))
+ log.Tracef("Calling C function \"new_metric()\"")
return unsafe.Pointer(C.new_metric(ckey, C.zbx_uint64_t(lastLogsize), C.int(mtime), C.int(flags))), nil
}
func FreeActiveMetric(data unsafe.Pointer) {
+ log.Tracef("Calling C function \"metric_free()\"")
C.metric_free(C.ZBX_ACTIVE_METRIC_LP(data))
}
func ProcessLogCheck(data unsafe.Pointer, item *LogItem, refresh int, cblob unsafe.Pointer) {
+ log.Tracef("Calling C function \"metric_set_refresh()\"")
C.metric_set_refresh(C.ZBX_ACTIVE_METRIC_LP(data), C.int(refresh))
var clastLogsizeSent, clastLogsizeLast C.zbx_uint64_t
var cmtimeSent, cmtimeLast C.int
+ log.Tracef("Calling C function \"metric_get_meta()\"")
C.metric_get_meta(C.ZBX_ACTIVE_METRIC_LP(data), &clastLogsizeSent, &cmtimeSent)
clastLogsizeLast = clastLogsizeSent
cmtimeLast = cmtimeSent
+ log.Tracef("Calling C function \"new_log_result()\"")
result := C.new_log_result(C.int(item.Output.PersistSlotsAvailable()))
var cerrmsg *C.char
+ log.Tracef("Calling C function \"new_prep_vec()\"")
cprepVec := C.new_prep_vec() // In Agent2 it is always empty vector. Not used but required for linking.
+ log.Tracef("Calling C function \"process_log_check()\"")
ret := C.process_log_check(nil, C.zbx_vector_ptr_lp_t(unsafe.Pointer(result)), C.zbx_vector_ptr_lp_t(cblob),
C.ZBX_ACTIVE_METRIC_LP(data), C.zbx_process_value_func_t(C.process_value_cb), &clastLogsizeSent,
&cmtimeSent, &cerrmsg, cprepVec)
+ log.Tracef("Calling C function \"free_prep_vec()\"")
C.free_prep_vec(cprepVec)
// add cached results
@@ -308,6 +317,7 @@ func ProcessLogCheck(data unsafe.Pointer, item *LogItem, refresh int, cblob unsa
if logTs.Before(item.LastTs) {
logTs = item.LastTs
}
+ log.Tracef("Calling C function \"get_log_value()\"")
for i := 0; C.get_log_value(result, C.int(i), &cvalue, &cstate, &clastlogsize, &cmtime) != C.FAIL; i++ {
var value string
var err error
@@ -328,16 +338,19 @@ func ProcessLogCheck(data unsafe.Pointer, item *LogItem, refresh int, cblob unsa
item.Results = append(item.Results, r)
logTs = logTs.Add(time.Nanosecond)
}
+ log.Tracef("Calling C function \"free_log_result()\"")
C.free_log_result(result)
item.LastTs = logTs
if ret == C.FAIL {
+ log.Tracef("Calling C function \"metric_set_unsupported()\"")
C.metric_set_unsupported(C.ZBX_ACTIVE_METRIC_LP(data))
var err error
if cerrmsg != nil {
err = errors.New(C.GoString(cerrmsg))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cerrmsg))
} else {
err = errors.New("Unknown error.")
@@ -348,10 +361,12 @@ func ProcessLogCheck(data unsafe.Pointer, item *LogItem, refresh int, cblob unsa
}
item.Results = append(item.Results, result)
} else {
+ log.Tracef("Calling C function \"metric_set_supported()\"")
ret := C.metric_set_supported(C.ZBX_ACTIVE_METRIC_LP(data), clastLogsizeSent, cmtimeSent, clastLogsizeLast,
cmtimeLast)
if ret == Succeed {
+ log.Tracef("Calling C function \"metric_get_meta()\"")
C.metric_get_meta(C.ZBX_ACTIVE_METRIC_LP(data), &clastLogsizeLast, &cmtimeLast)
result := &LogResult{
Ts: time.Now(),
diff --git a/src/go/pkg/zbxlib/nextcheck.go b/src/go/pkg/zbxlib/nextcheck.go
index 62cdbb91079..894e75fd33e 100644
--- a/src/go/pkg/zbxlib/nextcheck.go
+++ b/src/go/pkg/zbxlib/nextcheck.go
@@ -33,6 +33,8 @@ import (
"errors"
"time"
"unsafe"
+
+ "git.zabbix.com/ap/plugin-support/log"
)
func GetNextcheck(itemid uint64, delay string, from time.Time) (nextcheck time.Time, scheduling bool, err error) {
@@ -41,11 +43,13 @@ func GetNextcheck(itemid uint64, delay string, from time.Time) (nextcheck time.T
cdelay := C.CString(delay)
now := from.Unix()
+ log.Tracef("Calling C function \"zbx_get_agent_item_nextcheck()\"")
ret := C.zbx_get_agent_item_nextcheck(C.zbx_uint64_t(itemid), cdelay, C.int(now),
&cnextcheck, &cscheduling, &cerr)
if ret != Succeed {
err = errors.New(C.GoString(cerr))
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cerr))
} else {
nextcheck = time.Unix(int64(cnextcheck), 0)
@@ -53,6 +57,7 @@ func GetNextcheck(itemid uint64, delay string, from time.Time) (nextcheck time.T
scheduling = true
}
}
+ log.Tracef("Calling C function \"free()\"")
C.free(unsafe.Pointer(cdelay))
return
diff --git a/src/go/plugins/external/broker.go b/src/go/plugins/external/broker.go
index df6310968e2..11fb36628db 100644
--- a/src/go/plugins/external/broker.go
+++ b/src/go/plugins/external/broker.go
@@ -85,7 +85,19 @@ func (b *pluginBroker) handleConnection() {
for {
t, data, err := comms.Read(b.conn)
if err != nil {
- return
+ if errors.Is(err, net.ErrClosed) {
+ log.Tracef("closed connection to loaded %s plugin", b.pluginName)
+
+ return
+ }
+
+ log.Errf(
+ "failed to read response for plugin %s, %s",
+ b.pluginName,
+ err.Error(),
+ )
+
+ continue
}
var id uint32
diff --git a/src/go/plugins/mysql/conn.go b/src/go/plugins/mysql/conn.go
index e4b4a9fa10a..e478eb72129 100644
--- a/src/go/plugins/mysql/conn.go
+++ b/src/go/plugins/mysql/conn.go
@@ -28,8 +28,8 @@ import (
"github.com/go-sql-driver/mysql"
+ "git.zabbix.com/ap/plugin-support/tlsconfig"
"git.zabbix.com/ap/plugin-support/uri"
- "zabbix.com/pkg/tlsconfig"
"git.zabbix.com/ap/plugin-support/log"
"git.zabbix.com/ap/plugin-support/zbxerr"
diff --git a/src/go/plugins/mysql/mysql.go b/src/go/plugins/mysql/mysql.go
index 6598059c7bf..56b429e8f60 100644
--- a/src/go/plugins/mysql/mysql.go
+++ b/src/go/plugins/mysql/mysql.go
@@ -24,9 +24,9 @@ import (
"time"
"git.zabbix.com/ap/plugin-support/plugin"
+ "git.zabbix.com/ap/plugin-support/tlsconfig"
"git.zabbix.com/ap/plugin-support/uri"
"git.zabbix.com/ap/plugin-support/zbxerr"
- "zabbix.com/pkg/tlsconfig"
)
const (
diff --git a/src/go/plugins/net/tcp/tcp_netstat.go b/src/go/plugins/net/tcp/tcp_netstat.go
index 0621389666a..aeb4e107b97 100644
--- a/src/go/plugins/net/tcp/tcp_netstat.go
+++ b/src/go/plugins/net/tcp/tcp_netstat.go
@@ -25,6 +25,7 @@ package tcpudp
import (
"errors"
"net"
+ "os"
"strconv"
"github.com/cakturk/go-netstat/netstat"
@@ -178,7 +179,8 @@ func netStatTcpCount(laddres net.IP, lNet *net.IPNet, lport int, raddres net.IP,
count++
return false
})
- if err != nil {
+
+ if err != nil && !errors.Is(err, os.ErrNotExist) {
return 0, err
}
diff --git a/src/go/plugins/net/udp/udp_netstat.go b/src/go/plugins/net/udp/udp_netstat.go
index 558ad767222..43611b92c6b 100644
--- a/src/go/plugins/net/udp/udp_netstat.go
+++ b/src/go/plugins/net/udp/udp_netstat.go
@@ -24,6 +24,7 @@ package udp
import (
"errors"
+ "os"
"net"
"strconv"
@@ -157,7 +158,7 @@ func netStatUdpCount(laddres net.IP, lNet *net.IPNet, lport int, raddres net.IP,
return true
})
- if err != nil {
+ if err != nil && !errors.Is(err, os.ErrNotExist) {
return 0, err
}
diff --git a/src/go/plugins/plugins_darwin.go b/src/go/plugins/plugins_darwin.go
index 8a8b58a26b3..0430703f550 100644
--- a/src/go/plugins/plugins_darwin.go
+++ b/src/go/plugins/plugins_darwin.go
@@ -29,7 +29,6 @@ import (
_ "zabbix.com/plugins/net/dns"
_ "zabbix.com/plugins/net/tcp"
_ "zabbix.com/plugins/oracle"
- _ "zabbix.com/plugins/postgres"
_ "zabbix.com/plugins/redis"
_ "zabbix.com/plugins/smart"
_ "zabbix.com/plugins/system/sw"
diff --git a/src/go/plugins/plugins_linux.go b/src/go/plugins/plugins_linux.go
index 5d7ce08bb5f..4dade1f66d2 100644
--- a/src/go/plugins/plugins_linux.go
+++ b/src/go/plugins/plugins_linux.go
@@ -33,7 +33,6 @@ import (
_ "zabbix.com/plugins/net/tcp"
_ "zabbix.com/plugins/net/udp"
_ "zabbix.com/plugins/oracle"
- _ "zabbix.com/plugins/postgres"
_ "zabbix.com/plugins/proc"
_ "zabbix.com/plugins/redis"
_ "zabbix.com/plugins/smart"
diff --git a/src/go/plugins/plugins_windows.go b/src/go/plugins/plugins_windows.go
index ef56d97214c..382a8dd0752 100644
--- a/src/go/plugins/plugins_windows.go
+++ b/src/go/plugins/plugins_windows.go
@@ -31,7 +31,6 @@ import (
_ "zabbix.com/plugins/net/tcp"
_ "zabbix.com/plugins/net/udp"
_ "zabbix.com/plugins/oracle"
- _ "zabbix.com/plugins/postgres"
_ "zabbix.com/plugins/proc"
_ "zabbix.com/plugins/redis"
_ "zabbix.com/plugins/smart"
diff --git a/src/go/plugins/postgres/README.md b/src/go/plugins/postgres/README.md
deleted file mode 100644
index 0a688736d5a..00000000000
--- a/src/go/plugins/postgres/README.md
+++ /dev/null
@@ -1,632 +0,0 @@
-# PostgreSQL plugin
-Provides native Zabbix solution for monitoring PostgreSQL (object-relational database system).
-It can monitor several PostgreSQL instances simultaneously, remote or local to the Zabbix Agent.
-Native connection encryption is supported. The plugin keeps connections in the open state to reduce network
-congestion, latency, CPU and memory usage. Best for use in conjunction with the official
-[PostgreSQL template.](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/postgresql_agent2)
-You can extend it or create your template for your specific needs.
-
-## Requirements
-- Zabbix Agent 2
-- Go >= 1.13 (required only to build from source)
-
-## Supported versions
-PostgreSQL, version 10, 11, 12
-
-## Installation
-The plugin is supplied as part of the Zabbix Agent 2 and does not require any special installation steps.
-Once Zabbix Agent 2 is installed, the plugin is ready to work. You only need to make sure a PostgreSQL instance is
-available for connection, and you have necessary access rights.
-
-## Configuration
-The Zabbix Agent's configuration file is used to configure plugins.
-
-**Plugins.Postgres.CallTimeout** — The maximum time in seconds for waiting when a request has to be done.
-*Default value:* equals the global Timeout configuration parameter.
-*Limits:* 1-30
-
-**Plugins.Postgres.Timeout** — The maximum time in seconds for waiting when a connection has to be established.
-*Default value:* equals the global Timeout configuration parameter.
-*Limits:* 1-30
-
-**Plugins.Postgres.CustomQueriesPath** — Full pathname of a directory containing *.sql* files with custom queries.
-*Default value:* — (the feature is disabled by default)
-
-**Plugins.Postgres.KeepAlive** — Sets a time for waiting before unused connections will be closed.
-*Default value:* 300 sec.
-*Limits:* 60-900
-
-**Plugins.Postgres.Sessions.<session_name>.TLSConnect** — Encryption type for postgres connection. "*" should be replaced with a session name.
-*Default value:*
-*Accepted values:* required, verify_ca, verify_full
-
-**Plugins.Postgres.Sessions.<session_name>.TLSCAFile** — Full pathname of a file containing the top-level CA(s) certificates for postgres
-*Default value:*
-
-**Plugins.Postgres.Sessions.<session_name>.TLSCertFile** — Full pathname of a file containing the postgres certificate or certificate chain.
-*Default value:*
-
-**Plugins.Postgres.Sessions.*.TLSKeyFile** — Full pathname of a file containing the postgres private key.
-*Default value:*
-
-### Configuring connection
-A connection can be configured using either keys' parameters or named sessions.
-
-*Notes*:
-* It is not possible to mix configuration using named sessions and keys' parameters simultaneously.
-* You can leave any connection parameter empty, a default hard-coded value will be used in the such case.
-* TLS information can be passed only with sessions.
-* Embedded URI credentials (userinfo) are forbidden and will be ignored. So, you can't pass the credentials by this:
-
- pgsql.ping[tcp://user:password@127.0.0.1/postgres] — WRONG
-
- The correct way is:
-
- pgsql.ping[tcp://127.0.0.1,user,password,postgres]
-
-* The only supported network schema for a URI are "tcp" and "unix".
-Examples of valid URIs:
- - tcp://127.0.0.1:5432
- - tcp://localhost
- - localhost
- - unix:/var/run/postgresql/.s.PGSQL.5432 (**Note:** a full socket file path expected, not a socket directory)
- - /var/run/postgresql/.s.PGSQL.5432
-
-#### Using keys' parameters
-The common parameters for all keys are: [ConnString][,User][,Password][,Database]
-Where ConnString can be either a URI or a session name.
-ConnString will be treated as a URI if no session with the given name is found.
-If you use ConnString as a session name, just skip the rest of the connection parameters.
-
-#### Using named sessions
-Named sessions allow you to define specific parameters for each PostgreSQL instance. Currently, these are the
-supported parameters: Uri, User, Password, Service, TLSConnect, TLSCAFile, TLSCertFile and TLSKeyFile.
-It's a bit more secure way to store credentials compared to item keys or macros.
-
-E.g: suppose you have two PostgreSQL instances: "Prod" and "Test".
-You should add the following options to the agent configuration file:
-
- Plugins.Postgres.Sessions.Prod.Uri=tcp://192.168.1.1:5432
- Plugins.Postgres.Sessions.Prod.User=<UserForProd>
- Plugins.Postgres.Sessions.Prod.Password=<PasswordForProd>
- Plugins.Postgres.Sessions.Prod.Database=proddb
- Plugins.Postgres.Sessions.Prod.TLSConnect=verify_full
- Plugins.Postgres.Sessions.Prod.TLSCAFile=/path/to/ca_file
- Plugins.Postgres.Sessions.Prod.TLSCertFile=/path/to/cert_file
- Plugins.Postgres.Sessions.Prod.TLSKeyFile=/path/to/key_file
-
- Plugins.Postgres.Sessions.Test.Uri=tcp://192.168.0.1:5432
- Plugins.Postgres.Sessions.Test.User=<UserForTest>
- Plugins.Postgres.Sessions.Test.Password=<PasswordForTest>
- Plugins.Postgres.Sessions.Test.Service=testdb
- Plugins.Postgres.Sessions.Test.TLSConnect=verify_ca
- Plugins.Postgres.Sessions.Test.TLSCAFile=/path/to/test/ca_file
- Plugins.Postgres.Sessions.Test.TLSCertFile=/path/to/test/cert_file
- Plugins.Postgres.Sessions.Test.TLSKeyFile=/path/to/test/key_file
-
-Then you will be able to use these names as the 1st parameter (ConnString) in keys instead of URIs, e.g:
-
- pgsql.ping[Prod]
- pgsql.ping[Test]
-
-*Note*: sessions names are case-sensitive, the first letter of a name must be upper-cased.
-
-## Supported keys
-**pgsql.archive[\<commonParams\>]** — returns info about archive files.
-*Returns:* Result of the
-```sql
-SELECT row_to_json(T)
-FROM (SELECT archived_count, failed_count from pg_stat_archiver) T
-SELECT row_to_json(T)
-FROM ( SELECT count(name) AS count_files ,
-coalesce(sum((pg_stat_file('./pg_wal/' || rtrim(ready.name,'.ready'))).size),0) AS size_files
-FROM ( SELECT name
-FROM pg_ls_dir('./pg_wal/archive_status') name WHERE right( name,6)= '.ready' ) ready) T;
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of:
-- pgsql.archive.count_archived_files — number of WAL files that have been successfully archived.
-- pgsql.archive.failed_trying_to_archive — number of failed attempts for archiving WAL files.
-- pgsql.archive.count_files_to_archive — number of files to archive.
-- pgsql.archive.size_files_to_archive — size of files to archive.
-
-**pgsql.autovacum.count[\<commonParams\>]** — number of autovacuum workers.
-*Returns:* Result of the
-```sql
-SELECT count(*)
-FROM pg_catalog.pg_stat_activity
-WHERE query like '%%autovacuum%%'
-AND state <> 'idle'
-AND pid <> pg_catalog.pg_backend_pid()
-```
-> SQL query.
-
-**pgsql.bgwriter[\<commonParams\>]** — statistics about the background writer process's activity.
-*Returns:* Result of the
-```sql
-SELECT row_to_json (T)
-FROM (
-SELECT
-checkpoints_timed
-, checkpoints_req
-, checkpoint_write_time
-, checkpoint_sync_time
-, buffers_checkpoint
-, buffers_clean
-, maxwritten_clean
-, buffers_backend
-, buffers_backend_fsync
-, buffers_alloc
-FROM pg_catalog.pg_stat_bgwriter
-) T
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of:
-- pgsql.bgwriter.buffers_alloc — number of buffers allocated.
-- pgsql.bgwriter.buffers_backend — number of buffers written directly by a backend.
-- pgsql.bgwriter.maxwritten_clean — number of times the background writer stopped a cleaning scan because it had written
- too many buffers.
-- pgsql.bgwriter.buffers_backend_fsync — number of times a backend had to execute its own fsync call (normally the
-background writer handles those even when the backend does its own write).
-- pgsql.bgwriter.buffers_clean — number of buffers written by the background writer.
-- pgsql.bgwriter.buffers_checkpoint — number of buffers written during checkpoints.
-- pgsql.bgwriter.checkpoints_timed — number of scheduled checkpoints that have been performed.
-- pgsql.bgwriter.checkpoints_req — number of requested checkpoints that have been performed.
-- pgsql.bgwriter.checkpoint_write_time — total amount of time has been spent in the portion of checkpoint processing
-where files are written to disk, in milliseconds.
-- pgsql.bgwriter.sync_time — total amount of time has been spent in the portion of checkpoint processing where files
-are synchronized to disk.
-
-**pgsql.cache.hit[\<commonParams\>]** — cache hit rate.
-*Returns:* Result of the
-```sql
-SELECT round(sum(blks_hit)*100/sum(blks_hit+blks_read), 2)
-FROM pg_catalog.pg_stat_database;
-```
-> SQL query in percentage.
-
-**pgsql.connections[\<commonParams\>]** — connections by types.
-*Returns:* Result of the
-```sql
-SELECT row_to_json(T)
-FROM (
-SELECT
-sum(CASE WHEN state = 'active' THEN 1 ELSE 0 END) AS active,
-sum(CASE WHEN state = 'idle' THEN 1 ELSE 0 END) AS idle,
-sum(CASE WHEN state = 'idle in transaction' THEN 1 ELSE 0 END) AS idle_in_transaction,
-sum(CASE WHEN state = 'idle in transaction (aborted)' THEN 1 ELSE 0 END) AS idle_in_transaction_aborted,
-sum(CASE WHEN state = 'fastpath function call' THEN 1 ELSE 0 END) AS fastpath_function_call,
-count(*) AS total,
-count(*)*100/(SELECT current_setting('max_connections')::int) AS total_pct,
-sum(CASE WHEN wait_event IS NOT NULL THEN 1 ELSE 0 END) AS waiting,
-(SELECT count(*) FROM pg_prepared_xacts) AS prepared
-FROM pg_stat_activity
-WHERE datid is not NULL) T;
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of pgsql.connections:
-- pgsql.connections.active — the backend is executing a query.
-- pgsql.connections.fastpath_function_call — the backend is executing a fast-path function.
-- pgsql.connections.idle — the backend is waiting for a new client command.
-- pgsql.connections.idle_in_transaction — the backend is in a transaction, but is not currently executing a query.
-- pgsql.connections.prepared — number of prepared connections.
-- pgsql.connections.total — total number of connection.
-- pgsql.connections.total_pct — percentage of total connections in respect to ‘max_connections’ setting of PostgreSQL
-server.
-- pgsql.connections.waiting — number of waiting connections.
-- pgsql.connections.idle_in_transaction_aborted — This state is similar to idle in transaction, except one of the
-statements in the transaction caused an error.
-
-**pgsql.custom.query[\<commonParams\>,queryName[,args...]]** — Returns result of a custom query.
-*Parameters:*
-queryName (required) — name of a custom query (must be equal to a name of a sql file without an extension).
-args (optional) — one or more arguments to pass to a query.
-
-**pgsql.dbstat[\<commonParams\>]** — statistics per database. Used in databases discovery.
-*Returns:* Result of the
-```sql
-SELECT
-json_object_agg(coalesce (datname,'null'), row_to_json(T))
-FROM (
-SELECT
-datname
-, numbackends as numbackends
-, xact_commit as xact_commit
-, xact_rollback as xact_rollback
-, blks_read as blks_read
-, blks_hit as blks_hit
-, tup_returned as tup_returned
-, tup_fetched as tup_fetched
-, tup_inserted as tup_inserted
-, tup_updated as tup_updated
-, tup_deleted as tup_deleted
-, conflicts as conflicts
-, temp_files as temp_files
-, temp_bytes as temp_bytes
-, deadlocks as deadlocks
-, %s as checksum_failures
-, blk_read_time as blk_read_time
-, blk_write_time as blk_write_time
-FROM pg_catalog.pg_stat_database
-) T;
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of:
-- pgsql.dbstat.numbackends["{#DBNAME}"] — number of backends currently connected to this database.
-- pgsql.dbstat.sum.blk_read_time["{#DBNAME}"] — time spent reading data file blocks by backends in this database,
-in milliseconds.
-- pgsql.dbstat.sum.blk_write_time["{#DBNAME}"] — time spent writing data file blocks by backends in this database,
-in milliseconds.
-- pgsql.dbstat.sum.checksum_failures["{#DBNAME}"] — number of data page checksum failures detected (or on a shared
-object), or NULL if data checksums are not enabled (PostgreSQL version 12 only).
-- pgsql.dbstat.blks_read.rate["{#DBNAME}"] — number of disk blocks read in this database.
-- pgsql.dbstat.deadlocks.rate["{#DBNAME}"] — number of deadlocks detected in this database.
-- pgsql.dbstat.blks_hit.rate["{#DBNAME}"] — number of times disk blocks were found already in the buffer cache, so that
-a read was not necessary (this only includes hits in the PostgreSQL Pro buffer cache, not the operating system's file
-system cache).
-- pgsql.dbstat.xact_rollback.rate["{#DBNAME}"] — number of transactions in this database that have been rolled back.
-- pgsql.dbstat.xact_commit.rate["{#DBNAME}"] — number of transactions in this database that have been committed.
-- pgsql.dbstat.tup_updated.rate["{#DBNAME}"] — number of rows updated by queries in this database.
-- pgsql.dbstat.tup_returned.rate["{#DBNAME}"] — number of rows returned by queries in this database.
-- pgsql.dbstat.tup_inserted.rate["{#DBNAME}"] — number of rows inserted by queries in this database.
-- pgsql.dbstat.tup_fetched.rate["{#DBNAME}"] — number of rows fetched by queries in this database.
-- pgsql.dbstat.tup_deleted.rate["{#DBNAME}"] — number of rows deleted by queries in this database.
-- pgsql.dbstat.conflicts.rate["{#DBNAME}"] — number of queries canceled due to conflicts with recovery in this database.
-Conflicts occur only on standby servers; see pg_stat_database_conflicts for details.
-- pgsql.dbstat.temp_files.rate["{#DBNAME}"] — number of temporary files created by queries in this database.
-All temporary files are counted, regardless of why the temporary file was created (e.g., sorting or hashing), and
-regardless of the log_temp_files setting.
-- pgsql.dbstat.temp_bytes.rate["{#DBNAME}"] — total amount of data written to temporary files by queries in this
-database. All temporary files are counted, regardless of why the temporary file was created, and regardless of the
-log_temp_files setting.
-
-**pgsql.dbstat.sum[\<commonParams\>]** — statistics for all databases combined.
-*Returns:* Result of the
-```sql
-SELECT row_to_json (T)
-FROM (
-SELECT
-sum(numbackends) as numbackends
-, sum(xact_commit) as xact_commit
-, sum(xact_rollback) as xact_rollback
-, sum(blks_read) as blks_read
-, sum(blks_hit) as blks_hit
-, sum(tup_returned) as tup_returned
-, sum(tup_fetched) as tup_fetched
-, sum(tup_inserted) as tup_inserted
-, sum(tup_updated) as tup_updated
-, sum(tup_deleted) as tup_deleted
-, sum(conflicts) as conflicts
-, sum(temp_files) as temp_files
-, sum(temp_bytes) as temp_bytes
-, sum(deadlocks) as deadlocks
-, sum(checksum_failures) as checksum_failures
-, sum(blk_read_time) as blk_read_time
-, sum(blk_write_time) as blk_write_time
-FROM pg_catalog.pg_stat_database
-) T
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of:
-- pgsql.dbstat.numbackends — number of backends currently connected to this database.
-- pgsql.dbstat.sum.blk_read_time — time spent reading data file blocks by backends in this database, in milliseconds.
-- pgsql.dbstat.sum.blk_write_time — time spent writing data file blocks by backends in this database, in milliseconds.
-- pgsql.dbstat.sum.checksum_failures — number of data page checksum failures detected (or on a shared object), or NULL
-if data checksums are not enabled (PostgreSQL version 12 only).
-- pgsql.dbstat.sum.xact_commit — number of transactions in this database that have been committed.
-- pgsql.dbstat.sum.conflicts — number of queries canceled due to conflicts with recovery in this database.
-Conflicts occur only on standby servers; see pg_stat_database_conflicts for details.
-- pgsql.dbstat.sum.deadlocks — number of deadlocks detected in this database.
-- pgsql.dbstat.sum.blks_read — number of disk blocks read in this database.
-- pgsql.dbstat.sum.blks_hit — number of times disk blocks were found already in the buffer cache, so that a read was not
-necessary (this only includes hits in the PostgreSQL Pro buffer cache, not the operating system's file system cache).
-- pgsql.dbstat.sum.temp_bytes — total amount of data written to temporary files by queries in this database. All
-temporary files are counted, regardless of why the temporary file was created, and regardless of the log_temp_files
-setting.
-- pgsql.dbstat.sum.temp_files — number of temporary files created by queries in this database. All temporary files are
-counted, regardless of why the temporary file was created (e.g., sorting or hashing), and regardless of the
-log_temp_files setting.
-- pgsql.dbstat.sum.xact_rollback — number of transactions in this database that have been rolled back.
-- pgsql.dbstat.sum.tup_deleted — number of rows deleted by queries in this database.
-- pgsql.dbstat.sum.tup_fetched — number of rows fetched by queries in this database.
-- pgsql.dbstat.sum.tup_inserted — number of rows inserted by queries in this database.
-- pgsql.dbstat.sum.tup_returned — number of rows returned by queries in this database.
-- pgsql.dbstat.sum.tup_updated — number of rows updated by queries in this database.
-
-**pgsql.db.age[\<commonParams\>]** — age of the oldest xid for the specific database. Used in databases discovery.
-*Returns:* Result of the
-```sql
-SELECT age(datfrozenxid)
-FROM pg_catalog.pg_database
-WHERE datistemplate = false
-AND datname = <dbName>
-```
-> SQL query for specific database in transactions.
-
-**pgsql.db.bloating_tables[\<commonParams\>]** — number of bloating tables per database. Used in databases discovery.
-*Returns:* Result of the
-```sql
-SELECT count(*)
-FROM pg_catalog.pg_stat_all_tables
-WHERE (n_dead_tup/(n_live_tup+n_dead_tup)::float8) > 0.2
-AND (n_live_tup+n_dead_tup) > 50;
-```
-> SQL query.
-
-Result of this query differs depending on the database to which agent is currently connected.
-
-**pgsql.db.discovery[\<commonParams\>]** — Databases discovery.
-*Returns:* Result of the
-```sql
-SELECT json_build_object('data',json_agg(json_build_object('{#DBNAME}',d.datname)))
-FROM pg_database
-WHERE NOT datistemplate
-AND datallowconn;
-```
-> SQL query in LLD JSON format.
-
-**pgsql.db.size[\<commonParams\>]** — database size in bytes. Used in databases discovery.
-*Returns:* Result of the
-```sql
-SELECT pg_database_size(datname::text)
-FROM pg_catalog.pg_database
-WHERE datistemplate = false
-AND datname = <dbName>;
-```
-> SQL query for specific database in bytes.
-
-**pgsql.locks[\<commonParams\>]** — locks statistics per database. Used in databases discovery.
-*Returns:* Result of the
-```sql
-WITH T AS
-(SELECT
-db.datname dbname,
-lower(replace(Q.mode, 'Lock', '')) AS MODE,
-coalesce(T.qty, 0) val
-FROM pg_database db
-JOIN (
-VALUES ('AccessShareLock') ,('RowShareLock') ,('RowExclusiveLock') ,('ShareUpdateExclusiveLock') ,('ShareLock') ,('ShareRowExclusiveLock') ,('ExclusiveLock') ,('AccessExclusiveLock')) Q(MODE) ON TRUE NATURAL
-LEFT JOIN
-(SELECT datname,
-MODE,
-count(MODE) qty
-FROM pg_locks lc
-RIGHT JOIN pg_database db ON db.oid = lc.database
-GROUP BY 1, 2) T
-WHERE NOT db.datistemplate
-ORDER BY 1, 2)
-SELECT json_object_agg(dbname, row_to_json(T2))
-FROM
-(SELECT dbname,
-sum(val) AS total,
-sum(CASE
-WHEN MODE = 'accessexclusive' THEN val
-END) AS accessexclusive,
-sum (CASE
-WHEN MODE = 'accessshare' THEN val
-END) AS accessshare,
-sum(CASE
-WHEN MODE = 'exclusive' THEN val
-END) AS EXCLUSIVE,
-sum(CASE
-WHEN MODE = 'rowexclusive' THEN val
-END) AS rowexclusive,
-sum(CASE
-WHEN MODE = 'rowshare' THEN val
-END) AS rowshare,
-sum(CASE
-WHEN MODE = 'share' THEN val
-END) AS SHARE,
-sum(CASE
-WHEN MODE = 'sharerowexclusive' THEN val
-END) AS sharerowexclusive,
-sum(CASE
-WHEN MODE = 'shareupdateexclusive' THEN val
-END) AS shareupdateexclusive
-FROM T
-GROUP BY dbname) T2;
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of:
-- pgsql.locks.shareupdateexclusive["{#DBNAME}"] — number of share update exclusive locks.
-- pgsql.locks.accessexclusive["{#DBNAME}"] — number of access exclusive locks.
-- pgsql.locks.accessshare["{#DBNAME}"] — number of access share locks.
-- pgsql.locks.exclusive["{#DBNAME}"] — number of exclusive locks.
-- pgsql.locks.rowexclusive["{#DBNAME}"] — number of row exclusive locks.
-- pgsql.locks.rowshare["{#DBNAME}"] — number of row share locks.
-- pgsql.locks.share["{#DBNAME}"] — number of share locks.
-- pgsql.locks.sharerowexclusive["{#DBNAME}"] — number of share row exclusive locks.
-
-**pgsql.pgsql.oldest.xid[\<commonParams\>]** — PostgreSQL age of the oldest XID.
-*Returns:* Result of the
-```sql
-SELECT greatest(max(age(backend_xmin)), max(age(backend_xid)))
-FROM pg_catalog.pg_stat_activity" SQL query.
-```
-
-**pgsql.ping[\<commonParams\>]** — tests whether a connection is alive or not.
-*Returns:*
-- "1" if the connection is alive.
-- "0" if the connection is broken (returned if there was any error during the test, including AUTH and configuration issues).
-
-**pgsql.queries[\<commonParams\>,TimePeriod]** - queries metrics by execution time.
-*Parameters:*
-TimePeriod (required) — execution time limit for count of slow queries. (must be an integer, must be greater than 0).
-
-*Returns:* Result of the
-```sql
-WITH T AS
-(SELECT db.datname,
-coalesce(T.query_time_max, 0) query_time_max,
-coalesce(T.tx_time_max, 0) tx_time_max,
-coalesce(T.mro_time_max, 0) mro_time_max,
-coalesce(T.query_time_sum, 0) query_time_sum,
-coalesce(T.tx_time_sum, 0) tx_time_sum,
-coalesce(T.mro_time_sum, 0) mro_time_sum,
-coalesce(T.query_slow_count, 0) query_slow_count,
-coalesce(T.tx_slow_count, 0) tx_slow_count,
-coalesce(T.mro_slow_count, 0) mro_slow_count
-FROM pg_database db NATURAL
-LEFT JOIN (
-SELECT datname,
-extract(epoch FROM now())::integer ts,
-coalesce(max(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle', 'idle in transaction', 'idle in transaction (aborted)') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) query_time_max,
-coalesce(max(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) tx_time_max,
-coalesce(max(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query ~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) mro_time_max,
-coalesce(sum(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle', 'idle in transaction', 'idle in transaction (aborted)') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) query_time_sum,
-coalesce(sum(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) tx_time_sum,
-coalesce(sum(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query ~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) mro_time_sum,
-coalesce(sum((extract('epoch' FROM (clock_timestamp() - query_start)) > %d)::integer * (state NOT IN ('idle', 'idle in transaction', 'idle in transaction (aborted)') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) query_slow_count,
-coalesce(sum((extract('epoch' FROM (clock_timestamp() - query_start)) > %d)::integer * (state NOT IN ('idle') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) tx_slow_count,
-coalesce(sum((extract('epoch' FROM (clock_timestamp() - query_start)) > %d)::integer * (state NOT IN ('idle') AND query ~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) mro_slow_count
-FROM pg_stat_activity
-WHERE pid <> pg_backend_pid()
-GROUP BY 1) T
-WHERE NOT db.datistemplate )
-SELECT json_object_agg(datname, row_to_json(T))
-FROM T
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of:
-- pgsql.queries.mro.time_max["{#DBNAME}"] - max maintenance query time.
-- pgsql.queries.query.time_max["{#DBNAME}"] - max query time.
-- pgsql.queries.tx.time_max["{#DBNAME}"] - max transaction query time.
-- pgsql.queries.mro.slow_count["{#DBNAME}"] - slow maintenance query count.
-- pgsql.queries.query.slow_count["{#DBNAME}"] - slow query count.
-- pgsql.queries.tx.slow_count["{#DBNAME}"] - slow transaction query count.
-- pgsql.queries.mro.time_sum["{#DBNAME}"] - sum maintenance query time.
-- pgsql.queries.query.time_sum["{#DBNAME}"] - sum query time.
-- pgsql.queries.tx.time_sum["{#DBNAME}"] - sum transaction query time.
-
-**pgsql.replication.count[uri,username,password]** — number of standby servers.
-*Returns:* Result of the
-```sql
-SELECT count(*) FROM pg_stat_replication
-```
-> SQL query.
-
-**pgsql.replication_lag.b[uri,username,password]** — replication lag in bytes.
-*Returns:* Result of the
-```sql
-SELECT pg_catalog.pg_wal_lsn_diff (received_lsn, pg_last_wal_replay_lsn())
-FROM pg_stat_wal_receiver;
-```
-> SQL query in bytes
-
-**pgsql.replication_lag.sec[uri,username,password]** — replication lag in seconds.
-*Returns:* Result of the
-```sql
-SELECT
-CASE
-WHEN pg_last_wal_receive_lsn() = pg_last_wal_replay_lsn() THEN 0
-ELSE
-COALESCE(EXTRACT(EPOCH FROM now() - pg_last_xact_replay_timestamp())::integer, 0)
-END as lag
-```
-> SQL query in seconds.
-
-**pgsql.replication.recovery_role[uri,username,password]** — recovery status.
-*Returns:*
-- 1 — recovery is still in progress (standby mode)
-- 0 — master mode.
-
-**pgsql.replication.status[uri,username,password]** — status of replication.
-*Returns:*
-- 0 — streaming is down
-- 1 — streaming is up
-- 2 — mastermode
-
-**pgsql.replication.process[uri,username,password]** — flush lag, write lag and replay lag per each sender process.
-*Returns:* Result of the
-```sql
-SELECT json_object_agg(application_name, row_to_json(T))
-FROM (
- SELECT
- CONCAT(application_name, ' ', pid) AS application_name,
- EXTRACT(epoch FROM COALESCE(flush_lag,'0'::interval)) as flush_lag,
- EXTRACT(epoch FROM COALESCE(replay_lag,'0'::interval)) as replay_lag,
- EXTRACT(epoch FROM COALESCE(write_lag, '0'::interval)) as write_lag
- FROM pg_stat_replication
- ) T;
-```
-
-**pgsql.replication.process.discovery[uri,username,password]** - replication procces name discovery.
-*Returns:* Result of the
-```sql
-SELECT
-json_build_object('data',
-json_agg(json_build_object('{#APPLICATION_NAME}',
-CONCAT(application_name, ' ', pid))))
-FROM
-pg_stat_replication
-```
-
-**pgsql.uptime[\<commonParams\>]** — PostgreSQL uptime, in milliseconds.
-*Returns:* Result of the
-```sql
-SELECT date_part('epoch', now() - pg_postmaster_start_time());
-```
-> SQL query in ms.
-
-**pgsql.wal.stat[\<commonParams\>]** — returns WAL statistics.
-*Returns:* Result of the
-```sql
-SELECT row_to_json(T)
-FROM (
-SELECT
-pg_wal_lsn_diff(pg_current_wal_lsn(),'0/00000000') AS WRITE,
-count(*)
-FROM pg_ls_waldir() AS COUNT
-) T;
-```
-> SQL query JSON format.
-
-Then JSON is proceeded by dependent items of:
-- pgsql.wal.count — number of wal files.
-- pgsql.wal.write — wal lsn used, in bytes.
-
-## Custom queries
-It's possible to extend functionality of the plugin using user-defined queries. To do that you should place all your
-queries in a directory specified in Plugins.Postgres.CustomQueriesPath (there is no default path) as *.sql files.
-For example, you have a tree:
-
- /etc/zabbix/postgres/sql/
- ├── long_tx.sql
- ├── payment.sql
- └── top_proc.sql
-
-You should set Plugins.Postgres.CustomQueriesPath=/etc/zabbix/postgres/sql
-
-So, when the queries are in place, you can execute them:
-
- pgsql.custom.query[<commonParams>,top_proc]
- pgsql.custom.query[<commonParams>,long_tx,600]
-
-You can pass as many parameters to a query as you need.
-The syntax for placeholder parameters uses "$#", where "#" is an index number of a parameter.
-E.g:
-```
-/* payment.sql */
-
-SELECT
- amount
-FROM
- payment
-WHERE
- user = $1
- AND service_id = $2
- AND date = $3
-```
-
- pgsql.custom.query[<commonParams>,payment,"John Doe",1,"10/25/2020"]
-
-## Troubleshooting
-The plugin uses Zabbix agent's logs. You can increase debugging level of Zabbix Agent if you need more details about
-what is happening.
diff --git a/src/go/plugins/postgres/config.go b/src/go/plugins/postgres/config.go
deleted file mode 100755
index 4f37d9ae77f..00000000000
--- a/src/go/plugins/postgres/config.go
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "git.zabbix.com/ap/plugin-support/conf"
- "git.zabbix.com/ap/plugin-support/plugin"
-)
-
-// Session struct holds individual options for PostgreSQL connection for each session.
-type Session struct {
- // URI is a connection string consisting of a network scheme, a host address and a port or a path to a Unix-socket.
- URI string `conf:"name=Uri,optional"`
-
- // User of PostgreSQL server.
- User string `conf:"optional"`
-
- // Password to send to protected PostgreSQL server.
- Password string `conf:"optional"`
-
- // Database of PostgreSQL server.
- Database string `conf:"optional"`
-
- // Connection type of PostgreSQL server.
- TLSConnect string `conf:"name=TLSConnect,optional"`
-
- // Certificate Authority filepath for PostgreSQL server.
- TLSCAFile string `conf:"name=TLSCAFile,optional"`
-
- // Certificate filepath for PostgreSQL server.
- TLSCertFile string `conf:"name=TLSCertFile,optional"`
-
- // Key filepath for PostgreSQL server.
- TLSKeyFile string `conf:"name=TLSKeyFile,optional"`
-}
-
-// PluginOptions are options for PostgreSQL connection.
-type PluginOptions struct {
- // Timeout is the maximum time in seconds for waiting when a connection has to be established.
- // Default value equals to the global agent timeout.
- Timeout int `conf:"optional,range=1:30"`
-
- // CallTimeout is the maximum time in seconds for waiting when a request has to be done.
- // Default value equals to the global agent timeout.
- CallTimeout int `conf:"optional,range=1:30"`
-
- // KeepAlive is a time to wait before unused connections will be closed.
- KeepAlive int `conf:"optional,range=60:900,default=300"`
-
- // Sessions stores pre-defined named sets of connections settings.
- Sessions map[string]Session `conf:"optional"`
-
- // CustomQueriesPath is a full pathname of a directory containing *.sql files with custom queries.
- CustomQueriesPath string `conf:"optional"`
-}
-
-// Configure implements the Configurator interface.
-// Initializes configuration structures.
-func (p *Plugin) Configure(global *plugin.GlobalOptions, options interface{}) {
- if err := conf.Unmarshal(options, &p.options); err != nil {
- p.Errf("cannot unmarshal configuration options: %s", err)
- }
-
- if p.options.Timeout == 0 {
- p.options.Timeout = global.Timeout
- }
-
- if p.options.CallTimeout == 0 {
- p.options.CallTimeout = global.Timeout
- }
-}
-
-// Validate implements the Configurator interface.
-// Returns an error if validation of a plugin's configuration is failed.
-func (p *Plugin) Validate(options interface{}) error {
- var opts PluginOptions
-
- return conf.Unmarshal(options, &opts)
-}
diff --git a/src/go/plugins/postgres/conn.go b/src/go/plugins/postgres/conn.go
deleted file mode 100755
index fd697e49cf3..00000000000
--- a/src/go/plugins/postgres/conn.go
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "crypto/tls"
- "database/sql"
- "fmt"
- "net"
- "net/url"
- "path/filepath"
- "strings"
- "sync"
- "time"
-
- "git.zabbix.com/ap/plugin-support/log"
- "git.zabbix.com/ap/plugin-support/uri"
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4/pgxpool"
- "github.com/jackc/pgx/v4/stdlib"
- "github.com/omeid/go-yarn"
- "zabbix.com/pkg/tlsconfig"
-)
-
-const MinSupportedPGVersion = 100000
-
-type PostgresClient interface {
- Query(ctx context.Context, query string, args ...interface{}) (rows *sql.Rows, err error)
- QueryByName(ctx context.Context, queryName string, args ...interface{}) (rows *sql.Rows, err error)
- QueryRow(ctx context.Context, query string, args ...interface{}) (row *sql.Row, err error)
- QueryRowByName(ctx context.Context, queryName string, args ...interface{}) (row *sql.Row, err error)
- PostgresVersion() int
-}
-
-// PGConn holds pointer to the Pool of Postgres Instance.
-type PGConn struct {
- client *sql.DB
- callTimeout time.Duration
- ctx context.Context
- lastTimeAccess time.Time
- version int
- queryStorage *yarn.Yarn
- address string
-}
-
-var errorQueryNotFound = "query %q not found"
-
-// Query wraps pgxpool.Query.
-func (conn *PGConn) Query(ctx context.Context, query string, args ...interface{}) (rows *sql.Rows, err error) {
- rows, err = conn.client.QueryContext(ctx, query, args...)
-
- if ctxErr := ctx.Err(); ctxErr != nil {
- err = ctxErr
- }
-
- return
-}
-
-// QueryByName executes a query from queryStorage by its name and returns a single row.
-func (conn *PGConn) QueryByName(ctx context.Context, queryName string, args ...interface{}) (rows *sql.Rows, err error) {
- if sql, ok := (*conn.queryStorage).Get(queryName + sqlExt); ok {
- normalizedSQL := strings.TrimRight(strings.TrimSpace(sql), ";")
-
- return conn.Query(ctx, normalizedSQL, args...)
- }
-
- return nil, fmt.Errorf(errorQueryNotFound, queryName)
-}
-
-// QueryRow wraps pgxpool.QueryRow.
-func (conn *PGConn) QueryRow(ctx context.Context, query string, args ...interface{}) (row *sql.Row, err error) {
- row = conn.client.QueryRowContext(ctx, query, args...)
-
- if ctxErr := ctx.Err(); ctxErr != nil {
- err = ctxErr
- }
-
- return
-}
-
-// QueryRowByName executes a query from queryStorage by its name and returns a single row.
-func (conn *PGConn) QueryRowByName(ctx context.Context, queryName string, args ...interface{}) (row *sql.Row, err error) {
- if sql, ok := (*conn.queryStorage).Get(queryName + sqlExt); ok {
- normalizedSQL := strings.TrimRight(strings.TrimSpace(sql), ";")
-
- return conn.QueryRow(ctx, normalizedSQL, args...)
- }
-
- return nil, fmt.Errorf(errorQueryNotFound, queryName)
-}
-
-// GetPostgresVersion exec SQL query to retrieve the version of PostgreSQL server we are currently connected to.
-func getPostgresVersion(ctx context.Context, conn *sql.DB) (version int, err error) {
- err = conn.QueryRowContext(ctx, `select current_setting('server_version_num');`).Scan(&version)
-
- return
-}
-
-// PostgresVersion returns the version of PostgreSQL server we are currently connected to.
-func (conn *PGConn) PostgresVersion() int {
- return conn.version
-}
-
-// updateAccessTime updates the last time a connection was accessed.
-func (conn *PGConn) updateAccessTime() {
- conn.lastTimeAccess = time.Now()
-}
-
-// ConnManager is a thread-safe structure for manage connections.
-type ConnManager struct {
- sync.Mutex
- connMutex sync.Mutex
- connections map[string]*PGConn
- keepAlive time.Duration
- connectTimeout time.Duration
- callTimeout time.Duration
- Destroy context.CancelFunc
- queryStorage yarn.Yarn
-}
-
-// NewConnManager initializes connManager structure and runs Go Routine that watches for unused connections.
-func NewConnManager(keepAlive, connectTimeout, callTimeout,
- hkInterval time.Duration, queryStorage yarn.Yarn) *ConnManager {
- ctx, cancel := context.WithCancel(context.Background())
-
- connMgr := &ConnManager{
- connections: make(map[string]*PGConn),
- keepAlive: keepAlive,
- connectTimeout: connectTimeout,
- callTimeout: callTimeout,
- Destroy: cancel, // Destroy stops originated goroutines and closes connections.
- queryStorage: queryStorage,
- }
-
- go connMgr.housekeeper(ctx, hkInterval)
-
- return connMgr
-}
-
-// closeUnused closes each connection that has not been accessed at least within the keepalive interval.
-func (c *ConnManager) closeUnused() {
- c.connMutex.Lock()
- defer c.connMutex.Unlock()
-
- for uri, conn := range c.connections {
- if time.Since(conn.lastTimeAccess) > c.keepAlive {
- conn.client.Close()
- delete(c.connections, uri)
- log.Debugf("[%s] Closed unused connection: %s", pluginName, conn.address)
- }
- }
-}
-
-// closeAll closes all existed connections.
-func (c *ConnManager) closeAll() {
- c.connMutex.Lock()
- for uri, conn := range c.connections {
- conn.client.Close()
- delete(c.connections, uri)
- }
- c.connMutex.Unlock()
-}
-
-// housekeeper repeatedly checks for unused connections and closes them.
-func (c *ConnManager) housekeeper(ctx context.Context, interval time.Duration) {
- ticker := time.NewTicker(interval)
-
- for {
- select {
- case <-ctx.Done():
- ticker.Stop()
- c.closeAll()
-
- return
- case <-ticker.C:
- c.closeUnused()
- }
- }
-}
-
-// create creates a new connection with given credentials.
-func (c *ConnManager) create(uri uri.URI, details tlsconfig.Details) (*PGConn, error) {
- c.connMutex.Lock()
- defer c.connMutex.Unlock()
-
- if _, ok := c.connections[uri.NoQueryString()]; ok {
- // Should never happen.
- panic("connection already exists")
- }
-
- ctx := context.Background()
-
- host := uri.Host()
- port := uri.Port()
-
- if uri.Scheme() == "unix" {
- socket := uri.Addr()
- host = filepath.Dir(socket)
-
- ext := filepath.Ext(filepath.Base(socket))
- if len(ext) <= 1 {
- return nil, fmt.Errorf("incorrect socket: %q", socket)
- }
-
- port = ext[1:]
- }
-
- dbname, err := url.QueryUnescape(uri.GetParam("dbname"))
- if err != nil {
- return nil, err
- }
-
- dsn := fmt.Sprintf("host=%s port=%s dbname=%s user=%s",
- host, port, dbname, uri.User())
-
- if uri.Password() != "" {
- dsn += " password=" + uri.Password()
- }
-
- client, err := createTLSClient(dsn, c.connectTimeout, details)
- if err != nil {
- return nil, err
- }
-
- serverVersion, err := getPostgresVersion(ctx, client)
- if err != nil {
- return nil, err
- }
-
- if serverVersion < MinSupportedPGVersion {
- return nil, fmt.Errorf("postgres version %d is not supported", serverVersion)
- }
-
- c.connections[uri.NoQueryString()] = &PGConn{
- client: client,
- callTimeout: c.callTimeout,
- version: serverVersion,
- lastTimeAccess: time.Now(),
- ctx: ctx,
- queryStorage: &c.queryStorage,
- address: uri.Addr(),
- }
-
- log.Debugf("[%s] Created new connection: %s", pluginName, uri.Addr())
-
- return c.connections[uri.NoQueryString()], nil
-}
-
-func createTLSClient(dsn string, timeout time.Duration, details tlsconfig.Details) (*sql.DB, error) {
- config, err := pgxpool.ParseConfig(dsn)
- if err != nil {
- return nil, err
- }
-
- config.ConnConfig.DialFunc = func(ctx context.Context, network, addr string) (net.Conn, error) {
- d := net.Dialer{}
- ctxTimeout, cancel := context.WithTimeout(context.Background(), timeout)
- defer cancel()
-
- conn, err := d.DialContext(ctxTimeout, network, addr)
-
- return conn, err
- }
-
- config.ConnConfig.TLSConfig, err = getTLSConfig(details)
- if err != nil {
- return nil, err
- }
-
- return stdlib.OpenDB(*config.ConnConfig), nil
-}
-
-func getTLSConfig(details tlsconfig.Details) (*tls.Config, error) {
- switch details.TlsConnect {
- case "required":
- return &tls.Config{InsecureSkipVerify: true}, nil
- case "verify_ca":
- return tlsconfig.CreateConfig(details, true)
- case "verify_full":
- return tlsconfig.CreateConfig(details, false)
- }
-
- return nil, nil
-}
-
-// get returns a connection with given uri if it exists and also updates lastTimeAccess, otherwise returns nil.
-func (c *ConnManager) get(uri uri.URI) *PGConn {
- c.connMutex.Lock()
- defer c.connMutex.Unlock()
-
- if conn, ok := c.connections[uri.NoQueryString()]; ok {
- conn.updateAccessTime()
- return conn
- }
-
- return nil
-}
-
-// GetConnection returns an existing connection or creates a new one.
-func (c *ConnManager) GetConnection(uri uri.URI, details tlsconfig.Details) (conn *PGConn, err error) {
- c.Lock()
- defer c.Unlock()
-
- conn = c.get(uri)
-
- if conn == nil {
- conn, err = c.create(uri, details)
- }
-
- if err != nil {
- err = zbxerr.ErrorConnectionFailed.Wrap(err)
- }
-
- return
-}
diff --git a/src/go/plugins/postgres/handler_archive.go b/src/go/plugins/postgres/handler_archive.go
deleted file mode 100644
index 9a0641d0165..00000000000
--- a/src/go/plugins/postgres/handler_archive.go
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// archiveHandler gets info about count and size of archive files and returns JSON if all is OK or nil otherwise.
-func archiveHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var archiveCountJSON, archiveSizeJSON string
-
- queryArchiveCount := `SELECT row_to_json(T)
- FROM (
- SELECT archived_count, failed_count
- FROM pg_stat_archiver
- ) T;`
-
- queryArchiveSize := `SELECT row_to_json(T)
- FROM (
- WITH values AS (
- SELECT
- 4096/(ceil(pg_settings.setting::numeric/1024/1024))::int AS segment_parts_count,
- setting::bigint AS segment_size,
- ('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
- ('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
- CASE WHEN pg_is_in_recovery() THEN NULL
- ELSE ('x' || substring(pg_walfile_name(pg_current_wal_lsn()) from 9 for 8))::bit(32)::int END AS current_wal_div,
- CASE WHEN pg_is_in_recovery() THEN NULL
- ELSE ('x' || substring(pg_walfile_name(pg_current_wal_lsn()) from 17 for 8))::bit(32)::int END AS current_wal_mod
- FROM pg_settings, pg_stat_archiver
- WHERE pg_settings.name = 'wal_segment_size')
- SELECT
- greatest(coalesce((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1, 0), 0) AS count_files,
- greatest(coalesce(((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1) * segment_size, 0), 0) AS size_files
- FROM values
- ) T;`
-
- row, err := conn.QueryRow(ctx, queryArchiveCount)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&archiveCountJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- row, err = conn.QueryRow(ctx, queryArchiveSize)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&archiveSizeJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- result := archiveCountJSON[:len(archiveCountJSON)-1] + "," + archiveSizeJSON[1:]
-
- return result, nil
-}
diff --git a/src/go/plugins/postgres/handler_archive_test.go b/src/go/plugins/postgres/handler_archive_test.go
deleted file mode 100644
index 03473493a44..00000000000
--- a/src/go/plugins/postgres/handler_archive_test.go
+++ /dev/null
@@ -1,70 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_archiveHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("archiveHandler should return json with data if OK "),
- &impl,
- args{context.Background(), sharedPool, keyArchiveSize, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- got, err := archiveHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.archiveHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
-
- if len(got.(string)) == 0 {
- t.Errorf("Plugin.archiveHandler() = %v", got)
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_autovacuum.go b/src/go/plugins/postgres/handler_autovacuum.go
deleted file mode 100644
index 9274328ef1a..00000000000
--- a/src/go/plugins/postgres/handler_autovacuum.go
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// autovacuumHandler returns count of autovacuum workers if all is OK or nil otherwise.
-func autovacuumHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var countAutovacuumWorkers int64
-
- query := `SELECT count(*)
- FROM pg_catalog.pg_stat_activity
- WHERE query like '%%autovacuum%%'
- AND state <> 'idle'
- AND pid <> pg_catalog.pg_backend_pid()`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&countAutovacuumWorkers)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return countAutovacuumWorkers, nil
-}
diff --git a/src/go/plugins/postgres/handler_autovacuum_test.go b/src/go/plugins/postgres/handler_autovacuum_test.go
deleted file mode 100644
index 9fa0c52ae4a..00000000000
--- a/src/go/plugins/postgres/handler_autovacuum_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_autovacuumHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("autovacuumHandler should return count of autovacuum workers if OK "),
- &impl,
- args{context.Background(), sharedPool, keyAutovacuum, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := autovacuumHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
-
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.autovacuumHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_bgwriter.go b/src/go/plugins/postgres/handler_bgwriter.go
deleted file mode 100644
index f5a29fb3f74..00000000000
--- a/src/go/plugins/postgres/handler_bgwriter.go
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// bgwriterHandler executes select with statistics from pg_stat_bgwriter
-// and returns JSON if all is OK or nil otherwise.
-func bgwriterHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var bgwriterJSON string
-
- query := `
- SELECT row_to_json (T)
- FROM (
- SELECT
- checkpoints_timed
- , checkpoints_req
- , checkpoint_write_time
- , checkpoint_sync_time
- , buffers_checkpoint
- , buffers_clean
- , maxwritten_clean
- , buffers_backend
- , buffers_backend_fsync
- , buffers_alloc
- FROM pg_catalog.pg_stat_bgwriter
- ) T ;`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&bgwriterJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return bgwriterJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_bgwriter_test.go b/src/go/plugins/postgres/handler_bgwriter_test.go
deleted file mode 100644
index e4c098b76ab..00000000000
--- a/src/go/plugins/postgres/handler_bgwriter_test.go
+++ /dev/null
@@ -1,66 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_bgwriterHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("statHandler should return json with data if OK"),
- &impl,
- args{context.Background(), sharedPool, keyBgwriter, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := bgwriterHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.statHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_cache_test.go b/src/go/plugins/postgres/handler_cache_test.go
deleted file mode 100644
index b1702913904..00000000000
--- a/src/go/plugins/postgres/handler_cache_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_cacheHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("cacheHandler should return int64 with data "),
- &impl,
- args{context.Background(), sharedPool, keyCache, nil, []string{}},
-
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := cacheHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.cacheHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_connections.go b/src/go/plugins/postgres/handler_connections.go
deleted file mode 100644
index 74e82a9705a..00000000000
--- a/src/go/plugins/postgres/handler_connections.go
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// connectionsHandler executes select from pg_stat_activity command and returns JSON if all is OK or nil otherwise.
-func connectionsHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var connectionsJSON string
-
- query := `SELECT row_to_json(T)
- FROM (
- SELECT
- sum(CASE WHEN state = 'active' THEN 1 ELSE 0 END) AS active,
- sum(CASE WHEN state = 'idle' THEN 1 ELSE 0 END) AS idle,
- sum(CASE WHEN state = 'idle in transaction' THEN 1 ELSE 0 END) AS idle_in_transaction,
- sum(CASE WHEN state = 'idle in transaction (aborted)' THEN 1 ELSE 0 END) AS idle_in_transaction_aborted,
- sum(CASE WHEN state = 'fastpath function call' THEN 1 ELSE 0 END) AS fastpath_function_call,
- sum(CASE WHEN state = 'disabled' THEN 1 ELSE 0 END) AS disabled,
- count(*) AS total,
- count(*)*100/(SELECT current_setting('max_connections')::int) AS total_pct,
- sum(CASE WHEN wait_event IS NOT NULL THEN 1 ELSE 0 END) AS waiting,
- (SELECT count(*) FROM pg_prepared_xacts) AS prepared
- FROM pg_stat_activity WHERE datid IS NOT NULL AND state IS NOT NULL) T;`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&connectionsJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return connectionsJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_connections_test.go b/src/go/plugins/postgres/handler_connections_test.go
deleted file mode 100644
index 85d5e68e38c..00000000000
--- a/src/go/plugins/postgres/handler_connections_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_connectionsHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("connectionsHandler should return json with data if OK "),
- &impl,
- args{context.Background(), sharedPool, keyConnections, nil, []string{}},
-
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := connectionsHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.connectionsHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_custom_query.go b/src/go/plugins/postgres/handler_custom_query.go
deleted file mode 100644
index 57c640b3b7f..00000000000
--- a/src/go/plugins/postgres/handler_custom_query.go
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "encoding/json"
- "errors"
- "strings"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// customQueryHandler executes custom user queries from *.sql files.
-func customQueryHandler(ctx context.Context, conn PostgresClient,
- _ string, params map[string]string, extraParams ...string) (interface{}, error) {
- queryName := params["QueryName"]
-
- queryArgs := make([]interface{}, len(extraParams))
- for i, v := range extraParams {
- queryArgs[i] = v
- }
-
- rows, err := conn.QueryByName(ctx, queryName, queryArgs...)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
- defer rows.Close()
-
- // JSON marshaling
- var data []string
-
- columns, err := rows.Columns()
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- values := make([]interface{}, len(columns))
- valuePointers := make([]interface{}, len(values))
-
- for i := range values {
- valuePointers[i] = &values[i]
- }
-
- results := make(map[string]interface{})
-
- for rows.Next() {
- err = rows.Scan(valuePointers...)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- setResult(results, values, columns)
-
- jsonRes, err := json.Marshal(results)
- if err != nil {
- return nil, err
- }
-
- data = append(data, strings.TrimSpace(string(jsonRes)))
- }
-
- // Any errors encountered by rows.Next or rows.Scan will be returned here
- if rows.Err() != nil {
- return nil, err
- }
-
- return "[" + strings.Join(data, ",") + "]", nil
-}
-
-func setResult(results map[string]interface{}, values []interface{}, columns []string) {
- for i, value := range values {
- switch v := value.(type) {
- case []uint8:
- results[columns[i]] = string(v)
- default:
- results[columns[i]] = value
- }
- }
-}
diff --git a/src/go/plugins/postgres/handler_database_age.go b/src/go/plugins/postgres/handler_database_age.go
deleted file mode 100644
index 384ace13541..00000000000
--- a/src/go/plugins/postgres/handler_database_age.go
+++ /dev/null
@@ -1,55 +0,0 @@
-/* /*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// databaseAgeHandler gets age of specific database respectively or nil otherwise.
-func databaseAgeHandler(ctx context.Context, conn PostgresClient,
- _ string, params map[string]string, _ ...string) (interface{}, error) {
- var countAge int64
-
- query := `SELECT age(datfrozenxid)
- FROM pg_catalog.pg_database
- WHERE datistemplate = false
- AND datname = $1;`
- row, err := conn.QueryRow(ctx, query, params["Database"])
-
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&countAge)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return countAge, nil
-}
diff --git a/src/go/plugins/postgres/handler_database_age_test.go b/src/go/plugins/postgres/handler_database_age_test.go
deleted file mode 100644
index b96bf678d30..00000000000
--- a/src/go/plugins/postgres/handler_database_age_test.go
+++ /dev/null
@@ -1,66 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_databasesAgeHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("databaseAgeHandler should return age of each database "),
- &impl,
- args{context.Background(), sharedPool, keyDatabaseAge, testParamDatabase, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := databaseAgeHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.databaseAgeHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_database_size.go b/src/go/plugins/postgres/handler_database_size.go
deleted file mode 100644
index 69f75fc818f..00000000000
--- a/src/go/plugins/postgres/handler_database_size.go
+++ /dev/null
@@ -1,55 +0,0 @@
-/* /*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// databaseSizeHandler gets info about count and size of archive files and returns JSON if all is OK or nil otherwise.
-func databaseSizeHandler(ctx context.Context, conn PostgresClient,
- _ string, params map[string]string, _ ...string) (interface{}, error) {
- var countSize int64
-
- query := `SELECT pg_database_size(datname::text)
- FROM pg_catalog.pg_database
- WHERE datistemplate = false
- AND datname = $1;`
-
- row, err := conn.QueryRow(ctx, query, params["Database"])
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&countSize)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return countSize, nil
-}
diff --git a/src/go/plugins/postgres/handler_database_size_test.go b/src/go/plugins/postgres/handler_database_size_test.go
deleted file mode 100644
index 52970058d3d..00000000000
--- a/src/go/plugins/postgres/handler_database_size_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_databasesSizeHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("databaseSizeHandler should return size of each database "),
- &impl,
- args{context.Background(), sharedPool, keyDatabaseSize, testParamDatabase, []string{}},
-
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := databaseSizeHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.databaseSizeHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_databases_bloating.go b/src/go/plugins/postgres/handler_databases_bloating.go
deleted file mode 100644
index c865cf68ad0..00000000000
--- a/src/go/plugins/postgres/handler_databases_bloating.go
+++ /dev/null
@@ -1,55 +0,0 @@
-/* /*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// databasesBloatingHandler gets info about count and size of archive files and returns JSON if all is OK or nil otherwise.
-func databasesBloatingHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var countBloating int64
-
- query := `SELECT count(*)
- FROM pg_catalog.pg_stat_all_tables
- WHERE (n_dead_tup/(n_live_tup+n_dead_tup)::float8) > 0.2
- AND (n_live_tup+n_dead_tup) > 50;`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&countBloating)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return countBloating, nil
-}
diff --git a/src/go/plugins/postgres/handler_databases_bloating_test.go b/src/go/plugins/postgres/handler_databases_bloating_test.go
deleted file mode 100644
index 14e9e0d4f5a..00000000000
--- a/src/go/plugins/postgres/handler_databases_bloating_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_databasesBloatingHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("databasesBloatingHandler should return size of bloating tables for each database "),
- &impl,
- args{context.Background(), sharedPool, keyDatabasesBloating, nil, []string{}},
-
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := databasesBloatingHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.databaseBloatingHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_databases_discovery.go b/src/go/plugins/postgres/handler_databases_discovery.go
deleted file mode 100644
index 2010cd79377..00000000000
--- a/src/go/plugins/postgres/handler_databases_discovery.go
+++ /dev/null
@@ -1,55 +0,0 @@
-/* /*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// databasesDiscoveryHandler gets names of all databases and returns JSON if all is OK or nil otherwise.
-func databasesDiscoveryHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var databasesJSON string
-
- query := `SELECT json_build_object ('data',json_agg(json_build_object('{#DBNAME}',d.datname)))
- FROM pg_database d
- WHERE NOT datistemplate
- AND datallowconn;`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&databasesJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return databasesJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_databases_discovery_test.go b/src/go/plugins/postgres/handler_databases_discovery_test.go
deleted file mode 100644
index 2abc7937a0c..00000000000
--- a/src/go/plugins/postgres/handler_databases_discovery_test.go
+++ /dev/null
@@ -1,71 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_databasesDiscoveryHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("databasesDiscoveryHandler should return JSON with data if OK "),
- &impl,
- args{context.Background(), sharedPool, keyDatabasesDiscovery, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
-
- got, err := databasesDiscoveryHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.databaseDiscoveryHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
-
- if len(got.(string)) == 0 {
- t.Errorf("Plugin.databaseDiscoveryHandler() = %v", got)
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_dbstat.go b/src/go/plugins/postgres/handler_dbstat.go
deleted file mode 100644
index 0818ab83569..00000000000
--- a/src/go/plugins/postgres/handler_dbstat.go
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
- "fmt"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-const pgVersionWithChecksum = 120000
-
-// dbStatHandler executes select from pg_catalog.pg_stat_database
-// command for each database and returns JSON if all is OK or nil otherwise.
-func dbStatHandler(ctx context.Context, conn PostgresClient,
- key string, _ map[string]string, _ ...string) (interface{}, error) {
- var statJSON, query string
-
- switch key {
- case keyDBStatSum:
- query = `
- SELECT row_to_json (T)
- FROM (
- SELECT
- sum(numbackends) as numbackends
- , sum(xact_commit) as xact_commit
- , sum(xact_rollback) as xact_rollback
- , sum(blks_read) as blks_read
- , sum(blks_hit) as blks_hit
- , sum(tup_returned) as tup_returned
- , sum(tup_fetched) as tup_fetched
- , sum(tup_inserted) as tup_inserted
- , sum(tup_updated) as tup_updated
- , sum(tup_deleted) as tup_deleted
- , sum(conflicts) as conflicts
- , sum(temp_files) as temp_files
- , sum(temp_bytes) as temp_bytes
- , sum(deadlocks) as deadlocks
- , %s as checksum_failures
- , sum(blk_read_time) as blk_read_time
- , sum(blk_write_time) as blk_write_time
- FROM pg_catalog.pg_stat_database
- ) T ;`
- if conn.PostgresVersion() >= pgVersionWithChecksum {
- query = fmt.Sprintf(query, "sum(COALESCE(checksum_failures, 0))")
- } else {
- query = fmt.Sprintf(query, "null")
- }
-
- case keyDBStat:
- query = `
- SELECT json_object_agg(coalesce (datname,'null'), row_to_json(T))
- FROM (
- SELECT
- datname
- , numbackends as numbackends
- , xact_commit as xact_commit
- , xact_rollback as xact_rollback
- , blks_read as blks_read
- , blks_hit as blks_hit
- , tup_returned as tup_returned
- , tup_fetched as tup_fetched
- , tup_inserted as tup_inserted
- , tup_updated as tup_updated
- , tup_deleted as tup_deleted
- , conflicts as conflicts
- , temp_files as temp_files
- , temp_bytes as temp_bytes
- , deadlocks as deadlocks
- , %s as checksum_failures
- , blk_read_time as blk_read_time
- , blk_write_time as blk_write_time
- FROM pg_catalog.pg_stat_database
- ) T ;`
- if conn.PostgresVersion() >= pgVersionWithChecksum {
- query = fmt.Sprintf(query, "COALESCE(checksum_failures, 0)")
- } else {
- query = fmt.Sprintf(query, "null")
- }
- }
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&statJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return statJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_dbstat_test.go b/src/go/plugins/postgres/handler_dbstat_test.go
deleted file mode 100644
index 6383a295f39..00000000000
--- a/src/go/plugins/postgres/handler_dbstat_test.go
+++ /dev/null
@@ -1,72 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_dbStatHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("dbStatHandler should return json with data for pgsql.dbstat.sum key if OK"),
- &impl,
- args{context.Background(), sharedPool, keyDBStatSum, nil, []string{}},
- false,
- },
- {
- fmt.Sprintf("dbStatHandler should return json with data for pgsql.dbstat key if OK"),
- &impl,
- args{context.Background(), sharedPool, keyDBStat, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := dbStatHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.statHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_locks.go b/src/go/plugins/postgres/handler_locks.go
deleted file mode 100644
index 1dfba036d9e..00000000000
--- a/src/go/plugins/postgres/handler_locks.go
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
-)
-
-// locksHandler executes select from pg_stat_database command and returns JSON if all is OK or nil otherwise.
-func locksHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var locksJSON string
-
- query := `
-WITH T AS
- (SELECT db.datname dbname,
- lower(replace(Q.mode, 'Lock', '')) AS MODE,
- coalesce(T.qty, 0) val
- FROM pg_database db
- JOIN (
- VALUES ('AccessShareLock') ,('RowShareLock') ,('RowExclusiveLock') ,('ShareUpdateExclusiveLock') ,('ShareLock') ,('ShareRowExclusiveLock') ,('ExclusiveLock') ,('AccessExclusiveLock')) Q(MODE) ON TRUE NATURAL
- LEFT JOIN
- (SELECT datname,
- MODE,
- count(MODE) qty
- FROM pg_locks lc
- RIGHT JOIN pg_database db ON db.oid = lc.database
- GROUP BY 1, 2) T
- WHERE NOT db.datistemplate
- ORDER BY 1, 2)
-SELECT json_object_agg(dbname, row_to_json(T2))
-FROM
- (SELECT dbname,
- sum(val) AS total,
- sum(CASE
- WHEN MODE = 'accessexclusive' THEN val
- END) AS accessexclusive,
- sum(CASE
- WHEN MODE = 'accessshare' THEN val
- END) AS accessshare,
- sum(CASE
- WHEN MODE = 'exclusive' THEN val
- END) AS EXCLUSIVE,
- sum(CASE
- WHEN MODE = 'rowexclusive' THEN val
- END) AS rowexclusive,
- sum(CASE
- WHEN MODE = 'rowshare' THEN val
- END) AS rowshare,
- sum(CASE
- WHEN MODE = 'share' THEN val
- END) AS SHARE,
- sum(CASE
- WHEN MODE = 'sharerowexclusive' THEN val
- END) AS sharerowexclusive,
- sum(CASE
- WHEN MODE = 'shareupdateexclusive' THEN val
- END) AS shareupdateexclusive
- FROM T
- GROUP BY dbname) T2`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&locksJSON)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- if len(locksJSON) == 0 {
- return nil, errors.New("cannot parse data")
- }
-
- return locksJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_locks_test.go b/src/go/plugins/postgres/handler_locks_test.go
deleted file mode 100644
index 5d076fa074c..00000000000
--- a/src/go/plugins/postgres/handler_locks_test.go
+++ /dev/null
@@ -1,74 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
- "fmt"
- "testing"
-)
-
-func TestPlugin_locksHandler(t *testing.T) {
-
- // create pool or acquire conn from old pool for test
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("Plugin.locksHandler() should return ptr to Pool for Plugin.locksHandler()"),
- &impl,
- args{context.Background(), sharedPool, keyLocks, nil, []string{}},
-
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- got, err := locksHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.locksHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- if len(got.(string)) == 0 && err != errors.New("cannot parse data") {
- t.Errorf("Plugin.locksHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_oldest_xid.go b/src/go/plugins/postgres/handler_oldest_xid.go
deleted file mode 100644
index 4140fd6fde1..00000000000
--- a/src/go/plugins/postgres/handler_oldest_xid.go
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// oldestXIDHandler gets age of the oldest xid if all is OK or nil otherwise.
-func oldestXIDHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var resultXID int64
-
- query := `SELECT greatest(max(age(backend_xmin)), max(age(backend_xid)))
- FROM pg_catalog.pg_stat_activity`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&resultXID)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return resultXID, nil
-}
diff --git a/src/go/plugins/postgres/handler_oldest_xid_test.go b/src/go/plugins/postgres/handler_oldest_xid_test.go
deleted file mode 100644
index 36fe7e35714..00000000000
--- a/src/go/plugins/postgres/handler_oldest_xid_test.go
+++ /dev/null
@@ -1,71 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_oldestHandler(t *testing.T) {
-
- // create pool or acquire conn from old pool for test
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("oldestXIDHandler() should return ptr to Pool for oldestXIDHandler()"),
- &impl,
- args{context.Background(), sharedPool, keyOldestXid, nil, []string{}},
-
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := oldestXIDHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.oldestXIDHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
-
- })
- }
-
-}
diff --git a/src/go/plugins/postgres/handler_ping_test.go b/src/go/plugins/postgres/handler_ping_test.go
deleted file mode 100755
index 98d70b03fe6..00000000000
--- a/src/go/plugins/postgres/handler_ping_test.go
+++ /dev/null
@@ -1,73 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "reflect"
- "testing"
-)
-
-func TestPlugin_pingHandler(t *testing.T) {
- // create pool or acquire conn from old pool for test
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- want interface{}
- wantErr bool
- }{
- {
- fmt.Sprintf("pingHandler should return %d if connection is ok", pingOk),
- &impl,
- args{context.Background(), sharedPool, keyPing, nil, []string{}},
- pingOk,
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- got, err := pingHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.pingHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- if !reflect.DeepEqual(got, tt.want) {
- t.Errorf("Plugin.pingHandler() = %v, want %v", got, tt.want)
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_queries.go b/src/go/plugins/postgres/handler_queries.go
deleted file mode 100644
index 6ce96cc1c63..00000000000
--- a/src/go/plugins/postgres/handler_queries.go
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "strconv"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
-)
-
-// queriesHandler executes select from pg_database command and returns JSON if all is OK or nil otherwise.
-func queriesHandler(ctx context.Context, conn PostgresClient,
- _ string, params map[string]string, _ ...string) (interface{}, error) {
- var queriesJSON string
-
- period, err := strconv.Atoi(params["TimePeriod"])
- if err != nil {
- return nil, zbxerr.ErrorInvalidParams.Wrap(
- fmt.Errorf("TimePeriod must be an integer, %s", err.Error()),
- )
- }
-
- if period < 1 {
- return nil, zbxerr.ErrorInvalidParams.Wrap(
- fmt.Errorf("TimePeriod must be greater than 0"),
- )
- }
-
- exp := `^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER|CREATE|ALTER|TRUNCATE|DROP)`
- query := fmt.Sprintf(`WITH T AS (
- SELECT
- db.datname,
- coalesce(T.query_time_max, 0) query_time_max,
- coalesce(T.tx_time_max, 0) tx_time_max,
- coalesce(T.mro_time_max, 0) mro_time_max,
- coalesce(T.query_time_sum, 0) query_time_sum,
- coalesce(T.tx_time_sum, 0) tx_time_sum,
- coalesce(T.mro_time_sum, 0) mro_time_sum,
- coalesce(T.query_slow_count, 0) query_slow_count,
- coalesce(T.tx_slow_count, 0) tx_slow_count,
- coalesce(T.mro_slow_count, 0) mro_slow_count
- FROM
- pg_database db NATURAL
- LEFT JOIN (
- SELECT
- datname,
- extract(
- epoch
- FROM
- now()
- ) :: integer ts,
- coalesce(
- max(
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) :: integer * (
- state NOT IN (
- 'idle',
- 'idle in transaction',
- 'idle in transaction (aborted)'
- )
- AND query !~* E'%s'
- ) :: integer
- ),
- 0
- ) query_time_max,
- coalesce(
- max(
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) :: integer * (
- state NOT IN ('idle')
- AND query !~* E'%s'
- ) :: integer
- ),
- 0
- ) tx_time_max,
- coalesce(
- max(
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) :: integer * (
- state NOT IN ('idle')
- AND query ~* E'%s'
- ) :: integer
- ),
- 0
- ) mro_time_max,
- coalesce(
- sum(
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) :: integer * (
- state NOT IN (
- 'idle',
- 'idle in transaction',
- 'idle in transaction (aborted)'
- )
- AND query !~* E'%s'
- ) :: integer
- ),
- 0
- ) query_time_sum,
- coalesce(
- sum(
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) :: integer * (
- state NOT IN ('idle')
- AND query !~* E'%s'
- ) :: integer
- ),
- 0
- ) tx_time_sum,
- coalesce(
- sum(
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) :: integer * (
- state NOT IN ('idle')
- AND query ~* E'%s'
- ) :: integer
- ),
- 0
- ) mro_time_sum,
- coalesce(
- sum(
- (
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) > % d
- ) :: integer * (
- state NOT IN (
- 'idle',
- 'idle in transaction',
- 'idle in transaction (aborted)'
- )
- AND query !~* E'%s'
- ) :: integer
- ),
- 0
- ) query_slow_count,
- coalesce(
- sum(
- (
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) > % d
- ) :: integer * (
- state NOT IN ('idle')
- AND query !~* E'%s'
- ) :: integer
- ),
- 0
- ) tx_slow_count,
- coalesce(
- sum(
- (
- extract(
- 'epoch'
- FROM
- (clock_timestamp() - query_start)
- ) > % d
- ) :: integer * (
- state NOT IN ('idle')
- AND query ~* E'%s'
- ) :: integer
- ),
- 0
- ) mro_slow_count
- FROM
- pg_stat_activity
- WHERE
- pid <> pg_backend_pid()
- GROUP BY
- 1
- ) T
- WHERE
- NOT db.datistemplate
- )
- SELECT
- json_object_agg(datname, row_to_json(T))
- FROM
- T`,
- exp, exp, exp, exp, exp, exp, period, exp, period, exp, period, exp)
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&queriesJSON)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- if len(queriesJSON) == 0 {
- return nil, zbxerr.ErrorCannotParseResult
- }
-
- return queriesJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_queries_test.go b/src/go/plugins/postgres/handler_queries_test.go
deleted file mode 100644
index df8cca0f249..00000000000
--- a/src/go/plugins/postgres/handler_queries_test.go
+++ /dev/null
@@ -1,72 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
- "fmt"
- "testing"
-)
-
-func TestPlugin_queriesHandler(t *testing.T) {
- // create pool or acquire conn from old pool for test
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("Plugin.queriesHandler() should return ptr to Pool for Plugin.queriesHandler()"),
- &impl,
- args{context.Background(), sharedPool, keyQueries, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- got, err := queriesHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.queriesHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- if len(got.(string)) == 0 && err != errors.New("cannot parse data") {
- t.Errorf("Plugin.queriesHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_replication.go b/src/go/plugins/postgres/handler_replication.go
deleted file mode 100644
index 8bd2aaebfe1..00000000000
--- a/src/go/plugins/postgres/handler_replication.go
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "database/sql"
- "errors"
- "strconv"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// replicationHandler gets info about recovery state if all is OK or nil otherwise.
-func replicationHandler(ctx context.Context, conn PostgresClient,
- key string, _ map[string]string, _ ...string) (interface{}, error) {
- var (
- replicationResult int64
- status int
- query string
- stringResult sql.NullString
- inRecovery bool
- )
-
- switch key {
- case keyReplicationStatus:
- row, err := conn.QueryRow(ctx, `SELECT pg_is_in_recovery()`)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&inRecovery)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- if inRecovery {
- row, err = conn.QueryRow(ctx, `SELECT COUNT(*) FROM pg_stat_wal_receiver`)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&status)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
- } else {
- status = 2
- }
-
- return strconv.Itoa(status), nil
-
- case keyReplicationLagSec:
- query = `SELECT
- CASE
- WHEN NOT pg_is_in_recovery() OR pg_last_wal_receive_lsn() = pg_last_wal_replay_lsn() THEN 0
- ELSE COALESCE(EXTRACT(EPOCH FROM now() - pg_last_xact_replay_timestamp())::integer, 0)
- END AS lag;`
- case keyReplicationLagB:
- row, err := conn.QueryRow(ctx, `SELECT pg_is_in_recovery()`)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&inRecovery)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- if inRecovery {
- query = `SELECT pg_catalog.pg_wal_lsn_diff (pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn());`
- row, err = conn.QueryRow(ctx, query)
-
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&replicationResult)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
- } else {
- replicationResult = 0
- }
-
- return replicationResult, nil
-
- case keyReplicationRecoveryRole:
- query = `SELECT pg_is_in_recovery()::int`
-
- case keyReplicationCount:
- query = `SELECT COUNT(DISTINCT client_addr) + COALESCE(SUM(CASE WHEN client_addr IS NULL THEN 1 ELSE 0 END), 0) FROM pg_stat_replication;`
-
- case keyReplicationProcessInfo:
- query = `SELECT json_object_agg(application_name, row_to_json(T))
- FROM (
- SELECT
- application_name,
- EXTRACT(epoch FROM COALESCE(flush_lag,'0'::interval)) AS flush_lag,
- EXTRACT(epoch FROM COALESCE(replay_lag,'0'::interval)) AS replay_lag,
- EXTRACT(epoch FROM COALESCE(write_lag, '0'::interval)) AS write_lag
- FROM pg_stat_replication
- ) T; `
- row, err := conn.QueryRow(ctx, query)
-
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&stringResult)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return stringResult.String, nil
- }
-
- row, err := conn.QueryRow(ctx, query)
-
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&replicationResult)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return replicationResult, nil
-}
diff --git a/src/go/plugins/postgres/handler_replication_process_name_discovery.go b/src/go/plugins/postgres/handler_replication_process_name_discovery.go
deleted file mode 100644
index 8fe5d3302c3..00000000000
--- a/src/go/plugins/postgres/handler_replication_process_name_discovery.go
+++ /dev/null
@@ -1,55 +0,0 @@
-/* /*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// processNameDiscoveryHandler gets names of all sender processes in pg_stat_replication
-// and returns JSON if all is OK or nil otherwise.
-func processNameDiscoveryHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var appNameJSON string
-
- query := `SELECT
- json_build_object('data',COALESCE(json_agg(json_build_object('{#APPLICATION_NAME}',application_name)), '[]'))
- FROM pg_stat_replication`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&appNameJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return appNameJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_replication_test.go b/src/go/plugins/postgres/handler_replication_test.go
deleted file mode 100644
index 004570385ce..00000000000
--- a/src/go/plugins/postgres/handler_replication_test.go
+++ /dev/null
@@ -1,106 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_replicationHandler(t *testing.T) {
- // create pool or acquire conn from old pool
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("replicationHandler should return ptr to Pool for replication.count"),
- &impl,
- args{context.Background(), sharedPool, keyReplicationCount, nil, []string{}},
- false,
- },
- {
- fmt.Sprintf("replicationHandler should return ptr to Pool for replication.status"),
- &impl,
- args{context.Background(), sharedPool, keyReplicationStatus, nil, []string{}},
- false,
- },
- {
- fmt.Sprintf("replicationHandler should return ptr to Pool for replication.lag.sec"),
- &impl,
- args{context.Background(), sharedPool, keyReplicationLagSec, nil, []string{}},
- false,
- },
- {
- fmt.Sprintf("replicationHandler should return ptr to Pool for replication.lag.b"),
- &impl,
- args{context.Background(), sharedPool, keyReplicationLagB, nil, []string{}},
- false,
- },
- {
- fmt.Sprintf("replicationHandler should return ptr to Pool for replication.recovery_role"),
- &impl,
- args{context.Background(), sharedPool, keyReplicationRecoveryRole, nil, []string{}},
- false,
- },
- {
- fmt.Sprintf("replicationHandler should return ptr to Pool for replication.master.discovery.application_name"),
- &impl,
- args{context.Background(), sharedPool, keyReplicationMasterDiscoveryAppName, nil, []string{}},
- false,
- },
- }
-
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- got, err := replicationHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.replicationHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- if tt.wantErr == false {
- if tt.args.key == keyReplicationStatus || tt.args.key == keyReplicationMasterDiscoveryAppName {
- if len(got.(string)) == 0 {
- t.Errorf("Plugin.replicationTransactions() at DeepEqual error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- }
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_uptime.go b/src/go/plugins/postgres/handler_uptime.go
deleted file mode 100644
index 23f6979be5d..00000000000
--- a/src/go/plugins/postgres/handler_uptime.go
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// uptimeHandler finds difference btw current time and
-// postmaster start time and returns int64 if all is OK or nil otherwise.
-func uptimeHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var uptime float64
-
- query := `SELECT date_part('epoch', now() - pg_postmaster_start_time());`
- row, err := conn.QueryRow(ctx, query)
-
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&uptime)
-
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return uptime, nil
-}
diff --git a/src/go/plugins/postgres/handler_uptime_test.go b/src/go/plugins/postgres/handler_uptime_test.go
deleted file mode 100644
index eabc6e7c787..00000000000
--- a/src/go/plugins/postgres/handler_uptime_test.go
+++ /dev/null
@@ -1,66 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_uptimeHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("uptimeHandler should return json with data if OK"),
- &impl,
- args{context.Background(), sharedPool, keyUptime, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := uptimeHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.uptimeHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/handler_wal.go b/src/go/plugins/postgres/handler_wal.go
deleted file mode 100644
index 822234f4125..00000000000
--- a/src/go/plugins/postgres/handler_wal.go
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
-
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
-
-// walHandler executes select from directory which contains wal files and returns JSON if all is OK or nil otherwise.
-func walHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var walJSON string
-
- query := `SELECT row_to_json(T)
- FROM (
- SELECT
- CASE
- WHEN pg_is_in_recovery() THEN 0
- ELSE pg_wal_lsn_diff(pg_current_wal_lsn(),'0/00000000')
- END AS WRITE,
- CASE
- WHEN NOT pg_is_in_recovery() THEN 0
- ELSE pg_wal_lsn_diff(pg_last_wal_receive_lsn(),'0/00000000')
- END AS RECEIVE,
- count(*)
- FROM pg_ls_waldir() AS COUNT
- ) T;`
-
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- err = row.Scan(&walJSON)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return walJSON, nil
-}
diff --git a/src/go/plugins/postgres/handler_wal_test.go b/src/go/plugins/postgres/handler_wal_test.go
deleted file mode 100644
index dede50f710f..00000000000
--- a/src/go/plugins/postgres/handler_wal_test.go
+++ /dev/null
@@ -1,66 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "fmt"
- "testing"
-)
-
-func TestPlugin_walHandler(t *testing.T) {
- sharedPool, err := getConnPool()
- if err != nil {
- t.Fatal(err)
- }
-
- type args struct {
- ctx context.Context
- conn *PGConn
- key string
- params map[string]string
- extraParams []string
- }
- tests := []struct {
- name string
- p *Plugin
- args args
- wantErr bool
- }{
- {
- fmt.Sprintf("walHandler should return json with data if OK"),
- &impl,
- args{context.Background(), sharedPool, keyWal, nil, []string{}},
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- _, err := walHandler(tt.args.ctx, tt.args.conn, tt.args.key, tt.args.params, tt.args.extraParams...)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.walHandler() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- })
- }
-}
diff --git a/src/go/plugins/postgres/metrics.go b/src/go/plugins/postgres/metrics.go
deleted file mode 100644
index 3654ef90720..00000000000
--- a/src/go/plugins/postgres/metrics.go
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "errors"
- "fmt"
- "regexp"
- "strings"
-
- "git.zabbix.com/ap/plugin-support/metric"
- "git.zabbix.com/ap/plugin-support/plugin"
- "git.zabbix.com/ap/plugin-support/uri"
-)
-
-const (
- keyArchiveSize = "pgsql.archive"
- keyAutovacuum = "pgsql.autovacuum.count"
- keyBgwriter = "pgsql.bgwriter"
- keyCache = "pgsql.cache.hit"
- keyConnections = "pgsql.connections"
- keyCustomQuery = "pgsql.custom.query"
- keyDBStat = "pgsql.dbstat"
- keyDBStatSum = "pgsql.dbstat.sum"
- keyDatabaseAge = "pgsql.db.age"
- keyDatabasesBloating = "pgsql.db.bloating_tables"
- keyDatabasesDiscovery = "pgsql.db.discovery"
- keyDatabaseSize = "pgsql.db.size"
- keyLocks = "pgsql.locks"
- keyOldestXid = "pgsql.oldest.xid"
- keyPing = "pgsql.ping"
- keyQueries = "pgsql.queries"
- keyReplicationCount = "pgsql.replication.count"
- keyReplicationLagB = "pgsql.replication.lag.b"
- keyReplicationLagSec = "pgsql.replication.lag.sec"
- keyReplicationProcessInfo = "pgsql.replication.process"
- keyReplicationProcessNameDiscovery = "pgsql.replication.process.discovery"
- keyReplicationRecoveryRole = "pgsql.replication.recovery_role"
- keyReplicationStatus = "pgsql.replication.status"
- keyUptime = "pgsql.uptime"
- keyWal = "pgsql.wal.stat"
-)
-
-// handlerFunc defines an interface must be implemented by handlers.
-type handlerFunc func(ctx context.Context, conn PostgresClient, key string,
- params map[string]string, extraParams ...string) (res interface{}, err error)
-
-// getHandlerFunc returns a handlerFunc related to a given key.
-func getHandlerFunc(key string) handlerFunc {
- switch key {
- case keyDatabasesDiscovery:
- return databasesDiscoveryHandler
- case keyDatabasesBloating:
- return databasesBloatingHandler
- case keyDatabaseSize:
- return databaseSizeHandler
- case keyDatabaseAge:
- return databaseAgeHandler
- case keyArchiveSize:
- return archiveHandler
- case keyPing:
- return pingHandler
- case keyConnections:
- return connectionsHandler
- case keyWal:
- return walHandler
- case keyAutovacuum:
- return autovacuumHandler
- case keyDBStat,
- keyDBStatSum:
- return dbStatHandler
- case keyBgwriter:
- return bgwriterHandler
- case keyCustomQuery:
- return customQueryHandler
- case keyUptime:
- return uptimeHandler
- case keyCache:
- return cacheHandler
- case keyReplicationCount,
- keyReplicationStatus,
- keyReplicationLagSec,
- keyReplicationRecoveryRole,
- keyReplicationLagB,
- keyReplicationProcessInfo:
- return replicationHandler
- case keyReplicationProcessNameDiscovery:
- return processNameDiscoveryHandler
- case keyLocks:
- return locksHandler
- case keyOldestXid:
- return oldestXIDHandler
- case keyQueries:
- return queriesHandler
- default:
- return nil
- }
-}
-
-var uriDefaults = &uri.Defaults{Scheme: "tcp", Port: "5432"}
-
-var (
- minDBNameLen = 1
- maxDBNameLen = 63
- maxPassLen = 512
-)
-
-type PostgresURIValidator struct {
- Defaults *uri.Defaults
- AllowedSchemes []string
-}
-
-var reSocketPath = regexp.MustCompile(`^.*\.s\.PGSQL\.\d{1,5}$`)
-
-func (v PostgresURIValidator) Validate(value *string) error {
- if value == nil {
- return nil
- }
-
- u, err := uri.New(*value, v.Defaults)
- if err != nil {
- return err
- }
-
- isValidScheme := false
- if v.AllowedSchemes != nil {
- for _, s := range v.AllowedSchemes {
- if u.Scheme() == s {
- isValidScheme = true
- break
- }
- }
-
- if !isValidScheme {
- return fmt.Errorf("allowed schemes: %s", strings.Join(v.AllowedSchemes, ", "))
- }
- }
-
- if u.Scheme() == "unix" && !reSocketPath.MatchString(*value) {
- return errors.New(
- `socket file must satisfy the format: "/path/.s.PGSQL.nnnn" where nnnn is the server's port number`)
- }
-
- return nil
-}
-
-// Common params: [URI|Session][,User][,Password][,Database]
-var (
- paramURI = metric.NewConnParam("URI", "URI to connect or session name.").
- WithDefault(uriDefaults.Scheme + "://localhost:" + uriDefaults.Port).WithSession().
- WithValidator(PostgresURIValidator{
- Defaults: uriDefaults,
- AllowedSchemes: []string{"tcp", "postgresql", "unix"},
- })
- paramUsername = metric.NewConnParam("User", "PostgreSQL user.").WithDefault("postgres")
- paramPassword = metric.NewConnParam("Password", "User's password.").WithDefault("").
- WithValidator(metric.LenValidator{Max: &maxPassLen})
- paramDatabase = metric.NewConnParam("Database", "Database name to be used for connection.").
- WithDefault("postgres").WithValidator(metric.LenValidator{Min: &minDBNameLen, Max: &maxDBNameLen})
- paramTLSConnect = metric.NewSessionOnlyParam("TLSConnect", "DB connection encryption type.").WithDefault("")
- paramTLSCaFile = metric.NewSessionOnlyParam("TLSCAFile", "TLS ca file path.").WithDefault("")
- paramTLSCertFile = metric.NewSessionOnlyParam("TLSCertFile", "TLS cert file path.").WithDefault("")
- paramTLSKeyFile = metric.NewSessionOnlyParam("TLSKeyFile", "TLS key file path.").WithDefault("")
-)
-
-var metrics = metric.MetricSet{
- keyArchiveSize: metric.New("Returns info about size of archive files.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyAutovacuum: metric.New("Returns count of autovacuum workers.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyBgwriter: metric.New("Returns JSON for sum of each type of bgwriter statistic.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyCache: metric.New("Returns cache hit percent.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyConnections: metric.New("Returns JSON for sum of each type of connection.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyCustomQuery: metric.New("Returns result of a custom query.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase,
- metric.NewParam("QueryName", "Name of a custom query "+
- "(must be equal to a name of an SQL file without an extension).").SetRequired(),
- paramTLSConnect, paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, true),
-
- keyDBStat: metric.New("Returns JSON for sum of each type of statistic.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyDBStatSum: metric.New("Returns JSON for sum of each type of statistic for all database.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyDatabaseAge: metric.New("Returns age for specific database.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyDatabasesBloating: metric.New("Returns percent of bloating tables for each database.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyDatabasesDiscovery: metric.New("Returns JSON discovery rule with names of databases.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyDatabaseSize: metric.New("Returns size in bytes for specific database.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyLocks: metric.New("Returns collect all metrics from pg_locks.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyOldestXid: metric.New("Returns age of oldest xid.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyPing: metric.New("Tests if connection is alive or not.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyQueries: metric.New("Returns queries statistic.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase,
- metric.NewParam("TimePeriod", "Execution time limit for count of slow queries.").SetRequired(),
- paramTLSConnect, paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyReplicationCount: metric.New("Returns number of standby servers.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyReplicationLagB: metric.New("Returns replication lag with Master in byte.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyReplicationLagSec: metric.New("Returns replication lag with Master in seconds.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyReplicationProcessNameDiscovery: metric.New("Returns JSON with application name from pg_stat_replication.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyReplicationProcessInfo: metric.New("Returns flush lag, write lag and replay lag per each sender process.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyReplicationRecoveryRole: metric.New("Returns postgreSQL recovery role.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyReplicationStatus: metric.New("Returns postgreSQL replication status.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyUptime: metric.New("Returns uptime.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-
- keyWal: metric.New("Returns JSON wal by type.",
- []*metric.Param{paramURI, paramUsername, paramPassword, paramDatabase, paramTLSConnect,
- paramTLSCaFile, paramTLSCertFile, paramTLSKeyFile}, false),
-}
-
-func init() {
- plugin.RegisterMetrics(&impl, pluginName, metrics.List()...)
-}
diff --git a/src/go/plugins/postgres/postgres.go b/src/go/plugins/postgres/postgres.go
deleted file mode 100755
index c4031facccc..00000000000
--- a/src/go/plugins/postgres/postgres.go
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "context"
- "net/http"
- "net/url"
- "time"
-
- "git.zabbix.com/ap/plugin-support/uri"
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "zabbix.com/pkg/tlsconfig"
-
- "github.com/omeid/go-yarn"
-
- "git.zabbix.com/ap/plugin-support/plugin"
-)
-
-const (
- pluginName = "Postgres"
- sqlExt = ".sql"
- hkInterval = 10
-)
-
-// Plugin inherits plugin.Base and store plugin-specific data.
-type Plugin struct {
- plugin.Base
- connMgr *ConnManager
- options PluginOptions
-}
-
-// impl is the pointer to the plugin implementation.
-var impl Plugin
-
-// Export implements the Exporter interface.
-func (p *Plugin) Export(key string, rawParams []string, _ plugin.ContextProvider) (result interface{}, err error) {
- params, extraParams, err := metrics[key].EvalParams(rawParams, p.options.Sessions)
- if err != nil {
- return nil, err
- }
-
- details, err := tlsconfig.CreateDetails(params["sessionName"], params["TLSConnect"],
- params["TLSCAFile"], params["TLSCertFile"], params["TLSKeyFile"], params["URI"])
- if err != nil {
- return nil, zbxerr.ErrorInvalidConfiguration.Wrap(err)
- }
-
- dbname := url.QueryEscape(params["Database"])
-
- uri, err := uri.NewWithCreds(params["URI"]+"?dbname="+dbname, params["User"], params["Password"], uriDefaults)
- if err != nil {
- return nil, err
- }
-
- handleMetric := getHandlerFunc(key)
- if handleMetric == nil {
- return nil, zbxerr.ErrorUnsupportedMetric
- }
-
- conn, err := p.connMgr.GetConnection(*uri, details)
- if err != nil {
- // Special logic of processing connection errors should be used if pgsql.ping is requested
- // because it must return pingFailed if any error occurred.
- if key == keyPing {
- return pingFailed, nil
- }
-
- p.Errf(err.Error())
-
- return nil, err
- }
-
- ctx, cancel := context.WithTimeout(conn.ctx, conn.callTimeout)
- defer cancel()
-
- result, err = handleMetric(ctx, conn, key, params, extraParams...)
-
- if err != nil {
- p.Errf(err.Error())
- }
-
- return result, err
-}
-
-// Start implements the Runner interface and performs initialization when plugin is activated.
-func (p *Plugin) Start() {
- queryStorage, err := yarn.New(http.Dir(p.options.CustomQueriesPath), "*"+sqlExt)
- if err != nil {
- p.Errf(err.Error())
- // create empty storage if error occurred
- queryStorage = yarn.NewFromMap(map[string]string{})
- }
-
- p.connMgr = NewConnManager(
- time.Duration(p.options.KeepAlive)*time.Second,
- time.Duration(p.options.Timeout)*time.Second,
- time.Duration(p.options.CallTimeout)*time.Second,
- hkInterval*time.Second,
- queryStorage,
- )
-}
-
-// Stop implements the Runner interface and frees resources when plugin is deactivated.
-func (p *Plugin) Stop() {
- p.connMgr.Destroy()
- p.connMgr = nil
-}
diff --git a/src/go/plugins/postgres/postgres_test.go b/src/go/plugins/postgres/postgres_test.go
deleted file mode 100755
index 4255bee0d2d..00000000000
--- a/src/go/plugins/postgres/postgres_test.go
+++ /dev/null
@@ -1,145 +0,0 @@
-//go:build postgres_tests
-// +build postgres_tests
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "os"
- "reflect"
- "testing"
-
- "git.zabbix.com/ap/plugin-support/log"
- "git.zabbix.com/ap/plugin-support/plugin"
- "github.com/omeid/go-yarn"
-)
-
-var testParamDatabase = map[string]string{"Database": "postgres"}
-
-// TestMain does the before and after setup
-func TestMain(m *testing.M) {
- var code int
-
- _ = log.Open(log.Console, log.Debug, "", 0)
-
- log.Infof("[TestMain] Start connecting to PostgreSQL...")
- if err := createConnection(); err != nil {
- log.Infof("failed to create connection to PostgreSQL for tests")
- os.Exit(code)
- }
- // initialize plugin
- impl.Init(pluginName)
- impl.Configure(&plugin.GlobalOptions{Timeout: 30}, nil)
-
- code = m.Run()
- if code != 0 {
- log.Critf("failed to run PostgreSQL tests")
- os.Exit(code)
- }
- log.Infof("[TestMain] Cleaning up...")
- os.Exit(code)
-}
-
-func TestPlugin_Start(t *testing.T) {
- t.Run("Connection manager must be initialized", func(t *testing.T) {
- impl.Start()
- if impl.connMgr == nil {
- t.Error("Connection manager is not initialized")
- }
- })
-}
-
-func TestPlugin_Export(t *testing.T) {
- pgAddr, pgUser, pgPwd, pgDb := getEnv()
-
- type args struct {
- key string
- params []string
- ctx plugin.ContextProvider
- }
-
- //impl.Configure(&plugin.GlobalOptions{Timeout: 30}, nil)
- impl.connMgr.queryStorage = yarn.NewFromMap(map[string]string{
- "TestQuery.sql": "SELECT $1::text AS res",
- })
-
- tests := []struct {
- name string
- p *Plugin
- args args
- wantResult interface{}
- wantErr bool
- }{
- {
- "Check PG Ping",
- &impl,
- args{keyPing, []string{pgAddr, pgUser, pgPwd}, nil},
- pingOk,
- false,
- },
- {
- "Too many parameters",
- &impl,
- args{keyPing, []string{"param1", "param2", "param3", "param4", "param5"}, nil},
- nil,
- true,
- },
- {
- "Check wal handler",
- &impl,
- args{keyWal, []string{pgAddr, pgUser, pgPwd}, nil},
- nil,
- false,
- },
- {
- "Check custom queries handler. Should return 1 as text",
- &impl,
- args{keyCustomQuery, []string{pgAddr, pgUser, pgPwd, pgDb, "TestQuery", "echo"}, nil},
- "[{\"res\":\"echo\"}]",
- false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- gotResult, err := tt.p.Export(tt.args.key, tt.args.params, tt.args.ctx)
- if (err != nil) != tt.wantErr {
- t.Errorf("Plugin.Export() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- if !reflect.DeepEqual(gotResult, tt.wantResult) && tt.args.key != keyWal {
- t.Errorf("Plugin.Export() = %v, want %v", gotResult, tt.wantResult)
- }
- if tt.args.key == keyWal && len(gotResult.(string)) == 0 {
- t.Errorf("Plugin.Export() result for keyPostgresWal length is 0")
- }
- })
- }
-
-}
-
-func TestPlugin_Stop(t *testing.T) {
- t.Run("Connection manager must be deinitialized", func(t *testing.T) {
- impl.Stop()
- if impl.connMgr != nil {
- t.Error("Connection manager is not deinitialized")
- }
- })
-}
diff --git a/src/go/plugins/postgres/testpool.go b/src/go/plugins/postgres/testpool.go
deleted file mode 100644
index 79a98afca8e..00000000000
--- a/src/go/plugins/postgres/testpool.go
+++ /dev/null
@@ -1,91 +0,0 @@
-//go:build !windows
-// +build !windows
-
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-package postgres
-
-import (
- "database/sql"
- "fmt"
- "os"
- "time"
-
- "git.zabbix.com/ap/plugin-support/log"
-)
-
-var sharedConn *PGConn
-
-func getConnPool() (*PGConn, error) {
- return sharedConn, nil
-}
-
-func getEnv() (pgAddr, pgUser, pgPwd, pgDb string) {
- pgAddr = os.Getenv("PG_ADDR")
- pgUser = os.Getenv("PG_USER")
- pgPwd = os.Getenv("PG_PWD")
- pgDb = os.Getenv("PG_DB")
-
- if pgAddr == "" {
- pgAddr = "localhost:5432"
- }
- if pgUser == "" {
- pgUser = "postgres"
- }
- if pgPwd == "" {
- pgPwd = "postgres"
- }
- if pgDb == "" {
- pgDb = "postgres"
- }
-
- return
-}
-
-func createConnection() error {
- pgAddr, pgUser, pgPwd, pgDb := getEnv()
-
- connString := fmt.Sprintf("postgresql://%s:%s@%s/%s", pgUser, pgPwd, pgAddr, pgDb)
-
- newConn, err := sql.Open("pgx", connString)
- if err != nil {
- log.Critf("[createConnection] cannot create connection to Postgres: %s", err.Error())
-
- return err
- }
-
- var version int
-
- err = newConn.QueryRow(`select current_setting('server_version_num');`).Scan(&version)
- if err != nil {
- log.Critf("[createConnection] cannot get Postgres version: %s", err.Error())
-
- return err
- }
-
- sharedConn = &PGConn{
- client: newConn,
- lastTimeAccess: time.Now(),
- version: version,
- callTimeout: 30,
- }
-
- return nil
-}
diff --git a/src/go/plugins/proc/proc_linux.go b/src/go/plugins/proc/proc_linux.go
index b477e13cf57..3c83f60d715 100644
--- a/src/go/plugins/proc/proc_linux.go
+++ b/src/go/plugins/proc/proc_linux.go
@@ -402,6 +402,7 @@ func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider)
ticks *= 1e12
ticks /= uint64(tail.timestamp.Sub(head.timestamp))
+ log.Tracef("Calling C function \"sysconf()\"")
return math.Round(float64(ticks)/float64(C.sysconf(C._SC_CLK_TCK))) / 10, nil
}
stats := &cpuUtilStats{accessed: now, history: make([]cpuUtilData, maxHistory)}
diff --git a/src/go/plugins/system/cpu/cpu_linux.go b/src/go/plugins/system/cpu/cpu_linux.go
index 188db3ea6a7..9c96e7d4295 100644
--- a/src/go/plugins/system/cpu/cpu_linux.go
+++ b/src/go/plugins/system/cpu/cpu_linux.go
@@ -32,6 +32,7 @@ import (
"strings"
"git.zabbix.com/ap/plugin-support/plugin"
+ "git.zabbix.com/ap/plugin-support/log"
)
// Plugin -
@@ -132,10 +133,12 @@ func (p *Plugin) addCpu(index int) {
}
func numCPUConf() int {
+ log.Tracef("Calling C function \"sysconf()\"")
return int(C.sysconf(C._SC_NPROCESSORS_CONF))
}
func numCPUOnline() int {
+ log.Tracef("Calling C function \"sysconf()\"")
return int(C.sysconf(C._SC_NPROCESSORS_ONLN))
}
diff --git a/src/go/plugins/vfs/file/encoding.go b/src/go/plugins/vfs/file/encoding.go
index 455765a180c..795d16ce3b9 100644
--- a/src/go/plugins/vfs/file/encoding.go
+++ b/src/go/plugins/vfs/file/encoding.go
@@ -31,6 +31,8 @@ import "C"
import (
"syscall"
"unsafe"
+
+ "git.zabbix.com/ap/plugin-support/log"
)
func decode(encoder string, inbuf []byte) (outbuf []byte) {
@@ -48,10 +50,13 @@ func decode(encoder string, inbuf []byte) (outbuf []byte) {
}
tocode := C.CString("UTF-8")
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(tocode))
fromcode := C.CString(encoder)
+ log.Tracef("Calling C function \"free()\"")
defer C.free(unsafe.Pointer(fromcode))
+ log.Tracef("Calling C function \"iconv_open()\"")
cd, err := C.iconv_open(tocode, fromcode)
if err != nil {
@@ -65,6 +70,7 @@ func decode(encoder string, inbuf []byte) (outbuf []byte) {
for {
inptr := (*C.char)(unsafe.Pointer(&inbuf[len(inbuf)-int(inbytes)]))
outptr := (*C.char)(unsafe.Pointer(&outbuf[len(outbuf)-int(outbytes)]))
+ log.Tracef("Calling C function \"call_iconv()\"")
_, err := C.call_iconv(cd, inptr, &inbytes, outptr, &outbytes)
if err == nil || err.(syscall.Errno) != syscall.E2BIG {
break
@@ -75,6 +81,7 @@ func decode(encoder string, inbuf []byte) (outbuf []byte) {
outbuf = tmp
}
outbuf = outbuf[:len(outbuf)-int(outbytes)]
+ log.Tracef("Calling C function \"iconv_close()\"")
C.iconv_close(cd)
if len(outbuf) > 3 && 0xef == outbuf[0] && 0xbb == outbuf[1] && 0xbf == outbuf[2] {
outbuf = outbuf[3:]
diff --git a/src/go/plugins/vfs/fs/fs.go b/src/go/plugins/vfs/fs/fs.go
index be9fd8f8fcf..2da293d6243 100644
--- a/src/go/plugins/vfs/fs/fs.go
+++ b/src/go/plugins/vfs/fs/fs.go
@@ -125,7 +125,6 @@ func (p *Plugin) export(params []string, getStats func(string) (*FsStats, error)
}
fsCaller := p.newFSCaller(getStats, 1)
- defer fsCaller.close()
var stats *FsStats
if stats, err = fsCaller.run(params[0]); err != nil {
diff --git a/src/go/plugins/vfs/fs/fs_nix.go b/src/go/plugins/vfs/fs/fs_nix.go
index 5f26e966dd2..4a4666bf981 100644
--- a/src/go/plugins/vfs/fs/fs_nix.go
+++ b/src/go/plugins/vfs/fs/fs_nix.go
@@ -60,9 +60,6 @@ func (p *Plugin) getFsInfoStats() (data []*FsInfoNew, err error) {
}
}
- fsStatCaller.close()
- fsInodeCaller.close()
-
allData, err = p.getFsInfo()
if err != nil {
return nil, err
diff --git a/src/go/plugins/vfs/fs/fscaller.go b/src/go/plugins/vfs/fs/fscaller.go
index 08d3ba8105f..f71561718e4 100644
--- a/src/go/plugins/vfs/fs/fscaller.go
+++ b/src/go/plugins/vfs/fs/fscaller.go
@@ -27,7 +27,7 @@ import (
const timeout = 1
-var stuckMounts map[string]bool
+var stuckMounts map[string]int
var stuckMux sync.Mutex
type fsCaller struct {
@@ -51,24 +51,17 @@ func (f *fsCaller) run(path string) (stat *FsStats, err error) {
return nil, err
case <-time.After(timeout * time.Second):
stuckMux.Lock()
- stuckMounts[path] = true
+ stuckMounts[path]++
stuckMux.Unlock()
-
return nil, fmt.Errorf("operation on mount '%s' timed out", path)
}
}
func (f *fsCaller) execute(path string) {
stats, err := f.fsFunc(path)
-
- if isStuck(path) {
- f.p.Debugf("mount '%s' has become available", path)
stuckMux.Lock()
- stuckMounts[path] = false
+ stuckMounts[path] = 0
stuckMux.Unlock()
- return
- }
-
if err != nil {
f.errChan <- err
return
@@ -80,16 +73,8 @@ func (f *fsCaller) execute(path string) {
func isStuck(path string) bool {
stuckMux.Lock()
defer stuckMux.Unlock()
- if stuckMounts[path] {
- return true
- }
-
- return false
-}
-func (fc *fsCaller) close() {
- close(fc.errChan)
- close(fc.outChan)
+ return stuckMounts[path] > 0
}
func (p *Plugin) newFSCaller(fsFunc func(path string) (stats *FsStats, err error), fsLen int) *fsCaller {
@@ -103,5 +88,5 @@ func (p *Plugin) newFSCaller(fsFunc func(path string) (stats *FsStats, err error
}
func init() {
- stuckMounts = make(map[string]bool)
+ stuckMounts = make(map[string]int)
}
diff --git a/src/libs/zbxalgo/prediction.c b/src/libs/zbxalgo/prediction.c
index f1bf7383414..db2ad6f2d1c 100644
--- a/src/libs/zbxalgo/prediction.c
+++ b/src/libs/zbxalgo/prediction.c
@@ -1150,7 +1150,7 @@ out:
double zbx_timeleft(double *t, double *x, int n, double now, double threshold, zbx_fit_t fit, unsigned k)
{
zbx_matrix_t *coefficients = NULL;
- double current, result;
+ double current, result = -1.0;
int res;
if (1 == n)
diff --git a/src/libs/zbxcommon/misc.c b/src/libs/zbxcommon/misc.c
index 7dbaf053d90..d833ad5a23d 100644
--- a/src/libs/zbxcommon/misc.c
+++ b/src/libs/zbxcommon/misc.c
@@ -2785,7 +2785,7 @@ int _wis_uint(const wchar_t *wide_string)
int is_uint_n_range(const char *str, size_t n, void *value, size_t size, zbx_uint64_t min, zbx_uint64_t max)
{
zbx_uint64_t value_uint64 = 0, c;
- const zbx_uint64_t max_uint64 = ~(zbx_uint64_t)__UINT64_C(0);
+ const zbx_uint64_t max_uint64 = ~__UINT64_C(0);
if ('\0' == *str || 0 == n || sizeof(zbx_uint64_t) < size || (0 == size && NULL != value))
return FAIL;
@@ -2843,7 +2843,7 @@ int is_uint_n_range(const char *str, size_t n, void *value, size_t size, zbx_uin
int is_hex_n_range(const char *str, size_t n, void *value, size_t size, zbx_uint64_t min, zbx_uint64_t max)
{
zbx_uint64_t value_uint64 = 0, c;
- const zbx_uint64_t max_uint64 = ~(zbx_uint64_t)__UINT64_C(0);
+ const zbx_uint64_t max_uint64 = ~__UINT64_C(0);
int len = 0;
if ('\0' == *str || 0 == n || sizeof(zbx_uint64_t) < size || (0 == size && NULL != value))
diff --git a/src/libs/zbxcommon/str.c b/src/libs/zbxcommon/str.c
index e3e8b032136..44c85e9e1b8 100644
--- a/src/libs/zbxcommon/str.c
+++ b/src/libs/zbxcommon/str.c
@@ -29,7 +29,7 @@
static const char copyright_message[] =
"Copyright (C) 2022 Zabbix SIA\n"
- "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.\n"
+ "License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>.\n"
"This is free software: you are free to change and redistribute it according to\n"
"the license. There is NO WARRANTY, to the extent permitted by law.";
diff --git a/src/libs/zbxdb/db.c b/src/libs/zbxdb/db.c
index 9dea3c999b5..0c4697a0847 100644
--- a/src/libs/zbxdb/db.c
+++ b/src/libs/zbxdb/db.c
@@ -103,7 +103,7 @@ static ub4 OCI_DBserver_status(void);
#elif defined(HAVE_POSTGRESQL)
static PGconn *conn = NULL;
static unsigned int ZBX_PG_BYTEAOID = 0;
-static int ZBX_TSDB_VERSION = -1;
+int ZBX_TSDB_VERSION = -1;
static zbx_uint32_t ZBX_PG_SVERSION = ZBX_DBVERSION_UNDEFINED;
char ZBX_PG_ESCAPE_BACKSLASH = 1;
static int ZBX_TIMESCALE_COMPRESSION_AVAILABLE = OFF;
@@ -2545,6 +2545,7 @@ void zbx_db_version_json_create(struct zbx_json *json, struct zbx_db_version_inf
}
zbx_json_addint64(json, "flag", info->flag);
+
zbx_json_close(json);
if (NULL != info->extension)
@@ -2576,6 +2577,9 @@ void zbx_db_version_json_create(struct zbx_json *json, struct zbx_db_version_inf
{
zbx_json_addstring(json, "compression_availability", "false", ZBX_JSON_TYPE_INT);
}
+
+ zbx_json_addint64(json, ZBX_TIMESCALE_COMPRESSED_CHUNKS_HISTORY, info->history_compressed_chunks);
+ zbx_json_addint64(json, ZBX_TIMESCALE_COMPRESSED_CHUNKS_TRENDS, info->trends_compressed_chunks);
}
#endif
zbx_json_close(json);
@@ -2724,9 +2728,9 @@ void zbx_dbms_version_info_extract(struct zbx_db_version_info_t *version_info)
zbx_uint32_t major;
zabbix_log(LOG_LEVEL_DEBUG, "In %s()", __func__);
- ZBX_PG_SVERSION = PQserverVersion(conn);
+ ZBX_PG_SVERSION = (zbx_uint32_t)PQserverVersion(conn);
- major = RIGHT2(ZBX_PG_SVERSION/10000);
+ major = ZBX_PG_SVERSION/10000;
version_info->database = "PostgreSQL";
@@ -2737,12 +2741,13 @@ void zbx_dbms_version_info_extract(struct zbx_db_version_info_t *version_info)
if (10 > major)
{
- version_info->friendly_current_version = zbx_dsprintf(NULL, "%d.%d.%d", major,
+ version_info->friendly_current_version = zbx_dsprintf(NULL, "%" PRIu32 ".%d.%d", major,
RIGHT2(ZBX_PG_SVERSION/100), RIGHT2(ZBX_PG_SVERSION));
}
else
{
- version_info->friendly_current_version = zbx_dsprintf(NULL, "%d.%d", major, RIGHT2(ZBX_PG_SVERSION));
+ version_info->friendly_current_version = zbx_dsprintf(NULL, "%" PRIu32 ".%d", major,
+ RIGHT2(ZBX_PG_SVERSION));
}
version_info->friendly_min_version = ZBX_POSTGRESQL_MIN_VERSION_FRIENDLY;
diff --git a/src/libs/zbxdbcache/dbconfig.c b/src/libs/zbxdbcache/dbconfig.c
index 7d137b6f705..02c479a2b7e 100644
--- a/src/libs/zbxdbcache/dbconfig.c
+++ b/src/libs/zbxdbcache/dbconfig.c
@@ -7206,6 +7206,7 @@ int init_configuration_cache(char **error)
config->status = (ZBX_DC_STATUS *)__config_mem_malloc_func(NULL, sizeof(ZBX_DC_STATUS));
config->status->last_update = 0;
+ config->status->sync_ts = 0;
config->availability_diff_ts = 0;
config->sync_ts = 0;
@@ -11311,56 +11312,7 @@ int DCget_item_queue(zbx_vector_ptr_t *queue, int from, int to)
/******************************************************************************
* *
- * Purpose: check that functionids in trigger (recovery) expression *
- * *
- * Parameters: expression - [IN] trigger (recovery) expression *
- * data - [IN] parsed and serialized expression *
- * *
- * Return value: SUCCEED - all functionids correspond to enabled items and *
- * enabled hosts *
- * FAIL - at least one item or host is disabled *
- * *
- ******************************************************************************/
-static int dc_trigger_items_hosts_enabled(const char *expression, const unsigned char *data)
-{
- zbx_uint64_t functionid;
- const ZBX_DC_ITEM *dc_item;
- const ZBX_DC_FUNCTION *dc_function;
- const ZBX_DC_HOST *dc_host;
- int i, ret = FAIL;
- zbx_vector_uint64_t functionids;
-
- zbx_vector_uint64_create(&functionids);
- zbx_get_serialized_expression_functionids(expression, data, &functionids);
-
- for (i = 0; i < functionids.values_num; i++)
- {
- functionid = functionids.values[i];
-
- if (NULL == (dc_function = (ZBX_DC_FUNCTION *)zbx_hashset_search(&config->functions, &functionid)))
- goto out;
-
- if (NULL == (dc_item = (ZBX_DC_ITEM *)zbx_hashset_search(&config->items, &dc_function->itemid)))
- goto out;
-
- if (ITEM_STATUS_ACTIVE != dc_item->status)
- goto out;
-
- if (NULL == (dc_host = (ZBX_DC_HOST *)zbx_hashset_search(&config->hosts, &dc_item->hostid)))
- goto out;
-
- if (HOST_STATUS_MONITORED != dc_host->status)
- goto out;
- }
-
- ret = SUCCEED;
-out:
- zbx_vector_uint64_destroy(&functionids);
-
- return ret;
-}
-
-/******************************************************************************
+ * Function: dc_status_update *
* *
* Purpose: check when status information stored in configuration cache was *
* updated last time and update it if necessary *
@@ -11395,10 +11347,17 @@ static void dc_status_update(void)
ZBX_DC_HOST *dc_host, *dc_proxy_host;
const ZBX_DC_ITEM *dc_item;
const ZBX_DC_TRIGGER *dc_trigger;
+ int reset;
if (0 != config->status->last_update && config->status->last_update + ZBX_STATUS_LIFETIME > time(NULL))
return;
+
+ if (config->status->sync_ts != config->sync_ts)
+ reset = SUCCEED;
+ else
+ reset = FAIL;
+
/* reset global counters */
config->status->hosts_monitored = 0;
@@ -11409,17 +11368,22 @@ static void dc_status_update(void)
config->status->triggers_enabled_ok = 0;
config->status->triggers_enabled_problem = 0;
config->status->triggers_disabled = 0;
- config->status->required_performance = 0.0;
- /* loop over proxies to reset per-proxy host and required performance counters */
+ if (SUCCEED == reset)
+ config->status->required_performance = 0.0;
- zbx_hashset_iter_reset(&config->proxies, &iter);
+ /* loop over proxies to reset per-proxy host and required performance counters */
- while (NULL != (dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_iter_next(&iter)))
+ if (SUCCEED == reset)
{
- dc_proxy->hosts_monitored = 0;
- dc_proxy->hosts_not_monitored = 0;
- dc_proxy->required_performance = 0.0;
+ zbx_hashset_iter_reset(&config->proxies, &iter);
+
+ while (NULL != (dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_iter_next(&iter)))
+ {
+ dc_proxy->hosts_monitored = 0;
+ dc_proxy->hosts_not_monitored = 0;
+ dc_proxy->required_performance = 0.0;
+ }
}
/* loop over hosts */
@@ -11441,17 +11405,27 @@ static void dc_status_update(void)
config->status->hosts_monitored++;
if (0 == dc_host->proxy_hostid)
break;
- if (NULL == (dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_search(&config->proxies, &dc_host->proxy_hostid)))
- break;
- dc_proxy->hosts_monitored++;
+
+ if (SUCCEED == reset)
+ {
+ if (NULL == (dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_search(&config->proxies,
+ &dc_host->proxy_hostid)))
+ break;
+ dc_proxy->hosts_monitored++;
+ }
break;
case HOST_STATUS_NOT_MONITORED:
config->status->hosts_not_monitored++;
if (0 == dc_host->proxy_hostid)
break;
- if (NULL == (dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_search(&config->proxies, &dc_host->proxy_hostid)))
- break;
- dc_proxy->hosts_not_monitored++;
+
+ if (SUCCEED == reset)
+ {
+ if (NULL == (dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_search(&config->proxies,
+ &dc_host->proxy_hostid)))
+ break;
+ dc_proxy->hosts_not_monitored++;
+ }
break;
}
}
@@ -11473,7 +11447,9 @@ static void dc_status_update(void)
if (0 != dc_host->proxy_hostid)
{
- dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_search(&config->proxies, &dc_host->proxy_hostid);
+ if (SUCCEED == reset)
+ dc_proxy = (ZBX_DC_PROXY *)zbx_hashset_search(&config->proxies, &dc_host->proxy_hostid);
+
dc_proxy_host = (ZBX_DC_HOST *)zbx_hashset_search(&config->hosts, &dc_host->proxy_hostid);
}
@@ -11482,15 +11458,18 @@ static void dc_status_update(void)
case ITEM_STATUS_ACTIVE:
if (HOST_STATUS_MONITORED == dc_host->status)
{
- int delay;
-
- if (SUCCEED == zbx_interval_preproc(dc_item->delay, &delay, NULL, NULL) &&
- 0 != delay)
+ if (SUCCEED == reset)
{
- config->status->required_performance += 1.0 / delay;
+ int delay;
- if (NULL != dc_proxy)
- dc_proxy->required_performance += 1.0 / delay;
+ if (SUCCEED == zbx_interval_preproc(dc_item->delay, &delay,
+ NULL, NULL) && 0 != delay)
+ {
+ config->status->required_performance += 1.0 / delay;
+
+ if (NULL != dc_proxy)
+ dc_proxy->required_performance += 1.0 / delay;
+ }
}
switch (dc_item->state)
@@ -11536,11 +11515,7 @@ static void dc_status_update(void)
switch (dc_trigger->status)
{
case TRIGGER_STATUS_ENABLED:
- if (SUCCEED == dc_trigger_items_hosts_enabled(dc_trigger->expression,
- dc_trigger->expression_bin) &&
- (TRIGGER_RECOVERY_MODE_RECOVERY_EXPRESSION != dc_trigger->recovery_mode ||
- SUCCEED == dc_trigger_items_hosts_enabled(dc_trigger->recovery_expression,
- dc_trigger->recovery_expression_bin)))
+ if (TRIGGER_FUNCTIONAL_TRUE == dc_trigger->functional)
{
switch (dc_trigger->value)
{
@@ -11565,6 +11540,7 @@ static void dc_status_update(void)
}
}
+ config->status->sync_ts = config->sync_ts;
config->status->last_update = time(NULL);
#undef ZBX_STATUS_LIFETIME
diff --git a/src/libs/zbxdbcache/dbconfig.h b/src/libs/zbxdbcache/dbconfig.h
index 5c55691bce9..8cbde97224e 100644
--- a/src/libs/zbxdbcache/dbconfig.h
+++ b/src/libs/zbxdbcache/dbconfig.h
@@ -579,6 +579,7 @@ typedef struct
/* disabled then trigger is counted as disabled) */
double required_performance; /* required performance of server (values per second) */
time_t last_update;
+ int sync_ts;
}
ZBX_DC_STATUS;
diff --git a/src/libs/zbxdbhigh/db.c b/src/libs/zbxdbhigh/db.c
index b2501e5c1a6..2f4bb43bdef 100644
--- a/src/libs/zbxdbhigh/db.c
+++ b/src/libs/zbxdbhigh/db.c
@@ -52,6 +52,47 @@ void DBclose(void)
zbx_db_close();
}
+#if defined(HAVE_POSTGRESQL)
+int zbx_tsdb_table_has_compressed_chunks(const char *table_names)
+{
+ DB_RESULT result;
+ int ret;
+
+ if (1 == ZBX_DB_TSDB_V1) {
+ result = DBselect("select null from timescaledb_information.compressed_chunk_stats where hypertable_name in (%s) and "
+ "compression_status='Compressed'", table_names);
+ }
+ else
+ {
+ result = DBselect("select null from timescaledb_information.chunks where hypertable_name in (%s) and "
+ "is_compressed='t'", table_names);
+ }
+
+ if (NULL != DBfetch(result))
+ ret = SUCCEED;
+ else
+ ret = FAIL;
+
+ DBfree_result(result);
+
+ return ret;
+}
+
+void zbx_tsdb_update_dbversion_info(struct zbx_db_version_info_t *db_version_info)
+{
+ const char *history_tables, *trends_tables;
+
+ history_tables = (1 == ZBX_DB_TSDB_V1 ? ZBX_TSDB1_HISTORY_TABLES : ZBX_TSDB2_HISTORY_TABLES);
+ trends_tables = (1 == ZBX_DB_TSDB_V1 ? ZBX_TSDB1_TRENDS_TABLES : ZBX_TSDB2_TRENDS_TABLES);
+
+ db_version_info->history_compressed_chunks = (SUCCEED ==
+ zbx_tsdb_table_has_compressed_chunks(history_tables)) ? 1 : 0;
+
+ db_version_info->trends_compressed_chunks = (SUCCEED ==
+ zbx_tsdb_table_has_compressed_chunks(trends_tables)) ? 1 : 0;
+}
+#endif
+
int zbx_db_validate_config_features(void)
{
int err = 0;
diff --git a/src/libs/zbxdbhigh/graph_linking.c b/src/libs/zbxdbhigh/graph_linking.c
index 3baef66fd36..5f794236fb0 100644
--- a/src/libs/zbxdbhigh/graph_linking.c
+++ b/src/libs/zbxdbhigh/graph_linking.c
@@ -1051,7 +1051,7 @@ static int update_graphs_items_updates(char **sql, size_t *sql_alloc, size_t *sq
d2 = ",";
zbx_audit_graph_update_json_update_gitem_update_drawtype(graphid,
- (int)graph_flags, host_items_entry->gitemid,
+ graph_flags, host_items_entry->gitemid,
host_items_entry->drawtype_orig,
host_items_entry->drawtype_new);
}
@@ -1063,7 +1063,7 @@ static int update_graphs_items_updates(char **sql, size_t *sql_alloc, size_t *sq
d2 = ",";
zbx_audit_graph_update_json_update_gitem_update_sortorder(graphid,
- (int)graph_flags, host_items_entry->gitemid,
+ graph_flags, host_items_entry->gitemid,
host_items_entry->sortorder_orig,
host_items_entry->sortorder_new);
}
@@ -1077,7 +1077,7 @@ static int update_graphs_items_updates(char **sql, size_t *sql_alloc, size_t *sq
zbx_free(color_esc);
d2 = ",";
- zbx_audit_graph_update_json_update_gitem_update_color(graphid, (int)graph_flags,
+ zbx_audit_graph_update_json_update_gitem_update_color(graphid, graph_flags,
host_items_entry->gitemid, host_items_entry->color_orig,
host_items_entry->color_new);
}
@@ -1089,7 +1089,7 @@ static int update_graphs_items_updates(char **sql, size_t *sql_alloc, size_t *sq
d2 = ",";
zbx_audit_graph_update_json_update_gitem_update_yaxisside(graphid,
- (int)graph_flags, host_items_entry->gitemid,
+ graph_flags, host_items_entry->gitemid,
host_items_entry->yaxisside_orig,
host_items_entry->yaxisside_new);
}
@@ -1101,7 +1101,7 @@ static int update_graphs_items_updates(char **sql, size_t *sql_alloc, size_t *sq
d2 = ",";
zbx_audit_graph_update_json_update_gitem_update_calc_fnc(graphid,
- (int)graph_flags, host_items_entry->gitemid,
+ graph_flags, host_items_entry->gitemid,
host_items_entry->calc_fnc_orig,
host_items_entry->calc_fnc_new);
}
@@ -1111,7 +1111,7 @@ static int update_graphs_items_updates(char **sql, size_t *sql_alloc, size_t *sq
zbx_snprintf_alloc(sql, sql_alloc, sql_offset, "%stype=%d", d2,
host_items_entry->type_new);
- zbx_audit_graph_update_json_update_gitem_update_type(graphid, (int)graph_flags,
+ zbx_audit_graph_update_json_update_gitem_update_type(graphid, graph_flags,
host_items_entry->gitemid, host_items_entry->type_orig,
host_items_entry->type_new);
}
diff --git a/src/libs/zbxdbhigh/proxy.c b/src/libs/zbxdbhigh/proxy.c
index dc498156cd7..c33c29b668f 100644
--- a/src/libs/zbxdbhigh/proxy.c
+++ b/src/libs/zbxdbhigh/proxy.c
@@ -4287,7 +4287,6 @@ static int process_autoregistration_contents(struct zbx_json_parse *jp_data, zbx
unsigned short port;
size_t host_metadata_alloc = 1; /* for at least NUL-terminating string */
zbx_vector_ptr_t autoreg_hosts;
- zbx_conn_flags_t flags = ZBX_CONN_DEFAULT;
zabbix_log(LOG_LEVEL_DEBUG, "In %s()", __func__);
@@ -4296,7 +4295,8 @@ static int process_autoregistration_contents(struct zbx_json_parse *jp_data, zbx
while (NULL != (p = zbx_json_next(jp_data, p)))
{
- unsigned int connection_type;
+ unsigned int connection_type;
+ zbx_conn_flags_t flags = ZBX_CONN_DEFAULT;
if (FAIL == (ret = zbx_json_brackets_open(p, &jp_row)))
break;
diff --git a/src/libs/zbxdbhigh/template_item.c b/src/libs/zbxdbhigh/template_item.c
index 17fd49ceecf..fe26be81010 100644
--- a/src/libs/zbxdbhigh/template_item.c
+++ b/src/libs/zbxdbhigh/template_item.c
@@ -1677,7 +1677,7 @@ static void copy_template_item_tags(const zbx_vector_ptr_t *items)
for (j = 0; j < item->item_tags.values_num; j++)
{
- tag = (zbx_db_tag_t *)item->item_tags.values[j];
+ tag = item->item_tags.values[j];
if (0 != (tag->flags & ZBX_FLAG_DB_TAG_REMOVE))
{
@@ -1716,7 +1716,8 @@ static void copy_template_item_tags(const zbx_vector_ptr_t *items)
{
const char *d = "";
- tag = (zbx_db_tag_t *)item->item_tags.values[j];
+ tag = item->item_tags.values[j];
+
if (0 == tag->tagid)
{
zbx_db_insert_add_values(&db_insert, new_tagid, item->itemid, tag->tag, tag->value);
@@ -1829,7 +1830,7 @@ static void copy_template_item_script_params(const zbx_vector_ptr_t *items)
for (j = 0; j < item->item_params.values_num; j++)
{
- param = (zbx_item_param_t *)item->item_params.values[j];
+ param = item->item_params.values[j];
if (0 != (param->flags & ZBX_FLAG_ITEM_PARAM_DELETE))
{
@@ -1869,7 +1870,8 @@ static void copy_template_item_script_params(const zbx_vector_ptr_t *items)
{
const char *d = "";
- param = (zbx_item_param_t *)item->item_params.values[j];
+ param = item->item_params.values[j];
+
if (0 == param->item_parameterid)
{
zbx_db_insert_add_values(&db_insert, item_parameter_id, item->itemid, param->name,
diff --git a/src/libs/zbxdbhigh/trigger_linking.c b/src/libs/zbxdbhigh/trigger_linking.c
index 1b90d5a2fe8..4cd1b3fbd37 100644
--- a/src/libs/zbxdbhigh/trigger_linking.c
+++ b/src/libs/zbxdbhigh/trigger_linking.c
@@ -1210,8 +1210,8 @@ static int get_funcs_for_insert(zbx_uint64_t hostid, zbx_vector_uint64_t *insert
zbx_vector_uint64_append(&(found->itemids), itemid);
zbx_vector_str_append(&(found->functionids), zbx_strdup(NULL, row[1]));
zbx_vector_str_append(&(found->itemkeys), zbx_strdup(NULL, row[4]));
- zbx_vector_str_append(&(found->names), DBdyn_escape_string(row[2]));
- zbx_vector_str_append(&(found->parameters), DBdyn_escape_string(row[3]));
+ zbx_vector_str_append(&(found->names), zbx_strdup(NULL, row[2]));
+ zbx_vector_str_append(&(found->parameters), zbx_strdup(NULL, row[3]));
}
else
{
@@ -1226,8 +1226,8 @@ static int get_funcs_for_insert(zbx_uint64_t hostid, zbx_vector_uint64_t *insert
zbx_vector_uint64_append(&(local_temp_t.itemids), itemid);
zbx_vector_str_append(&(local_temp_t.functionids), zbx_strdup(NULL, row[1]));
zbx_vector_str_append(&(local_temp_t.itemkeys), zbx_strdup(NULL, row[4]));
- zbx_vector_str_append(&(local_temp_t.names), DBdyn_escape_string(row[2]));
- zbx_vector_str_append(&(local_temp_t.parameters), DBdyn_escape_string(row[3]));
+ zbx_vector_str_append(&(local_temp_t.names),zbx_strdup(NULL, row[2]));
+ zbx_vector_str_append(&(local_temp_t.parameters), zbx_strdup(NULL, row[3]));
local_temp_t.triggerid = temp_t.triggerid;
@@ -1281,7 +1281,7 @@ static int execute_triggers_inserts(zbx_vector_trigger_copies_insert_t *trigger_
zbx_db_insert_add_values(&db_insert, triggerid, trigger_copy_template->description,
(int)trigger_copy_template->priority, (int)trigger_copy_template->status,
trigger_copy_template->comments, trigger_copy_template->url,
- (int)trigger_copy_template->type, (int)TRIGGER_VALUE_OK, (int)TRIGGER_STATE_NORMAL,
+ (int)trigger_copy_template->type, TRIGGER_VALUE_OK, TRIGGER_STATE_NORMAL,
trigger_copy_template->templateid, (int)trigger_copy_template->flags,
(int)trigger_copy_template->recovery_mode, (int)trigger_copy_template->correlation_mode,
trigger_copy_template->correlation_tag, (int)trigger_copy_template->manual_close,
diff --git a/src/libs/zbxdbupgrade/dbupgrade_5050.c b/src/libs/zbxdbupgrade/dbupgrade_5050.c
index 901b626cc7a..5ca654ac9bd 100644
--- a/src/libs/zbxdbupgrade/dbupgrade_5050.c
+++ b/src/libs/zbxdbupgrade/dbupgrade_5050.c
@@ -1568,6 +1568,9 @@ static void services_times_convert_downtime(zbx_vector_services_times_t *service
{
services_times_t *service_downtime = &services_downtimes.values[i];
+ if (service_downtime->from > service_downtime->to)
+ continue;
+
for (j = 0; j < services_times->values_num; j++)
{
services_times_t *service_time = &services_times->values[j];
@@ -1589,6 +1592,7 @@ static void services_times_convert_downtime(zbx_vector_services_times_t *service
service_time_new.note = zbx_strdup(NULL, "");
zbx_vector_services_times_append(services_times, service_time_new);
+ service_time = &services_times->values[j];
}
service_time->to = service_downtime->from;
diff --git a/src/libs/zbxdbupgrade/dbupgrade_6000.c b/src/libs/zbxdbupgrade/dbupgrade_6000.c
index d7336482fcb..98cf8c848d3 100644
--- a/src/libs/zbxdbupgrade/dbupgrade_6000.c
+++ b/src/libs/zbxdbupgrade/dbupgrade_6000.c
@@ -237,6 +237,13 @@ static int DBpatch_6000006(void)
#undef HTTPSTEP_ITEM_TYPE_LASTSTEP
#undef HTTPSTEP_ITEM_TYPE_LASTERROR
+static int DBpatch_6000007(void)
+{
+ const ZBX_FIELD field = {"url", "", NULL, NULL, 2048, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};
+
+ return DBmodify_field_type("users", &field, NULL);
+}
+
#endif
DBPATCH_START(6000)
@@ -250,5 +257,6 @@ DBPATCH_ADD(6000003, 0, 0)
DBPATCH_ADD(6000004, 0, 0)
DBPATCH_ADD(6000005, 0, 0)
DBPATCH_ADD(6000006, 0, 0)
+DBPATCH_ADD(6000007, 0, 0)
DBPATCH_END()
diff --git a/src/libs/zbxmemory/memalloc.c b/src/libs/zbxmemory/memalloc.c
index 03a22b2762d..369f42af76f 100644
--- a/src/libs/zbxmemory/memalloc.c
+++ b/src/libs/zbxmemory/memalloc.c
@@ -548,8 +548,8 @@ int zbx_mem_create(zbx_mem_info_t **info, zbx_uint64_t size, const char *descr,
if (!(MEM_MIN_SIZE <= size && size <= MEM_MAX_SIZE))
{
- *error = zbx_dsprintf(*error, "requested size " ZBX_FS_SIZE_T " not within bounds [" ZBX_FS_UI64
- " <= size <= " ZBX_FS_UI64 "]", (zbx_fs_size_t)size, MEM_MIN_SIZE, MEM_MAX_SIZE);
+ *error = zbx_dsprintf(*error, "requested size " ZBX_FS_UI64 " not within bounds [" ZBX_FS_UI64
+ " <= size <= " ZBX_FS_UI64 "]", size, MEM_MIN_SIZE, MEM_MAX_SIZE);
goto out;
}
diff --git a/src/libs/zbxserver/anomalystl.c b/src/libs/zbxserver/anomalystl.c
index 6038caf9fcd..85e596ba691 100644
--- a/src/libs/zbxserver/anomalystl.c
+++ b/src/libs/zbxserver/anomalystl.c
@@ -317,7 +317,7 @@ static void apply_loess_smoothing(const zbx_vector_history_record_t *y, int n, i
{
int nsh;
- nsh = (int)((length + 1) / 2);
+ nsh = (length + 1) / 2;
nleft = 1;
nright = length;
@@ -346,7 +346,7 @@ static void apply_loess_smoothing(const zbx_vector_history_record_t *y, int n, i
{
int nsh;
- nsh = (int)((length + 1) / 2);
+ nsh = (length + 1) / 2;
for (i = 1; i < n + 1; i = i + newnj)
{
@@ -396,7 +396,7 @@ static void apply_loess_smoothing(const zbx_vector_history_record_t *y, int n, i
ys->values[j].value.dbl = ys->values[i].value.dbl + (delta * (j - i));
}
- k = (int)(((n - 1)/newnj) * newnj + 1);
+ k = ((n - 1)/newnj) * newnj + 1;
if (k != n)
{
diff --git a/src/libs/zbxserver/evalfunc.c b/src/libs/zbxserver/evalfunc.c
index 682d396bb08..5b856087a84 100644
--- a/src/libs/zbxserver/evalfunc.c
+++ b/src/libs/zbxserver/evalfunc.c
@@ -2824,7 +2824,7 @@ static int evaluate_TREND(zbx_variant_t *value, DC_ITEM *item, const char *func,
season_processed = (int)((double)season / 3600);
ret = trends_eval_stl(table, item->itemid, start, end, start_detect_period, end_detect_period,
- (int)season_processed, deviations, dev_alg, (int)s_window, &value_dbl, error);
+ season_processed, deviations, dev_alg, (int)s_window, &value_dbl, error);
zbx_free(dev_alg);
}
diff --git a/src/libs/zbxsysinfo/aix/cpu.c b/src/libs/zbxsysinfo/aix/cpu.c
index b1f16c4ec17..b07992d5146 100644
--- a/src/libs/zbxsysinfo/aix/cpu.c
+++ b/src/libs/zbxsysinfo/aix/cpu.c
@@ -210,6 +210,8 @@ int SYSTEM_CPU_SWITCHES(AGENT_REQUEST *request, AGENT_RESULT *result)
#ifdef HAVE_LIBPERFSTAT
perfstat_cpu_total_t ps_cpu_total;
+ ZBX_UNUSED(request);
+
if (-1 == perfstat_cpu_total(NULL, &ps_cpu_total, sizeof(ps_cpu_total), 1))
{
SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));
@@ -220,6 +222,8 @@ int SYSTEM_CPU_SWITCHES(AGENT_REQUEST *request, AGENT_RESULT *result)
return SYSINFO_RET_OK;
#else
+ ZBX_UNUSED(request);
+
SET_MSG_RESULT(result, zbx_strdup(NULL, "Agent was compiled without support for Perfstat API."));
return SYSINFO_RET_FAIL;
#endif
@@ -227,6 +231,7 @@ int SYSTEM_CPU_SWITCHES(AGENT_REQUEST *request, AGENT_RESULT *result)
int SYSTEM_CPU_INTR(AGENT_REQUEST *request, AGENT_RESULT *result)
{
+ ZBX_UNUSED(request);
#ifdef HAVE_LIBPERFSTAT
perfstat_cpu_total_t ps_cpu_total;
diff --git a/src/libs/zbxsysinfo/aix/diskio.c b/src/libs/zbxsysinfo/aix/diskio.c
index 1ce81d5e3bb..5bcdd2cc3e8 100644
--- a/src/libs/zbxsysinfo/aix/diskio.c
+++ b/src/libs/zbxsysinfo/aix/diskio.c
@@ -34,6 +34,9 @@ zbx_perfstat_t;
int get_diskstat(const char *devname, zbx_uint64_t *dstat)
{
+ ZBX_UNUSED(devname);
+ ZBX_UNUSED(dstat);
+
return FAIL;
}
diff --git a/src/libs/zbxsysinfo/aix/diskspace.c b/src/libs/zbxsysinfo/aix/diskspace.c
index 662c7eed38e..be9c11a4c8a 100644
--- a/src/libs/zbxsysinfo/aix/diskspace.c
+++ b/src/libs/zbxsysinfo/aix/diskspace.c
@@ -236,6 +236,8 @@ int VFS_FS_DISCOVERY(AGENT_REQUEST *request, AGENT_RESULT *result)
struct vmount *vms = NULL, *vm;
struct zbx_json j;
+ ZBX_UNUSED(request);
+
/* check how many bytes to allocate for the mounted filesystems */
if (-1 == (rc = mntctl(MCTL_QUERY, sizeof(sz), (char *)&sz)))
{
@@ -296,6 +298,8 @@ static int vfs_fs_get(AGENT_REQUEST *request, AGENT_RESULT *result)
zbx_mpoint_t *mntpoint;
char *mpoint;
+ ZBX_UNUSED(request);
+
/* check how many bytes to allocate for the mounted filesystems */
if (-1 == (rc = mntctl(MCTL_QUERY, sizeof(sz), (char *)&sz)))
{
@@ -410,5 +414,4 @@ out:
int VFS_FS_GET(AGENT_REQUEST *request, AGENT_RESULT *result)
{
return zbx_execute_threaded_metric(vfs_fs_get, request, result);
-
}
diff --git a/src/libs/zbxsysinfo/aix/net.c b/src/libs/zbxsysinfo/aix/net.c
index 1956bb71d07..0d626238aa6 100644
--- a/src/libs/zbxsysinfo/aix/net.c
+++ b/src/libs/zbxsysinfo/aix/net.c
@@ -208,6 +208,8 @@ int NET_IF_DISCOVERY(AGENT_REQUEST *request, AGENT_RESULT *result)
perfstat_netinterface_t *ps_netif = NULL;
struct zbx_json j;
+ ZBX_UNUSED(request);
+
/* check how many perfstat_netinterface_t structures are available */
if (-1 == (rc = perfstat_netinterface(NULL, NULL, sizeof(perfstat_netinterface_t), 0)))
{
@@ -251,6 +253,8 @@ end:
return ret;
#else
+ ZBX_UNUSED(request);
+
SET_MSG_RESULT(result, zbx_strdup(NULL, "Agent was compiled without support for Perfstat API."));
return SYSINFO_RET_FAIL;
#endif
diff --git a/src/libs/zbxsysinfo/aix/proc.c b/src/libs/zbxsysinfo/aix/proc.c
index 3153f2bb7e2..90eeb3a1789 100644
--- a/src/libs/zbxsysinfo/aix/proc.c
+++ b/src/libs/zbxsysinfo/aix/proc.c
@@ -41,8 +41,8 @@ static int check_procstate(struct procentry64 *procentry, int zbx_proc_stat)
static int check_procargs(struct procentry64 *procentry, const char *proccomm)
{
- int i;
- char procargs[MAX_BUFFER_LEN];
+ unsigned int i;
+ char procargs[MAX_BUFFER_LEN];
if (0 != getargs(procentry, (int)sizeof(*procentry), procargs, (int)sizeof(procargs)))
return FAIL;
diff --git a/src/libs/zbxsysinfo/aix/software.c b/src/libs/zbxsysinfo/aix/software.c
index 15bb2ec3c36..1f7979c3873 100644
--- a/src/libs/zbxsysinfo/aix/software.c
+++ b/src/libs/zbxsysinfo/aix/software.c
@@ -28,6 +28,8 @@ int SYSTEM_SW_ARCH(AGENT_REQUEST *request, AGENT_RESULT *result)
{
struct utsname name;
+ ZBX_UNUSED(request);
+
if (-1 == uname(&name))
{
SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));
diff --git a/src/libs/zbxsysinfo/aix/system.c b/src/libs/zbxsysinfo/aix/system.c
index ba0cdfca952..2b92fe680bc 100644
--- a/src/libs/zbxsysinfo/aix/system.c
+++ b/src/libs/zbxsysinfo/aix/system.c
@@ -28,6 +28,8 @@ int SYSTEM_UNAME(AGENT_REQUEST *request, AGENT_RESULT *result)
{
struct utsname name;
+ ZBX_UNUSED(request);
+
if (-1 == uname(&name))
{
SET_MSG_RESULT(result, zbx_dsprintf(NULL, "Cannot obtain system information: %s", zbx_strerror(errno)));
diff --git a/src/libs/zbxsysinfo/aix/uptime.c b/src/libs/zbxsysinfo/aix/uptime.c
index 9808d8e7988..cbdb7202f7e 100644
--- a/src/libs/zbxsysinfo/aix/uptime.c
+++ b/src/libs/zbxsysinfo/aix/uptime.c
@@ -28,6 +28,8 @@ int SYSTEM_UPTIME(AGENT_REQUEST *request, AGENT_RESULT *result)
#if defined(HAVE_LIBPERFSTAT)
perfstat_cpu_total_t ps_cpu_total;
+ ZBX_UNUSED(request);
+
if (0 >= hertz)
{
hertz = sysconf(_SC_CLK_TCK);
@@ -58,6 +60,8 @@ int SYSTEM_UPTIME(AGENT_REQUEST *request, AGENT_RESULT *result)
return SYSINFO_RET_OK;
#else
+ ZBX_UNUSED(request);
+
SET_MSG_RESULT(result, zbx_strdup(NULL, "Agent was compiled without support for Perfstat API."));
return SYSINFO_RET_FAIL;
#endif
diff --git a/src/libs/zbxsysinfo/freebsd/proc.c b/src/libs/zbxsysinfo/freebsd/proc.c
index a1513f57880..81fbedc8e4b 100644
--- a/src/libs/zbxsysinfo/freebsd/proc.c
+++ b/src/libs/zbxsysinfo/freebsd/proc.c
@@ -56,18 +56,25 @@
# define ZBX_PROC_MASK P_INMEM
#endif
+#define ARGV_START_SIZE 64
static char *get_commandline(struct kinfo_proc *proc)
{
int mib[4], i;
size_t sz;
static char *args = NULL;
+#if (__FreeBSD_version >= 802510)
static int args_alloc = 0;
+#else
+ int argv_max, err = -1;
+ static int args_alloc = ARGV_START_SIZE;
+#endif
mib[0] = CTL_KERN;
mib[1] = KERN_PROC;
mib[2] = KERN_PROC_ARGS;
mib[3] = proc->ZBX_PROC_PID;
+#if (__FreeBSD_version >= 802510)
if (-1 == sysctl(mib, 4, NULL, &sz, NULL, 0))
return NULL;
@@ -84,16 +91,50 @@ static char *get_commandline(struct kinfo_proc *proc)
if (-1 == sysctl(mib, 4, args, &sz, NULL, 0))
return NULL;
+#else
+ /*
+ * Before FreeBSD 8.3 sysctl() API for kern.proc.args didn't follow the regular convention
+ * that a user can query the needed size for results by passing in a NULL old pointer
+ * and a valid oldsize, given that we have to estimate the required output buffer size manually:
+ *
+ * https://github.com/freebsd/freebsd-src/commit/9f688f2ce3c01f30b0c98d17c6ce057660819c8c
+ */
+
+ if (NULL == args)
+ args = zbx_malloc(args, args_alloc);
+
+ if (-1 == (argv_max = sysconf(_SC_ARG_MAX)))
+ return NULL;
+
+ while (0 != err && args_alloc < argv_max)
+ {
+ sz = (size_t)args_alloc;
+ if (-1 == (err = sysctl(mib, 4, args, &sz, NULL, 0)))
+ {
+ if (ENOMEM == errno)
+ {
+ args_alloc *= 2;
+ args = zbx_realloc(args, args_alloc);
+ }
+ else
+ return NULL;
+ }
+ }
+
+ if (-1 == err)
+ return NULL;
+#endif
for (i = 0; i < (int)(sz - 1); i++)
if (args[i] == '\0')
args[i] = ' ';
- if (sz == 0)
+ if (0 == sz)
zbx_strlcpy(args, proc->ZBX_PROC_COMM, args_alloc);
return args;
}
+#undef ARGV_START_SIZE
int PROC_MEM(AGENT_REQUEST *request, AGENT_RESULT *result)
{
diff --git a/src/libs/zbxsysinfo/win32/wmi.cpp b/src/libs/zbxsysinfo/win32/wmi.cpp
index 598a1df2724..ac8225aae27 100644
--- a/src/libs/zbxsysinfo/win32/wmi.cpp
+++ b/src/libs/zbxsysinfo/win32/wmi.cpp
@@ -137,7 +137,6 @@ extern "C" static void get_error_code_text(HRESULT hres, char **error)
zabbix_log(LOG_LEVEL_DEBUG, "GetErrorCodeText() failed with code:" ZBX_FS_I64 " when retrieving error"
" code for " ZBX_FS_I64, sc, hres);
}
- pStatus->Release();
}
else
{
diff --git a/src/libs/zbxwin32/service.c b/src/libs/zbxwin32/service.c
index 3e9949b94a1..ec9e24cdc4f 100644
--- a/src/libs/zbxwin32/service.c
+++ b/src/libs/zbxwin32/service.c
@@ -62,6 +62,19 @@ static VOID WINAPI ServiceCtrlHandler(DWORD ctrlCode)
switch (ctrlCode)
{
case SERVICE_CONTROL_STOP:
+ zabbix_log(LOG_LEVEL_INFORMATION, "Zabbix Agent received stop request.");
+ break;
+ case SERVICE_CONTROL_SHUTDOWN:
+ zabbix_log(LOG_LEVEL_INFORMATION, "Zabbix Agent received shutdown request.");
+ break;
+ default:
+ zabbix_log(LOG_LEVEL_DEBUG, "Zabbix Agent received request:%u.", ctrlCode);
+ break;
+ }
+
+ switch (ctrlCode)
+ {
+ case SERVICE_CONTROL_STOP:
case SERVICE_CONTROL_SHUTDOWN:
serviceStatus.dwCurrentState = SERVICE_STOP_PENDING;
serviceStatus.dwWaitHint = 4000;
diff --git a/src/zabbix_agent/listener.c b/src/zabbix_agent/listener.c
index 93352b698e4..0c46757641a 100644
--- a/src/zabbix_agent/listener.c
+++ b/src/zabbix_agent/listener.c
@@ -126,7 +126,7 @@ ZBX_THREAD_ENTRY(listener_thread, args)
zabbix_log(LOG_LEVEL_INFORMATION, "%s #%d started [%s #%d]", get_program_type_string(program_type),
server_num, get_process_type_string(process_type), process_num);
- memcpy(&s, (zbx_socket_t *)((zbx_thread_args_t *)args)->args, sizeof(zbx_socket_t));
+ memcpy(&s, ((zbx_thread_args_t *)args)->args, sizeof(zbx_socket_t));
zbx_free(args);
diff --git a/src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java b/src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java
index 6064f1c3f7e..d701e55fd61 100644
--- a/src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java
+++ b/src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java
@@ -22,9 +22,9 @@ package com.zabbix.gateway;
class GeneralInformation
{
static final String APPLICATION_NAME = "Zabbix Java Gateway";
- static final String REVISION_DATE = "14 September 2022";
+ static final String REVISION_DATE = "25 October 2022";
static final String REVISION = "{ZABBIX_REVISION}";
- static final String VERSION = "6.0.9rc1";
+ static final String VERSION = "6.0.10rc1";
static void printVersion()
{
diff --git a/src/zabbix_server/alerter/alert_syncer.c b/src/zabbix_server/alerter/alert_syncer.c
index 6dac2822384..a4a2f1f0abf 100644
--- a/src/zabbix_server/alerter/alert_syncer.c
+++ b/src/zabbix_server/alerter/alert_syncer.c
@@ -624,7 +624,7 @@ static void am_db_validate_tags_for_update(zbx_vector_events_tags_t *update_even
for (j = 0; j < local_event_tags->tags.values_num; j++)
{
- tag = (zbx_tag_t *)(local_event_tags->tags).values[j];
+ tag = local_event_tags->tags.values[j];
zbx_db_insert_add_values(db_event, __UINT64_C(0), local_event_tags->eventid, tag->tag,
tag->value);
diff --git a/src/zabbix_server/housekeeper/housekeeper.c b/src/zabbix_server/housekeeper/housekeeper.c
index f76be50ae06..2cf9a9e87b5 100644
--- a/src/zabbix_server/housekeeper/housekeeper.c
+++ b/src/zabbix_server/housekeeper/housekeeper.c
@@ -31,6 +31,11 @@
extern ZBX_THREAD_LOCAL unsigned char process_type;
extern unsigned char program_type;
extern ZBX_THREAD_LOCAL int server_num, process_num;
+extern struct zbx_db_version_info_t db_version_info;
+
+#if defined(HAVE_POSTGRESQL)
+extern int ZBX_TSDB_VERSION;
+#endif
static int hk_period;
@@ -563,6 +568,22 @@ out:
#endif
}
+#if defined(HAVE_POSTGRESQL)
+static void hk_update_dbversion_status(void)
+{
+ struct zbx_json db_version_json;
+
+ zbx_json_initarray(&db_version_json, ZBX_JSON_STAT_BUF_LEN);
+
+ zbx_tsdb_update_dbversion_info(&db_version_info);
+
+ zbx_db_version_json_create(&db_version_json, &db_version_info);
+ zbx_db_flush_version_requirements(db_version_json.buffer);
+
+ zbx_json_free(&db_version_json);
+}
+#endif
+
/******************************************************************************
* *
* Purpose: performs housekeeping for history and trends tables *
@@ -570,22 +591,32 @@ out:
* Parameters: now - [IN] the current timestamp *
* *
******************************************************************************/
+
static int housekeeping_history_and_trends(int now)
{
- int deleted = 0, i, rc;
- zbx_hk_history_rule_t *rule;
-
+ int deleted = 0, i, rc;
+ zbx_hk_history_rule_t *rule;
+#if defined(HAVE_POSTGRESQL)
+ int ignore_history = 0, ignore_trends = 0;
+#endif
zabbix_log(LOG_LEVEL_DEBUG, "In %s() now:%d", __func__, now);
/* prepare delete queues for all history housekeeping rules */
hk_history_delete_queue_prepare_all(hk_history_rules, now);
+#if defined(HAVE_POSTGRESQL)
+ if (ZBX_TSDB_VERSION > 0)
+ {
+ hk_update_dbversion_status();
+ }
+#endif
+
/* Loop through the history rules. Each rule is a history table (such as history_log, trends_uint, etc) */
/* we need to clear records from */
for (rule = hk_history_rules; NULL != rule->table; rule++)
{
if (ZBX_HK_MODE_DISABLED == *rule->poption_mode)
- continue;
+ goto skip;
/* If partitioning enabled for history and/or trends then drop partitions with expired history. */
/* ZBX_HK_MODE_PARTITION is set during configuration sync based on the following: */
@@ -594,9 +625,43 @@ static int housekeeping_history_and_trends(int now)
if (ZBX_HK_MODE_PARTITION == *rule->poption_mode)
{
hk_drop_partition_for_rule(rule, now);
- continue;
+ goto skip;
}
+#if defined(HAVE_POSTGRESQL)
+ if (ZBX_TSDB_VERSION > 0)
+ {
+ if (0 == strcmp(rule->history, "history"))
+ {
+ if (1 == ignore_history)
+ goto skip;
+
+ if (1 == db_version_info.history_compressed_chunks)
+ {
+ zabbix_log(LOG_LEVEL_WARNING, "Unable to perform housekeeping for history "
+ "tables due to having compressed chunks and disabled item history period override.");
+
+ ignore_history = 1;
+ goto skip;
+ }
+ }
+ else if (0 == strcmp(rule->history, "trends"))
+ {
+ if (1 == ignore_trends)
+ goto skip;
+
+ if (1 == db_version_info.trends_compressed_chunks)
+ {
+ zabbix_log(LOG_LEVEL_WARNING, "Unable to perform housekeeping for trends "
+ "tables due to having compressed chunks and disabled item trends period override.");
+
+ ignore_trends = 1;
+ goto skip;
+ }
+ }
+ }
+#endif
+
/* process delete queue for the housekeeping rule */
zbx_vector_ptr_sort(&rule->delete_queue, hk_item_update_cache_compare);
@@ -611,6 +676,7 @@ static int housekeeping_history_and_trends(int now)
deleted += rc;
}
+skip:
/* clear history rule delete queue so it's ready for the next housekeeping cycle */
hk_history_delete_queue_clear(rule);
}
@@ -1109,6 +1175,25 @@ static int get_housekeeping_period(double time_slept)
return (int)time_slept;
}
+#if defined(HAVE_POSTGRESQL)
+static void hk_tsdb_check_config()
+{
+ if (cfg.hk.history_global == ZBX_HK_OPTION_DISABLED && cfg.hk.history_mode == ZBX_HK_OPTION_ENABLED &&
+ 1 == db_version_info.history_compressed_chunks)
+ {
+ zabbix_log(LOG_LEVEL_WARNING, "Incorrect configuration. Override item history period is disabled, but "
+ "historical data is compressed. Housekeeper may skip deleting this data.");
+ }
+
+ if (cfg.hk.trends_global == ZBX_HK_OPTION_DISABLED && cfg.hk.trends_mode == ZBX_HK_OPTION_ENABLED &&
+ 1 == db_version_info.trends_compressed_chunks)
+ {
+ zabbix_log(LOG_LEVEL_WARNING, "Incorrect configuration. Override item trends period is disabled, but "
+ "trends data is compressed. Housekeeper may skip deleting this data.");
+ }
+}
+#endif
+
ZBX_THREAD_ENTRY(housekeeper_thread, args)
{
int now, d_history_and_trends, d_cleanup, d_events, d_problems, d_sessions, d_services,
@@ -1144,6 +1229,15 @@ ZBX_THREAD_ENTRY(housekeeper_thread, args)
zbx_rtc_subscribe(&rtc, process_type, process_num);
+#if defined(HAVE_POSTGRESQL)
+
+ if (ZBX_TSDB_VERSION > 0)
+ {
+ zbx_config_get(&cfg, ZBX_CONFIG_FLAGS_HOUSEKEEPER);
+ hk_tsdb_check_config();
+ }
+#endif
+
while (ZBX_IS_RUNNING())
{
zbx_uint32_t rtc_cmd;
diff --git a/src/zabbix_server/lld/lld_item.c b/src/zabbix_server/lld/lld_item.c
index f0a9faa7604..3e72e021bf0 100644
--- a/src/zabbix_server/lld/lld_item.c
+++ b/src/zabbix_server/lld/lld_item.c
@@ -3651,7 +3651,7 @@ static int lld_items_param_save(zbx_uint64_t hostid, zbx_vector_ptr_t *items, in
for (j = 0; j < item->item_params.values_num; j++)
{
- item_param = (zbx_item_param_t *)item->item_params.values[j];
+ item_param = item->item_params.values[j];
if (0 != (item_param->flags & ZBX_FLAG_ITEM_PARAM_DELETE))
{
@@ -3712,7 +3712,7 @@ static int lld_items_param_save(zbx_uint64_t hostid, zbx_vector_ptr_t *items, in
{
char delim = ' ';
- item_param = (zbx_item_param_t *)item->item_params.values[j];
+ item_param = item->item_params.values[j];
if (0 == item_param->item_parameterid)
{
diff --git a/src/zabbix_server/server.c b/src/zabbix_server/server.c
index c422d34e2df..2e98573b0d5 100644
--- a/src/zabbix_server/server.c
+++ b/src/zabbix_server/server.c
@@ -174,6 +174,7 @@ static int ha_status = ZBX_NODE_STATUS_UNKNOWN;
static int ha_failover_delay = ZBX_HA_DEFAULT_FAILOVER_DELAY;
zbx_cuid_t ha_sessionid;
+
unsigned char program_type = ZBX_PROGRAM_TYPE_SERVER;
ZBX_THREAD_LOCAL unsigned char process_type = ZBX_PROCESS_TYPE_UNKNOWN;
ZBX_THREAD_LOCAL int process_num = 0;
@@ -347,6 +348,14 @@ char *CONFIG_WEBSERVICE_URL = NULL;
int CONFIG_SERVICEMAN_SYNC_FREQUENCY = 60;
+#if defined(HAVE_POSTGRESQL)
+extern int ZBX_TSDB_VERSION;
+#endif
+
+struct zbx_db_version_info_t db_version_info;
+
+static volatile sig_atomic_t zbx_rtc_command;
+
int get_process_info_by_thread(int local_server_num, unsigned char *local_process_type, int *local_process_num);
int get_process_info_by_thread(int local_server_num, unsigned char *local_process_type, int *local_process_num)
@@ -1088,11 +1097,18 @@ int main(int argc, char **argv)
return daemon_start(CONFIG_ALLOW_ROOT, CONFIG_USER, t.flags);
}
+static void zbx_db_version_info_clear(void)
+{
+ zbx_free(db_version_info.friendly_current_version);
+ zbx_free(db_version_info.extension);
+ zbx_free(db_version_info.ext_friendly_current_version);
+ zbx_free(db_version_info.ext_lic);
+}
+
static void zbx_check_db(void)
{
- struct zbx_db_version_info_t db_version_info;
- struct zbx_json db_version_json;
- int result = SUCCEED;
+ struct zbx_json db_version_json;
+ int result = SUCCEED;
memset(&db_version_info, 0, sizeof(db_version_info));
result = zbx_db_check_version_info(&db_version_info, CONFIG_ALLOW_UNSUPPORTED_DB_VERSIONS);
@@ -1127,6 +1143,11 @@ static void zbx_check_db(void)
zabbix_log(LOG_LEVEL_WARNING, "database could be upgraded to use primary keys in history tables");
}
+#if defined(HAVE_POSTGRESQL)
+ if (ZBX_TSDB_VERSION > 0)
+ zbx_tsdb_update_dbversion_info(&db_version_info);
+#endif
+
zbx_db_version_json_create(&db_version_json, &db_version_info);
if (SUCCEED == result)
@@ -1137,13 +1158,10 @@ static void zbx_check_db(void)
}
DBclose();
- zbx_free(db_version_info.friendly_current_version);
- zbx_free(db_version_info.extension);
- zbx_free(db_version_info.ext_friendly_current_version);
- zbx_free(db_version_info.ext_lic);
- if(SUCCEED != result)
+ if (SUCCEED != result)
{
+ zbx_db_version_info_clear();
exit(EXIT_FAILURE);
}
}
@@ -1495,6 +1513,7 @@ static void server_teardown(zbx_rtc_t *rtc, zbx_socket_t *listen_sock)
}
}
+
int MAIN_ZABBIX_ENTRY(int flags)
{
char *error = NULL;
@@ -1838,6 +1857,8 @@ int MAIN_ZABBIX_ENTRY(int flags)
}
}
+ zbx_db_version_info_clear();
+
if (SUCCEED == ZBX_EXIT_STATUS())
zbx_rtc_shutdown_subs(&rtc);
diff --git a/templates/app/ceph_agent2/README.md b/templates/app/ceph_agent2/README.md
index ffa5d49c794..404720b3e25 100644
--- a/templates/app/ceph_agent2/README.md
+++ b/templates/app/ceph_agent2/README.md
@@ -3,11 +3,11 @@
## Overview
-For Zabbix version: 6.0 and higher
-The template to monitor Ceph cluster by Zabbix that work without any external scripts.
+For Zabbix version: 6.0 and higher.
+The template is designed to monitor Ceph cluster by Zabbix, which works without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
-Template `Ceph by Zabbix agent 2` — collects metrics by polling zabbix-agent2.
+The template `Ceph by Zabbix agent 2` — collects metrics by polling *zabbix-agent2*.
@@ -19,9 +19,9 @@ This template was tested on:
> See [Zabbix template operation](https://www.zabbix.com/documentation/6.0/manual/config/templates_out_of_the_box/zabbix_agent2) for basic instructions.
-1. Setup and configure zabbix-agent2 compiled with the Ceph monitoring plugin.
-2. Set the {$CEPH.CONNSTRING} such as <protocol(host:port)> or named session.
-3. Set the user name and password in host macros ({$CEPH.USER}, {$CEPH.API.KEY}) if you want to override parameters from the Zabbix agent configuration file.
+1. Setup and configure *zabbix-agent2* compiled with the *Ceph* monitoring plugin.
+2. Set the {$CEPH.CONNSTRING}, such as <protocol(host:port)>, or named session.
+3. Set the user name and password in the host macros ({$CEPH.USER}, {$CEPH.API.KEY}) if you want to override the parameters from the Zabbix agent configuration file.
Test availability: `zabbix_get -s ceph-host -k ceph.ping["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]`
@@ -54,67 +54,67 @@ There are no template links in this template.
|Group|Name|Description|Type|Key and additional info|
|-----|----|-----------|----|---------------------|
|Ceph |Ceph: Ping | |ZABBIX_PASSIVE |ceph.ping["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `30m`</p> |
-|Ceph |Ceph: Number of Monitors |<p>Number of Monitors configured in Ceph cluster</p> |DEPENDENT |ceph.num_mon<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_mon`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `30m`</p> |
-|Ceph |Ceph: Overall cluster status |<p>Overall Ceph cluster status, eg 0 - HEALTH_OK, 1 - HEALTH_WARN or 2 - HEALTH_ERR</p> |DEPENDENT |ceph.overall_status<p>**Preprocessing**:</p><p>- JSONPATH: `$.overall_status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Number of Monitors |<p>The number of Monitors configured in a Ceph cluster.</p> |DEPENDENT |ceph.num_mon<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_mon`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `30m`</p> |
+|Ceph |Ceph: Overall cluster status |<p>The overall Ceph cluster status, eg 0 - HEALTH_OK, 1 - HEALTH_WARN or 2 - HEALTH_ERR.</p> |DEPENDENT |ceph.overall_status<p>**Preprocessing**:</p><p>- JSONPATH: `$.overall_status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
|Ceph |Ceph: Minimum Mon release version |<p>min_mon_release_name</p> |DEPENDENT |ceph.min_mon_release_name<p>**Preprocessing**:</p><p>- JSONPATH: `$.min_mon_release_name`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|Ceph |Ceph: Ceph Read bandwidth |<p>Global read Bytes per second</p> |DEPENDENT |ceph.rd_bytes.rate<p>**Preprocessing**:</p><p>- JSONPATH: `$.rd_bytes`</p><p>- CHANGE_PER_SECOND</p> |
+|Ceph |Ceph: Ceph Read bandwidth |<p>The global read bytes per second.</p> |DEPENDENT |ceph.rd_bytes.rate<p>**Preprocessing**:</p><p>- JSONPATH: `$.rd_bytes`</p><p>- CHANGE_PER_SECOND</p> |
|Ceph |Ceph: Ceph Write bandwidth |<p>Global write Bytes per second</p> |DEPENDENT |ceph.wr_bytes.rate<p>**Preprocessing**:</p><p>- JSONPATH: `$.wr_bytes`</p><p>- CHANGE_PER_SECOND</p> |
-|Ceph |Ceph: Ceph Read operations per sec |<p>Global read operations per second</p> |DEPENDENT |ceph.rd_ops.rate<p>**Preprocessing**:</p><p>- JSONPATH: `$.rd_ops`</p> |
-|Ceph |Ceph: Ceph Write operations per sec |<p>Global write operations per second</p> |DEPENDENT |ceph.wr_ops.rate<p>**Preprocessing**:</p><p>- JSONPATH: `$.wr_ops`</p><p>- CHANGE_PER_SECOND</p> |
-|Ceph |Ceph: Total bytes available |<p>Total bytes available in Ceph cluster</p> |DEPENDENT |ceph.total_avail_bytes<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_avail_bytes`</p> |
-|Ceph |Ceph: Total bytes |<p>Total (RAW) capacity of Ceph cluster in bytes</p> |DEPENDENT |ceph.total_bytes<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_bytes`</p> |
-|Ceph |Ceph: Total bytes used |<p>Total bytes used in Ceph cluster</p> |DEPENDENT |ceph.total_used_bytes<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_used_bytes`</p> |
-|Ceph |Ceph: Total number of objects |<p>Total number of objects in Ceph cluster</p> |DEPENDENT |ceph.total_objects<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_objects`</p> |
-|Ceph |Ceph: Number of Placement Groups |<p>Total number of Placement Groups in Ceph cluster</p> |DEPENDENT |ceph.num_pg<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_pg`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|Ceph |Ceph: Number of Placement Groups in Temporary state |<p>Total number of Placement Groups in pg_temp state</p> |DEPENDENT |ceph.num_pg_temp<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_pg_temp`</p> |
-|Ceph |Ceph: Number of Placement Groups in Active state |<p>Total number of Placement Groups in active state</p> |DEPENDENT |ceph.pg_states.active<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.active`</p> |
-|Ceph |Ceph: Number of Placement Groups in Clean state |<p>Total number of Placement Groups in clean state</p> |DEPENDENT |ceph.pg_states.clean<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.clean`</p> |
-|Ceph |Ceph: Number of Placement Groups in Peering state |<p>Total number of Placement Groups in peering state</p> |DEPENDENT |ceph.pg_states.peering<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.peering`</p> |
-|Ceph |Ceph: Number of Placement Groups in Scrubbing state |<p>Total number of Placement Groups in scrubbing state</p> |DEPENDENT |ceph.pg_states.scrubbing<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.scrubbing`</p> |
-|Ceph |Ceph: Number of Placement Groups in Undersized state |<p>Total number of Placement Groups in undersized state</p> |DEPENDENT |ceph.pg_states.undersized<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.undersized`</p> |
-|Ceph |Ceph: Number of Placement Groups in Backfilling state |<p>Total number of Placement Groups in backfilling state</p> |DEPENDENT |ceph.pg_states.backfilling<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.backfilling`</p> |
-|Ceph |Ceph: Number of Placement Groups in degraded state |<p>Total number of Placement Groups in degraded state</p> |DEPENDENT |ceph.pg_states.degraded<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.degraded`</p> |
-|Ceph |Ceph: Number of Placement Groups in inconsistent state |<p>Total number of Placement Groups in inconsistent state</p> |DEPENDENT |ceph.pg_states.inconsistent<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.inconsistent`</p> |
-|Ceph |Ceph: Number of Placement Groups in Unknown state |<p>Total number of Placement Groups in unknown state</p> |DEPENDENT |ceph.pg_states.unknown<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.unknown`</p> |
-|Ceph |Ceph: Number of Placement Groups in remapped state |<p>Total number of Placement Groups in remapped state</p> |DEPENDENT |ceph.pg_states.remapped<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.remapped`</p> |
-|Ceph |Ceph: Number of Placement Groups in recovering state |<p>Total number of Placement Groups in recovering state</p> |DEPENDENT |ceph.pg_states.recovering<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.recovering`</p> |
-|Ceph |Ceph: Number of Placement Groups in backfill_toofull state |<p>Total number of Placement Groups in backfill_toofull state</p> |DEPENDENT |ceph.pg_states.backfill_toofull<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.backfill_toofull`</p> |
-|Ceph |Ceph: Number of Placement Groups in backfill_wait state |<p>Total number of Placement Groups in backfill_wait state</p> |DEPENDENT |ceph.pg_states.backfill_wait<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.backfill_wait`</p> |
-|Ceph |Ceph: Number of Placement Groups in recovery_wait state |<p>Total number of Placement Groups in recovery_wait state</p> |DEPENDENT |ceph.pg_states.recovery_wait<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.recovery_wait`</p> |
-|Ceph |Ceph: Number of Pools |<p>Total number of pools in Ceph cluster</p> |DEPENDENT |ceph.num_pools<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_pools`</p> |
-|Ceph |Ceph: Number of OSDs |<p>Number of known storage daemons in Ceph cluster</p> |DEPENDENT |ceph.num_osd<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_osd`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|Ceph |Ceph: Number of OSDs in state: UP |<p>Total number of online storage daemons in Ceph cluster</p> |DEPENDENT |ceph.num_osd_up<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_osd_up`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|Ceph |Ceph: Number of OSDs in state: IN |<p>Total number of participating storage daemons in Ceph cluster</p> |DEPENDENT |ceph.num_osd_in<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_osd_in`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|Ceph |Ceph: Ceph OSD avg fill |<p>Average fill of OSDs</p> |DEPENDENT |ceph.osd_fill.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_fill.avg`</p> |
-|Ceph |Ceph: Ceph OSD max fill |<p>Percentage fill of maximum filled OSD</p> |DEPENDENT |ceph.osd_fill.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_fill.max`</p> |
-|Ceph |Ceph: Ceph OSD min fill |<p>Percentage fill of minimum filled OSD</p> |DEPENDENT |ceph.osd_fill.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_fill.min`</p> |
-|Ceph |Ceph: Ceph OSD max PGs |<p>Maximum amount of PGs on OSDs</p> |DEPENDENT |ceph.osd_pgs.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_pgs.max`</p> |
-|Ceph |Ceph: Ceph OSD min PGs |<p>Minimum amount of PGs on OSDs</p> |DEPENDENT |ceph.osd_pgs.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_pgs.min`</p> |
-|Ceph |Ceph: Ceph OSD avg PGs |<p>Average amount of PGs on OSDs</p> |DEPENDENT |ceph.osd_pgs.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_pgs.avg`</p> |
-|Ceph |Ceph: Ceph OSD Apply latency Avg |<p>Average apply latency of OSDs</p> |DEPENDENT |ceph.osd_latency_apply.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_apply.avg`</p> |
-|Ceph |Ceph: Ceph OSD Apply latency Max |<p>Maximum apply latency of OSDs</p> |DEPENDENT |ceph.osd_latency_apply.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_apply.max`</p> |
-|Ceph |Ceph: Ceph OSD Apply latency Min |<p>Minimum apply latency of OSDs</p> |DEPENDENT |ceph.osd_latency_apply.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_apply.min`</p> |
-|Ceph |Ceph: Ceph OSD Commit latency Avg |<p>Average commit latency of OSDs</p> |DEPENDENT |ceph.osd_latency_commit.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_commit.avg`</p> |
-|Ceph |Ceph: Ceph OSD Commit latency Max |<p>Maximum commit latency of OSDs</p> |DEPENDENT |ceph.osd_latency_commit.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_commit.max`</p> |
-|Ceph |Ceph: Ceph OSD Commit latency Min |<p>Minimum commit latency of OSDs</p> |DEPENDENT |ceph.osd_latency_commit.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_commit.min`</p> |
-|Ceph |Ceph: Ceph backfill full ratio |<p>Backfill full ratio setting of Ceph cluster as configured on OSDMap</p> |DEPENDENT |ceph.osd_backfillfull_ratio<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_backfillfull_ratio`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|Ceph |Ceph: Ceph full ratio |<p>Full ratio setting of Ceph cluster as configured on OSDMap</p> |DEPENDENT |ceph.osd_full_ratio<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_full_ratio`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|Ceph |Ceph: Ceph nearfull ratio |<p>Near full ratio setting of Ceph cluster as configured on OSDMap</p> |DEPENDENT |ceph.osd_nearfull_ratio<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_nearfull_ratio`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Ceph Read operations per sec |<p>The global read operations per second.</p> |DEPENDENT |ceph.rd_ops.rate<p>**Preprocessing**:</p><p>- JSONPATH: `$.rd_ops`</p><p>- CHANGE_PER_SECOND</p> |
+|Ceph |Ceph: Ceph Write operations per sec |<p>The global write operations per second.</p> |DEPENDENT |ceph.wr_ops.rate<p>**Preprocessing**:</p><p>- JSONPATH: `$.wr_ops`</p><p>- CHANGE_PER_SECOND</p> |
+|Ceph |Ceph: Total bytes available |<p>The total bytes available in a Ceph cluster.</p> |DEPENDENT |ceph.total_avail_bytes<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_avail_bytes`</p> |
+|Ceph |Ceph: Total bytes |<p>The total (RAW) capacity of a Ceph cluster in bytes.</p> |DEPENDENT |ceph.total_bytes<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_bytes`</p> |
+|Ceph |Ceph: Total bytes used |<p>The total bytes used in a Ceph cluster.</p> |DEPENDENT |ceph.total_used_bytes<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_used_bytes`</p> |
+|Ceph |Ceph: Total number of objects |<p>The total number of objects in a Ceph cluster.</p> |DEPENDENT |ceph.total_objects<p>**Preprocessing**:</p><p>- JSONPATH: `$.total_objects`</p> |
+|Ceph |Ceph: Number of Placement Groups |<p>The total number of Placement Groups in a Ceph cluster.</p> |DEPENDENT |ceph.num_pg<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_pg`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Number of Placement Groups in Temporary state |<p>The total number of Placement Groups in a *pg_temp* state</p> |DEPENDENT |ceph.num_pg_temp<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_pg_temp`</p> |
+|Ceph |Ceph: Number of Placement Groups in Active state |<p>The total number of Placement Groups in an active state.</p> |DEPENDENT |ceph.pg_states.active<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.active`</p> |
+|Ceph |Ceph: Number of Placement Groups in Clean state |<p>The total number of Placement Groups in a clean state.</p> |DEPENDENT |ceph.pg_states.clean<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.clean`</p> |
+|Ceph |Ceph: Number of Placement Groups in Peering state |<p>The total number of Placement Groups in a peering state.</p> |DEPENDENT |ceph.pg_states.peering<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.peering`</p> |
+|Ceph |Ceph: Number of Placement Groups in Scrubbing state |<p>The total number of Placement Groups in a scrubbing state.</p> |DEPENDENT |ceph.pg_states.scrubbing<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.scrubbing`</p> |
+|Ceph |Ceph: Number of Placement Groups in Undersized state |<p>The total number of Placement Groups in an undersized state.</p> |DEPENDENT |ceph.pg_states.undersized<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.undersized`</p> |
+|Ceph |Ceph: Number of Placement Groups in Backfilling state |<p>The total number of Placement Groups in a backfill state.</p> |DEPENDENT |ceph.pg_states.backfilling<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.backfilling`</p> |
+|Ceph |Ceph: Number of Placement Groups in degraded state |<p>The total number of Placement Groups in a degraded state.</p> |DEPENDENT |ceph.pg_states.degraded<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.degraded`</p> |
+|Ceph |Ceph: Number of Placement Groups in inconsistent state |<p>The total number of Placement Groups in an inconsistent state.</p> |DEPENDENT |ceph.pg_states.inconsistent<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.inconsistent`</p> |
+|Ceph |Ceph: Number of Placement Groups in Unknown state |<p>The total number of Placement Groups in an unknown state.</p> |DEPENDENT |ceph.pg_states.unknown<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.unknown`</p> |
+|Ceph |Ceph: Number of Placement Groups in remapped state |<p>The total number of Placement Groups in a remapped state.</p> |DEPENDENT |ceph.pg_states.remapped<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.remapped`</p> |
+|Ceph |Ceph: Number of Placement Groups in recovering state |<p>The total number of Placement Groups in a recovering state.</p> |DEPENDENT |ceph.pg_states.recovering<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.recovering`</p> |
+|Ceph |Ceph: Number of Placement Groups in backfill_toofull state |<p>The total number of Placement Groups in a *backfill_toofull state*.</p> |DEPENDENT |ceph.pg_states.backfill_toofull<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.backfill_toofull`</p> |
+|Ceph |Ceph: Number of Placement Groups in backfill_wait state |<p>The total number of Placement Groups in a *backfill_wait* state.</p> |DEPENDENT |ceph.pg_states.backfill_wait<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.backfill_wait`</p> |
+|Ceph |Ceph: Number of Placement Groups in recovery_wait state |<p>The total number of Placement Groups in a *recovery_wait* state.</p> |DEPENDENT |ceph.pg_states.recovery_wait<p>**Preprocessing**:</p><p>- JSONPATH: `$.pg_states.recovery_wait`</p> |
+|Ceph |Ceph: Number of Pools |<p>The total number of pools in a Ceph cluster.</p> |DEPENDENT |ceph.num_pools<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_pools`</p> |
+|Ceph |Ceph: Number of OSDs |<p>The number of the known storage daemons in a Ceph cluster.</p> |DEPENDENT |ceph.num_osd<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_osd`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Number of OSDs in state: UP |<p>The total number of the online storage daemons in a Ceph cluster.</p> |DEPENDENT |ceph.num_osd_up<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_osd_up`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Number of OSDs in state: IN |<p>The total number of the participating storage daemons in a Ceph cluster.</p> |DEPENDENT |ceph.num_osd_in<p>**Preprocessing**:</p><p>- JSONPATH: `$.num_osd_in`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Ceph OSD avg fill |<p>The average fill of OSDs.</p> |DEPENDENT |ceph.osd_fill.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_fill.avg`</p> |
+|Ceph |Ceph: Ceph OSD max fill |<p>The percentage of the most filled OSD.</p> |DEPENDENT |ceph.osd_fill.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_fill.max`</p> |
+|Ceph |Ceph: Ceph OSD min fill |<p>The percentage fill of the minimum filled OSD.</p> |DEPENDENT |ceph.osd_fill.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_fill.min`</p> |
+|Ceph |Ceph: Ceph OSD max PGs |<p>The maximum amount of Placement Groups on OSDs.</p> |DEPENDENT |ceph.osd_pgs.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_pgs.max`</p> |
+|Ceph |Ceph: Ceph OSD min PGs |<p>The minimum amount of Placement Groups on OSDs.</p> |DEPENDENT |ceph.osd_pgs.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_pgs.min`</p> |
+|Ceph |Ceph: Ceph OSD avg PGs |<p>The average amount of Placement Groups on OSDs.</p> |DEPENDENT |ceph.osd_pgs.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_pgs.avg`</p> |
+|Ceph |Ceph: Ceph OSD Apply latency Avg |<p>The average apply latency of OSDs.</p> |DEPENDENT |ceph.osd_latency_apply.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_apply.avg`</p> |
+|Ceph |Ceph: Ceph OSD Apply latency Max |<p>The maximum apply latency of OSDs.</p> |DEPENDENT |ceph.osd_latency_apply.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_apply.max`</p> |
+|Ceph |Ceph: Ceph OSD Apply latency Min |<p>The minimum apply latency of OSDs.</p> |DEPENDENT |ceph.osd_latency_apply.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_apply.min`</p> |
+|Ceph |Ceph: Ceph OSD Commit latency Avg |<p>The average commit latency of OSDs.</p> |DEPENDENT |ceph.osd_latency_commit.avg<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_commit.avg`</p> |
+|Ceph |Ceph: Ceph OSD Commit latency Max |<p>The maximum commit latency of OSDs.</p> |DEPENDENT |ceph.osd_latency_commit.max<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_commit.max`</p> |
+|Ceph |Ceph: Ceph OSD Commit latency Min |<p>The minimum commit latency of OSDs.</p> |DEPENDENT |ceph.osd_latency_commit.min<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_latency_commit.min`</p> |
+|Ceph |Ceph: Ceph backfill full ratio |<p>The backfill full ratio setting of the Ceph cluster as configured on OSDMap.</p> |DEPENDENT |ceph.osd_backfillfull_ratio<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_backfillfull_ratio`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Ceph full ratio |<p>The full ratio setting of the Ceph cluster as configured on OSDMap.</p> |DEPENDENT |ceph.osd_full_ratio<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_full_ratio`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|Ceph |Ceph: Ceph nearfull ratio |<p>The near full ratio setting of the Ceph cluster as configured on OSDMap.</p> |DEPENDENT |ceph.osd_nearfull_ratio<p>**Preprocessing**:</p><p>- JSONPATH: `$.osd_nearfull_ratio`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
|Ceph |Ceph: [osd.{#OSDNAME}] OSD in | |DEPENDENT |ceph.osd[{#OSDNAME},in]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.in`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
|Ceph |Ceph: [osd.{#OSDNAME}] OSD up | |DEPENDENT |ceph.osd[{#OSDNAME},up]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.up`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
|Ceph |Ceph: [osd.{#OSDNAME}] OSD PGs | |DEPENDENT |ceph.osd[{#OSDNAME},num_pgs]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.num_pgs`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
|Ceph |Ceph: [osd.{#OSDNAME}] OSD fill | |DEPENDENT |ceph.osd[{#OSDNAME},fill]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.osd_fill`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
-|Ceph |Ceph: [osd.{#OSDNAME}] OSD latency apply |<p>Time taken to flush an update to disks.</p> |DEPENDENT |ceph.osd[{#OSDNAME},latency_apply]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.osd_latency_apply`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
-|Ceph |Ceph: [osd.{#OSDNAME}] OSD latency commit |<p>Time taken to commit an operation to the journal.</p> |DEPENDENT |ceph.osd[{#OSDNAME},latency_commit]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.osd_latency_commit`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool Used |<p>Total bytes used in pool.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",bytes_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].bytes_used`</p> |
+|Ceph |Ceph: [osd.{#OSDNAME}] OSD latency apply |<p>The time taken to flush an update to disks.</p> |DEPENDENT |ceph.osd[{#OSDNAME},latency_apply]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.osd_latency_apply`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|Ceph |Ceph: [osd.{#OSDNAME}] OSD latency commit |<p>The time taken to commit an operation to the journal.</p> |DEPENDENT |ceph.osd[{#OSDNAME},latency_commit]<p>**Preprocessing**:</p><p>- JSONPATH: `$.osds.{#OSDNAME}.osd_latency_commit`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool Used |<p>The total bytes used in a pool.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",bytes_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].bytes_used`</p> |
|Ceph |Ceph: [{#POOLNAME}] Max available |<p>The maximum available space in the given pool.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",max_avail]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].max_avail`</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool RAW Used |<p>Bytes used in pool including copies made.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",stored_raw]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].stored_raw`</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool Percent Used |<p>Percentage of storage used per pool</p> |DEPENDENT |ceph.pool["{#POOLNAME}",percent_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].percent_used`</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool objects |<p>Number of objects in the pool.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",objects]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].objects`</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool Read bandwidth |<p>Per-pool read Bytes/second</p> |DEPENDENT |ceph.pool["{#POOLNAME}",rd_bytes.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].rd_bytes`</p><p>- CHANGE_PER_SECOND</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool Write bandwidth |<p>Per-pool write Bytes/second</p> |DEPENDENT |ceph.pool["{#POOLNAME}",wr_bytes.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].wr_bytes`</p><p>- CHANGE_PER_SECOND</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool Read operations |<p>Per-pool read operations/second</p> |DEPENDENT |ceph.pool["{#POOLNAME}",rd_ops.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].rd_ops`</p><p>- CHANGE_PER_SECOND</p> |
-|Ceph |Ceph: [{#POOLNAME}] Pool Write operations |<p>Per-pool write operations/second</p> |DEPENDENT |ceph.pool["{#POOLNAME}",wr_ops.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].wr_ops`</p><p>- CHANGE_PER_SECOND</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool RAW Used |<p>Bytes used in pool including the copies made.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",stored_raw]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].stored_raw`</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool Percent Used |<p>The percentage of the storage used per pool.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",percent_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].percent_used`</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool objects |<p>The number of objects in the pool.</p> |DEPENDENT |ceph.pool["{#POOLNAME}",objects]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].objects`</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool Read bandwidth |<p>The read rate per pool (bytes per second).</p> |DEPENDENT |ceph.pool["{#POOLNAME}",rd_bytes.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].rd_bytes`</p><p>- CHANGE_PER_SECOND</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool Write bandwidth |<p>The write rate per pool (bytes per second).</p> |DEPENDENT |ceph.pool["{#POOLNAME}",wr_bytes.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].wr_bytes`</p><p>- CHANGE_PER_SECOND</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool Read operations |<p>The read rate per pool (operations per second).</p> |DEPENDENT |ceph.pool["{#POOLNAME}",rd_ops.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].rd_ops`</p><p>- CHANGE_PER_SECOND</p> |
+|Ceph |Ceph: [{#POOLNAME}] Pool Write operations |<p>The write rate per pool (operations per second).</p> |DEPENDENT |ceph.pool["{#POOLNAME}",wr_ops.rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.pools["{#POOLNAME}"].wr_ops`</p><p>- CHANGE_PER_SECOND</p> |
|Zabbix raw items |Ceph: Get overall cluster status | |ZABBIX_PASSIVE |ceph.status["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"] |
|Zabbix raw items |Ceph: Get OSD stats | |ZABBIX_PASSIVE |ceph.osd.stats["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"] |
|Zabbix raw items |Ceph: Get OSD dump | |ZABBIX_PASSIVE |ceph.osd.dump["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"] |
@@ -124,17 +124,17 @@ There are no template links in this template.
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
-|Ceph: Can not connect to cluster |<p>Connection to Ceph RESTful module is broken (if there is any error presented including AUTH and configuration issues).</p> |`last(/Ceph by Zabbix agent 2/ceph.ping["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"])=0` |AVERAGE | |
+|Ceph: Can not connect to cluster |<p>The connection to the Ceph RESTful module is broken (if there is any error presented including *AUTH* and the configuration issues).</p> |`last(/Ceph by Zabbix agent 2/ceph.ping["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"])=0` |AVERAGE | |
|Ceph: Cluster in ERROR state |<p>-</p> |`last(/Ceph by Zabbix agent 2/ceph.overall_status)=2` |AVERAGE |<p>Manual close: YES</p> |
|Ceph: Cluster in WARNING state |<p>-</p> |`last(/Ceph by Zabbix agent 2/ceph.overall_status)=1`<p>Recovery expression:</p>`last(/Ceph by Zabbix agent 2/ceph.overall_status)=0` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Ceph: Cluster in ERROR state</p> |
-|Ceph: Minimum monitor release version has changed |<p>Ceph version has changed. Ack to close.</p> |`last(/Ceph by Zabbix agent 2/ceph.min_mon_release_name,#1)<>last(/Ceph by Zabbix agent 2/ceph.min_mon_release_name,#2) and length(last(/Ceph by Zabbix agent 2/ceph.min_mon_release_name))>0` |INFO |<p>Manual close: YES</p> |
-|Ceph: OSD osd.{#OSDNAME} is down |<p>OSD osd.{#OSDNAME} is marked "down" in the osdmap.</p><p>The OSD daemon may have been stopped, or peer OSDs may be unable to reach the OSD over the network.</p> |`last(/Ceph by Zabbix agent 2/ceph.osd[{#OSDNAME},up]) = 0` |AVERAGE | |
+|Ceph: Minimum monitor release version has changed |<p>A Ceph version has changed. Perform Ack to close manually.</p> |`last(/Ceph by Zabbix agent 2/ceph.min_mon_release_name,#1)<>last(/Ceph by Zabbix agent 2/ceph.min_mon_release_name,#2) and length(last(/Ceph by Zabbix agent 2/ceph.min_mon_release_name))>0` |INFO |<p>Manual close: YES</p> |
+|Ceph: OSD osd.{#OSDNAME} is down |<p>OSD osd.{#OSDNAME} is marked "down" in the *osdmap*.</p><p>The OSD daemon may have been stopped, or peer OSDs may be unable to reach the OSD over the network.</p> |`last(/Ceph by Zabbix agent 2/ceph.osd[{#OSDNAME},up]) = 0` |AVERAGE | |
|Ceph: OSD osd.{#OSDNAME} is full |<p>-</p> |`min(/Ceph by Zabbix agent 2/ceph.osd[{#OSDNAME},fill],15m) > last(/Ceph by Zabbix agent 2/ceph.osd_full_ratio)*100` |AVERAGE | |
|Ceph: Ceph OSD osd.{#OSDNAME} is near full |<p>-</p> |`min(/Ceph by Zabbix agent 2/ceph.osd[{#OSDNAME},fill],15m) > last(/Ceph by Zabbix agent 2/ceph.osd_nearfull_ratio)*100` |WARNING |<p>**Depends on**:</p><p>- Ceph: OSD osd.{#OSDNAME} is full</p> |
## Feedback
-Please report any issues with the template at https://support.zabbix.com
+Please report any issues with the template at https://support.zabbix.com.
-You can also provide feedback, discuss the template or ask for help with it at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/410059-discussion-thread-for-official-zabbix-template-ceph).
+You can also provide feedback, discuss the template or ask for help at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/410059-discussion-thread-for-official-zabbix-template-ceph).
diff --git a/templates/app/ceph_agent2/template_app_ceph_agent2.yaml b/templates/app/ceph_agent2/template_app_ceph_agent2.yaml
index 75059f8f954..a6e2f9bef2a 100644
--- a/templates/app/ceph_agent2/template_app_ceph_agent2.yaml
+++ b/templates/app/ceph_agent2/template_app_ceph_agent2.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-04-06T19:27:02Z'
+ date: '2022-10-18T21:10:39Z'
groups:
-
uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
@@ -64,7 +64,7 @@ zabbix_export:
name: 'Ceph: Minimum monitor release version has changed'
event_name: 'Ceph: Minimum monitor release version has changed (new version: {ITEM.VALUE})'
priority: INFO
- description: 'Ceph version has changed. Ack to close.'
+ description: 'A Ceph version has changed. Perform Ack to close manually.'
manual_close: 'YES'
tags:
-
@@ -77,7 +77,7 @@ zabbix_export:
key: ceph.num_mon
delay: '0'
history: 7d
- description: 'Number of Monitors configured in Ceph cluster'
+ description: 'The number of Monitors configured in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -100,7 +100,7 @@ zabbix_export:
key: ceph.num_osd
delay: '0'
history: 7d
- description: 'Number of known storage daemons in Ceph cluster'
+ description: 'The number of the known storage daemons in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -126,7 +126,7 @@ zabbix_export:
key: ceph.num_osd_in
delay: '0'
history: 7d
- description: 'Total number of participating storage daemons in Ceph cluster'
+ description: 'The total number of the participating storage daemons in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -152,7 +152,7 @@ zabbix_export:
key: ceph.num_osd_up
delay: '0'
history: 7d
- description: 'Total number of online storage daemons in Ceph cluster'
+ description: 'The total number of the online storage daemons in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -178,7 +178,7 @@ zabbix_export:
key: ceph.num_pg
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in Ceph cluster'
+ description: 'The total number of Placement Groups in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -204,7 +204,7 @@ zabbix_export:
key: ceph.num_pg_temp
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in pg_temp state'
+ description: 'The total number of Placement Groups in a *pg_temp* state'
preprocessing:
-
type: JSONPATH
@@ -223,7 +223,7 @@ zabbix_export:
key: ceph.num_pools
delay: '0'
history: 7d
- description: 'Total number of pools in Ceph cluster'
+ description: 'The total number of pools in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -274,7 +274,7 @@ zabbix_export:
delay: '0'
history: 7d
value_type: FLOAT
- description: 'Backfill full ratio setting of Ceph cluster as configured on OSDMap'
+ description: 'The backfill full ratio setting of the Ceph cluster as configured on OSDMap.'
preprocessing:
-
type: JSONPATH
@@ -299,7 +299,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: '%'
- description: 'Average fill of OSDs'
+ description: 'The average fill of OSDs.'
preprocessing:
-
type: JSONPATH
@@ -323,7 +323,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: '%'
- description: 'Percentage fill of maximum filled OSD'
+ description: 'The percentage of the most filled OSD.'
preprocessing:
-
type: JSONPATH
@@ -347,7 +347,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: '%'
- description: 'Percentage fill of minimum filled OSD'
+ description: 'The percentage fill of the minimum filled OSD.'
preprocessing:
-
type: JSONPATH
@@ -370,7 +370,7 @@ zabbix_export:
delay: '0'
history: 7d
value_type: FLOAT
- description: 'Full ratio setting of Ceph cluster as configured on OSDMap'
+ description: 'The full ratio setting of the Ceph cluster as configured on OSDMap.'
preprocessing:
-
type: JSONPATH
@@ -395,7 +395,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Average apply latency of OSDs'
+ description: 'The average apply latency of OSDs.'
preprocessing:
-
type: JSONPATH
@@ -419,7 +419,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Maximum apply latency of OSDs'
+ description: 'The maximum apply latency of OSDs.'
preprocessing:
-
type: JSONPATH
@@ -443,7 +443,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Minimum apply latency of OSDs'
+ description: 'The minimum apply latency of OSDs.'
preprocessing:
-
type: JSONPATH
@@ -467,7 +467,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Average commit latency of OSDs'
+ description: 'The average commit latency of OSDs.'
preprocessing:
-
type: JSONPATH
@@ -491,7 +491,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Maximum commit latency of OSDs'
+ description: 'The maximum commit latency of OSDs.'
preprocessing:
-
type: JSONPATH
@@ -515,7 +515,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Minimum commit latency of OSDs'
+ description: 'The minimum commit latency of OSDs.'
preprocessing:
-
type: JSONPATH
@@ -538,7 +538,7 @@ zabbix_export:
delay: '0'
history: 7d
value_type: FLOAT
- description: 'Near full ratio setting of Ceph cluster as configured on OSDMap'
+ description: 'The near full ratio setting of the Ceph cluster as configured on OSDMap.'
preprocessing:
-
type: JSONPATH
@@ -562,7 +562,7 @@ zabbix_export:
delay: '0'
history: 7d
value_type: FLOAT
- description: 'Average amount of PGs on OSDs'
+ description: 'The average amount of Placement Groups on OSDs.'
preprocessing:
-
type: JSONPATH
@@ -588,7 +588,7 @@ zabbix_export:
delay: '0'
history: 7d
value_type: FLOAT
- description: 'Maximum amount of PGs on OSDs'
+ description: 'The maximum amount of Placement Groups on OSDs.'
preprocessing:
-
type: JSONPATH
@@ -614,7 +614,7 @@ zabbix_export:
delay: '0'
history: 7d
value_type: FLOAT
- description: 'Minimum amount of PGs on OSDs'
+ description: 'The minimum amount of Placement Groups on OSDs.'
preprocessing:
-
type: JSONPATH
@@ -639,7 +639,7 @@ zabbix_export:
key: ceph.overall_status
delay: '0'
history: 7d
- description: 'Overall Ceph cluster status, eg 0 - HEALTH_OK, 1 - HEALTH_WARN or 2 - HEALTH_ERR'
+ description: 'The overall Ceph cluster status, eg 0 - HEALTH_OK, 1 - HEALTH_WARN or 2 - HEALTH_ERR.'
valuemap:
name: 'Ceph cluster status'
preprocessing:
@@ -691,7 +691,7 @@ zabbix_export:
key: ceph.pg_states.active
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in active state'
+ description: 'The total number of Placement Groups in an active state.'
preprocessing:
-
type: JSONPATH
@@ -710,7 +710,7 @@ zabbix_export:
key: ceph.pg_states.backfilling
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in backfilling state'
+ description: 'The total number of Placement Groups in a backfill state.'
preprocessing:
-
type: JSONPATH
@@ -729,7 +729,7 @@ zabbix_export:
key: ceph.pg_states.backfill_toofull
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in backfill_toofull state'
+ description: 'The total number of Placement Groups in a *backfill_toofull state*.'
preprocessing:
-
type: JSONPATH
@@ -748,7 +748,7 @@ zabbix_export:
key: ceph.pg_states.backfill_wait
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in backfill_wait state'
+ description: 'The total number of Placement Groups in a *backfill_wait* state.'
preprocessing:
-
type: JSONPATH
@@ -767,7 +767,7 @@ zabbix_export:
key: ceph.pg_states.clean
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in clean state'
+ description: 'The total number of Placement Groups in a clean state.'
preprocessing:
-
type: JSONPATH
@@ -786,7 +786,7 @@ zabbix_export:
key: ceph.pg_states.degraded
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in degraded state'
+ description: 'The total number of Placement Groups in a degraded state.'
preprocessing:
-
type: JSONPATH
@@ -805,7 +805,7 @@ zabbix_export:
key: ceph.pg_states.inconsistent
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in inconsistent state'
+ description: 'The total number of Placement Groups in an inconsistent state.'
preprocessing:
-
type: JSONPATH
@@ -824,7 +824,7 @@ zabbix_export:
key: ceph.pg_states.peering
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in peering state'
+ description: 'The total number of Placement Groups in a peering state.'
preprocessing:
-
type: JSONPATH
@@ -843,7 +843,7 @@ zabbix_export:
key: ceph.pg_states.recovering
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in recovering state'
+ description: 'The total number of Placement Groups in a recovering state.'
preprocessing:
-
type: JSONPATH
@@ -862,7 +862,7 @@ zabbix_export:
key: ceph.pg_states.recovery_wait
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in recovery_wait state'
+ description: 'The total number of Placement Groups in a *recovery_wait* state.'
preprocessing:
-
type: JSONPATH
@@ -881,7 +881,7 @@ zabbix_export:
key: ceph.pg_states.remapped
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in remapped state'
+ description: 'The total number of Placement Groups in a remapped state.'
preprocessing:
-
type: JSONPATH
@@ -900,7 +900,7 @@ zabbix_export:
key: ceph.pg_states.scrubbing
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in scrubbing state'
+ description: 'The total number of Placement Groups in a scrubbing state.'
preprocessing:
-
type: JSONPATH
@@ -919,7 +919,7 @@ zabbix_export:
key: ceph.pg_states.undersized
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in undersized state'
+ description: 'The total number of Placement Groups in an undersized state.'
preprocessing:
-
type: JSONPATH
@@ -938,7 +938,7 @@ zabbix_export:
key: ceph.pg_states.unknown
delay: '0'
history: 7d
- description: 'Total number of Placement Groups in unknown state'
+ description: 'The total number of Placement Groups in an unknown state.'
preprocessing:
-
type: JSONPATH
@@ -975,7 +975,7 @@ zabbix_export:
expression: 'last(/Ceph by Zabbix agent 2/ceph.ping["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"])=0'
name: 'Ceph: Can not connect to cluster'
priority: AVERAGE
- description: 'Connection to Ceph RESTful module is broken (if there is any error presented including AUTH and configuration issues).'
+ description: 'The connection to the Ceph RESTful module is broken (if there is any error presented including *AUTH* and the configuration issues).'
tags:
-
tag: scope
@@ -989,7 +989,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: Bps
- description: 'Global read Bytes per second'
+ description: 'The global read bytes per second.'
preprocessing:
-
type: JSONPATH
@@ -1017,12 +1017,16 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ops
- description: 'Global read operations per second'
+ description: 'The global read operations per second.'
preprocessing:
-
type: JSONPATH
parameters:
- $.rd_ops
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
master_item:
key: 'ceph.df.details["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"]'
tags:
@@ -1051,7 +1055,7 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total bytes available in Ceph cluster'
+ description: 'The total bytes available in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -1074,7 +1078,7 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total (RAW) capacity of Ceph cluster in bytes'
+ description: 'The total (RAW) capacity of a Ceph cluster in bytes.'
preprocessing:
-
type: JSONPATH
@@ -1096,7 +1100,7 @@ zabbix_export:
key: ceph.total_objects
delay: '0'
history: 7d
- description: 'Total number of objects in Ceph cluster'
+ description: 'The total number of objects in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -1116,7 +1120,7 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total bytes used in Ceph cluster'
+ description: 'The total bytes used in a Ceph cluster.'
preprocessing:
-
type: JSONPATH
@@ -1168,7 +1172,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ops
- description: 'Global write operations per second'
+ description: 'The global write operations per second.'
preprocessing:
-
type: JSONPATH
@@ -1264,7 +1268,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Time taken to flush an update to disks.'
+ description: 'The time taken to flush an update to disks.'
preprocessing:
-
type: JSONPATH
@@ -1295,7 +1299,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ms
- description: 'Time taken to commit an operation to the journal.'
+ description: 'The time taken to commit an operation to the journal.'
preprocessing:
-
type: JSONPATH
@@ -1383,7 +1387,7 @@ zabbix_export:
name: 'Ceph: OSD osd.{#OSDNAME} is down'
priority: AVERAGE
description: |
- OSD osd.{#OSDNAME} is marked "down" in the osdmap.
+ OSD osd.{#OSDNAME} is marked "down" in the *osdmap*.
The OSD daemon may have been stopped, or peer OSDs may be unable to reach the OSD over the network.
tags:
-
@@ -1442,7 +1446,7 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total bytes used in pool.'
+ description: 'The total bytes used in a pool.'
preprocessing:
-
type: JSONPATH
@@ -1493,7 +1497,7 @@ zabbix_export:
key: 'ceph.pool["{#POOLNAME}",objects]'
delay: '0'
history: 7d
- description: 'Number of objects in the pool.'
+ description: 'The number of objects in the pool.'
preprocessing:
-
type: JSONPATH
@@ -1519,7 +1523,7 @@ zabbix_export:
delay: '0'
history: 7d
units: '%'
- description: 'Percentage of storage used per pool'
+ description: 'The percentage of the storage used per pool.'
preprocessing:
-
type: JSONPATH
@@ -1546,7 +1550,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: Bps
- description: 'Per-pool read Bytes/second'
+ description: 'The read rate per pool (bytes per second).'
preprocessing:
-
type: JSONPATH
@@ -1577,7 +1581,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ops
- description: 'Per-pool read operations/second'
+ description: 'The read rate per pool (operations per second).'
preprocessing:
-
type: JSONPATH
@@ -1607,7 +1611,7 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Bytes used in pool including copies made.'
+ description: 'Bytes used in pool including the copies made.'
preprocessing:
-
type: JSONPATH
@@ -1634,7 +1638,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: Bps
- description: 'Per-pool write Bytes/second'
+ description: 'The write rate per pool (bytes per second).'
preprocessing:
-
type: JSONPATH
@@ -1665,7 +1669,7 @@ zabbix_export:
history: 7d
value_type: FLOAT
units: ops
- description: 'Per-pool write operations/second'
+ description: 'The write rate per pool (operations per second).'
preprocessing:
-
type: JSONPATH
diff --git a/templates/app/gitlab_http/README.md b/templates/app/gitlab_http/README.md
index 10133894ddf..696f9b9cbbb 100644
--- a/templates/app/gitlab_http/README.md
+++ b/templates/app/gitlab_http/README.md
@@ -3,11 +3,11 @@
## Overview
-For Zabbix version: 6.0 and higher
-The template to monitor GitLab by Zabbix that works without any external scripts.
+For Zabbix version: 6.0 and higher.
+This template is designed to monitor GitLab by Zabbix that works without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
-Template `GitLab by HTTP` — collects metrics by HTTP agent from GitLab /metrics endpoint.
+The template `GitLab by HTTP` — collects metrics by an HTTP agent from the GitLab `/-/metrics` endpoint.
See https://docs.gitlab.com/ee/administration/monitoring/prometheus/gitlab_metrics.html.
@@ -20,9 +20,11 @@ This template was tested on:
> See [Zabbix template operation](https://www.zabbix.com/documentation/6.0/manual/config/templates_out_of_the_box/http) for basic instructions.
-This template works with self-hosted GitLab instances. Internal service metrics are collected from GitLab /-/metrics endpoint.
-To access the metrics, the client IP address must be [explicitly allowed](https://docs.gitlab.com/ee/administration/monitoring/ip_whitelist.html).
-Don't forget to change the macros {$GITLAB.URL}.
+This template works with self-hosted GitLab instances. Internal service metrics are collected from the GitLab `/-/metrics` endpoint.
+To access metrics following two methods are available:
+1. Explicitly allow monitoring instance IP address in gitlab [whitelist configuration](https://docs.gitlab.com/ee/administration/monitoring/ip_whitelist.html).
+2. Get token from Gitlab `Admin -> Monitoring -> Health check` page: http://your.gitlab.address/admin/health_check; Use this token in macro `{$GITLAB.HEALTH.TOKEN}` as variable path, like: `?token=your_token`.
+Remember to change the macros `{$GITLAB.URL}`.
Also, see the Macros section for a list of macros used to set trigger values.
*NOTE.* Some metrics may not be collected depending on your Gitlab instance version and configuration. See [Gitlab's documentation](https://docs.gitlab.com/ee/administration/monitoring/prometheus/gitlab_metrics.html) for further information about its metric collection.
@@ -36,14 +38,15 @@ No specific Zabbix configuration is required.
|Name|Description|Default|
|----|-----------|-------|
-|{$GITLAB.HTTP.FAIL.MAX.WARN} |<p>Maximum number of HTTP requests failures for trigger expression.</p> |`2` |
-|{$GITLAB.OPEN.FDS.MAX.WARN} |<p>Maximum percentage of used file descriptors for trigger expression.</p> |`90` |
-|{$GITLAB.PUMA.QUEUE.MAX.WARN} |<p>Maximum number of Puma queued requests for trigger expression.</p> |`1` |
-|{$GITLAB.PUMA.UTILIZATION.MAX.WARN} |<p>Maximum percentage of used Puma thread utilization for trigger expression.</p> |`90` |
-|{$GITLAB.REDIS.FAIL.MAX.WARN} |<p>Maximum number of Redis client exceptions for trigger expression.</p> |`2` |
-|{$GITLAB.UNICORN.QUEUE.MAX.WARN} |<p>Maximum number of Unicorn queued requests for trigger expression.</p> |`1` |
-|{$GITLAB.UNICORN.UTILIZATION.MAX.WARN} |<p>Maximum percentage of used Unicorn workers utilization for trigger expression.</p> |`90` |
-|{$GITLAB.URL} |<p>GitLab instance URL</p> |`http://localhost` |
+|{$GITLAB.HEALTH.TOKEN} |<p>The token path for Gitlab health check. Example `?token=your_token`</p> |`` |
+|{$GITLAB.HTTP.FAIL.MAX.WARN} |<p>The maximum number of HTTP request failures for a trigger expression.</p> |`2` |
+|{$GITLAB.OPEN.FDS.MAX.WARN} |<p>The maximum percentage of used file descriptors for a trigger expression.</p> |`90` |
+|{$GITLAB.PUMA.QUEUE.MAX.WARN} |<p>The maximum number of PUMA queued requests for a trigger expression.</p> |`1` |
+|{$GITLAB.PUMA.UTILIZATION.MAX.WARN} |<p>The maximum percentage of PUMA thread utilization for a trigger expression.</p> |`90` |
+|{$GITLAB.REDIS.FAIL.MAX.WARN} |<p>The maximum number of Redis client exceptions for a trigger expression.</p> |`2` |
+|{$GITLAB.UNICORN.QUEUE.MAX.WARN} |<p>The maximum number of Unicorn queued requests for a trigger expression.</p> |`1` |
+|{$GITLAB.UNICORN.UTILIZATION.MAX.WARN} |<p>The maximum percentage of Unicorn workers utilization for a trigger expression.</p> |`90` |
+|{$GITLAB.URL} |<p>URL of a GitLab instance.</p> |`http://localhost` |
## Template links
@@ -123,11 +126,11 @@ There are no template links in this template.
|----|-----------|----|----|----|
|GitLab: Gitlab instance is not able to accept traffic |<p>-</p> |`last(/GitLab by HTTP/gitlab.readiness)=0` |HIGH |<p>**Depends on**:</p><p>- GitLab: Liveness check was failed</p> |
|GitLab: Liveness check was failed |<p>The application server is not running or Rails Controllers are deadlocked.</p> |`last(/GitLab by HTTP/gitlab.liveness)=0` |HIGH | |
-|GitLab: Version has changed |<p>GitLab version has changed. Ack to close.</p> |`last(/GitLab by HTTP/gitlab.deployments.version,#1)<>last(/GitLab by HTTP/gitlab.deployments.version,#2) and length(last(/GitLab by HTTP/gitlab.deployments.version))>0` |INFO |<p>Manual close: YES</p> |
+|GitLab: Version has changed |<p>The GitLab version has changed. Perform Ack to close.</p> |`last(/GitLab by HTTP/gitlab.deployments.version,#1)<>last(/GitLab by HTTP/gitlab.deployments.version,#2) and length(last(/GitLab by HTTP/gitlab.deployments.version))>0` |INFO |<p>Manual close: YES</p> |
|GitLab: Too many Redis queues client exceptions |<p>"Too many Redis client exceptions during the requests to Redis instance queues."</p> |`min(/GitLab by HTTP/gitlab.redis.client_exceptions.queues.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}` |WARNING | |
|GitLab: Too many Redis cache client exceptions |<p>"Too many Redis client exceptions during the requests to Redis instance cache."</p> |`min(/GitLab by HTTP/gitlab.redis.client_exceptions.cache.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}` |WARNING | |
|GitLab: Too many Redis shared_state client exceptions |<p>"Too many Redis client exceptions during the requests to Redis instance shared_state."</p> |`min(/GitLab by HTTP/gitlab.redis.client_exceptions.shared_state.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}` |WARNING | |
-|GitLab: Failed to fetch info data |<p>Zabbix has not received data for metrics for the last 30 minutes</p> |`nodata(/GitLab by HTTP/gitlab.ruby.threads_running,30m)=1` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- GitLab: Liveness check was failed</p> |
+|GitLab: Failed to fetch info data |<p>Zabbix has not received a metrics data for the last 30 minutes</p> |`nodata(/GitLab by HTTP/gitlab.ruby.threads_running,30m)=1` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- GitLab: Liveness check was failed</p> |
|GitLab: Current number of open files is too high |<p>-</p> |`min(/GitLab by HTTP/gitlab.ruby.file_descriptors.max,5m)/last(/GitLab by HTTP/gitlab.ruby.process_max_fds)*100>{$GITLAB.OPEN.FDS.MAX.WARN}` |WARNING | |
|GitLab: Too many HTTP requests failures |<p>"Too many requests failed on GitLab instance with 5xx HTTP code"</p> |`min(/GitLab by HTTP/gitlab.http.requests.5xx.rate,5m)>{$GITLAB.HTTP.FAIL.MAX.WARN}` |WARNING | |
|GitLab: Puma instance thread utilization is too high |<p>-</p> |`min(/GitLab by HTTP/gitlab.puma.active_connections[{#SINGLETON}],5m)/last(/GitLab by HTTP/gitlab.puma.max_threads[{#SINGLETON}])*100>{$GITLAB.PUMA.UTILIZATION.MAX.WARN}` |WARNING | |
@@ -137,7 +140,7 @@ There are no template links in this template.
## Feedback
-Please report any issues with the template at https://support.zabbix.com
+Please report any issues with the template at https://support.zabbix.com.
-You can also provide feedback, discuss the template or ask for help with it at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback).
+You can also provide feedback, discuss the template, or ask for help at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback).
diff --git a/templates/app/gitlab_http/template_app_gitlab_http.yaml b/templates/app/gitlab_http/template_app_gitlab_http.yaml
index 752f8d427e9..343861a5a5c 100644
--- a/templates/app/gitlab_http/template_app_gitlab_http.yaml
+++ b/templates/app/gitlab_http/template_app_gitlab_http.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-04-06T19:27:28Z'
+ date: '2022-10-20T15:04:55Z'
groups:
-
uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
@@ -14,7 +14,7 @@ zabbix_export:
Get GitLab metrics by HTTP agent from Prometheus metrics endpoint.
To access the metrics, the client IP address must be explicitly allowed. See https://docs.gitlab.com/ee/administration/monitoring/ip_whitelist.html.
-
+ Or second method, using token variable from http://your.gitlab.address/admin/health_check (fill {$GITLAB.HEALTH.TOKEN} macro with variable path like "?token=your_token").
Don't forget change macros {$GITLAB.URL}.
Some metrics may not be collected depending on your Gitlab instance version and configuration. See (Gitlab's documentation[)https://docs.gitlab.com/ee/administration/monitoring/prometheus/gitlab_metrics.html] for further information about its metric collection.
@@ -219,7 +219,7 @@ zabbix_export:
name: 'GitLab: Version has changed'
event_name: 'GitLab: Version has changed (new version: {ITEM.VALUE})'
priority: INFO
- description: 'GitLab version has changed. Ack to close.'
+ description: 'The GitLab version has changed. Perform Ack to close.'
manual_close: 'YES'
tags:
-
@@ -262,7 +262,7 @@ zabbix_export:
type: PROMETHEUS_TO_JSON
parameters:
- ''
- url: '{$GITLAB.URL}/-/metrics'
+ url: '{$GITLAB.URL}/-/metrics{$GITLAB.HEALTH.TOKEN}'
tags:
-
tag: component
@@ -392,7 +392,7 @@ zabbix_export:
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 30m
- url: '{$GITLAB.URL}/-/liveness'
+ url: '{$GITLAB.URL}/-/liveness{$GITLAB.HEALTH.TOKEN}'
tags:
-
tag: component
@@ -561,7 +561,7 @@ zabbix_export:
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 30m
- url: '{$GITLAB.URL}/-/readiness'
+ url: '{$GITLAB.URL}/-/readiness{$GITLAB.HEALTH.TOKEN}'
tags:
-
tag: component
@@ -1012,7 +1012,7 @@ zabbix_export:
name: 'GitLab: Failed to fetch info data'
event_name: 'GitLab: Failed to fetch info data (or no data for 30m)'
priority: WARNING
- description: 'Zabbix has not received data for metrics for the last 30 minutes'
+ description: 'Zabbix has not received a metrics data for the last 30 minutes'
manual_close: 'YES'
dependencies:
-
@@ -1330,7 +1330,7 @@ zabbix_export:
-
tag: scope
value: capacity
- url: '{$GITLAB.URL}/-/metrics'
+ url: '{$GITLAB.URL}/-/metrics{$GITLAB.HEALTH.TOKEN}'
preprocessing:
-
type: PROMETHEUS_TO_JSON
@@ -1427,7 +1427,7 @@ zabbix_export:
-
tag: scope
value: capacity
- url: '{$GITLAB.URL}/-/metrics'
+ url: '{$GITLAB.URL}/-/metrics{$GITLAB.HEALTH.TOKEN}'
preprocessing:
-
type: PROMETHEUS_TO_JSON
@@ -1447,37 +1447,40 @@ zabbix_export:
value: gitlab
macros:
-
+ macro: '{$GITLAB.HEALTH.TOKEN}'
+ description: 'The token path for Gitlab health check. Example `?token=your_token`'
+ -
macro: '{$GITLAB.HTTP.FAIL.MAX.WARN}'
value: '2'
- description: 'Maximum number of HTTP requests failures for trigger expression.'
+ description: 'The maximum number of HTTP request failures for a trigger expression.'
-
macro: '{$GITLAB.OPEN.FDS.MAX.WARN}'
value: '90'
- description: 'Maximum percentage of used file descriptors for trigger expression.'
+ description: 'The maximum percentage of used file descriptors for a trigger expression.'
-
macro: '{$GITLAB.PUMA.QUEUE.MAX.WARN}'
value: '1'
- description: 'Maximum number of Puma queued requests for trigger expression.'
+ description: 'The maximum number of Puma queued requests for a trigger expression.'
-
macro: '{$GITLAB.PUMA.UTILIZATION.MAX.WARN}'
value: '90'
- description: 'Maximum percentage of used Puma thread utilization for trigger expression.'
+ description: 'The maximum percentage of Puma thread utilization for a trigger expression.'
-
macro: '{$GITLAB.REDIS.FAIL.MAX.WARN}'
value: '2'
- description: 'Maximum number of Redis client exceptions for trigger expression.'
+ description: 'The maximum number of Redis client exceptions for a trigger expression.'
-
macro: '{$GITLAB.UNICORN.QUEUE.MAX.WARN}'
value: '1'
- description: 'Maximum number of Unicorn queued requests for trigger expression.'
+ description: 'The maximum number of Unicorn queued requests for a trigger expression.'
-
macro: '{$GITLAB.UNICORN.UTILIZATION.MAX.WARN}'
value: '90'
- description: 'Maximum percentage of used Unicorn workers utilization for trigger expression.'
+ description: 'The maximum percentage of Unicorn workers utilization for a trigger expression.'
-
macro: '{$GITLAB.URL}'
value: 'http://localhost'
- description: 'GitLab instance URL'
+ description: 'URL of a GitLab instance.'
valuemaps:
-
uuid: 3b40391bb8b6472e9c3fd8e1f001fe04
diff --git a/templates/app/kubernetes_http/kubernetes_state_http/README.md b/templates/app/kubernetes_http/kubernetes_state_http/README.md
index a2efe8ff822..966bb8a0b6c 100644
--- a/templates/app/kubernetes_http/kubernetes_state_http/README.md
+++ b/templates/app/kubernetes_http/kubernetes_state_http/README.md
@@ -123,7 +123,7 @@ There are no template links in this template.
|Kubernetes |Kubernetes: Node LLD |<p>Generation of data for Kubelet discovery rules.</p> |SCRIPT |kube.node.lld<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `3h`</p><p>**Expression**:</p>`The text is too long. Please see the template.` |
|Kubernetes |Kubernetes: Get component statuses |<p>-</p> |HTTP_AGENT |kube.componentstatuses<p>**Preprocessing**:</p><p>- CHECK_NOT_SUPPORTED</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
|Kubernetes |Kubernetes: Get readyz |<p>-</p> |HTTP_AGENT |kube.readyz<p>**Preprocessing**:</p><p>- JAVASCRIPT: `var output = [], component; value.split(/\n/).forEach(function (entry) { if (component = entry.match(/^\[.+\](.+)\s(\w+)$/)) { output.push({ name: component[1], value: component[2] }); } }); return JSON.stringify(output); `</p> |
-|Kubernetes |Kubernetes: Get livez |<p>-</p> |HTTP_AGENT |kube.livez<p>**Preprocessing**:</p><p>- JAVASCRIPT: `var output = [], conponent; value.split(/\n/).forEach(function (entry) { if (component = entry.match(/^\[.+\](.+)\s(\w+)$/)) { output.push({ name: component[1], value: component[2] }); } }); return JSON.stringify(output); `</p> |
+|Kubernetes |Kubernetes: Get livez |<p>-</p> |HTTP_AGENT |kube.livez<p>**Preprocessing**:</p><p>- JAVASCRIPT: `var output = [], component; value.split(/\n/).forEach(function (entry) { if (component = entry.match(/^\[.+\](.+)\s(\w+)$/)) { output.push({ name: component[1], value: component[2] }); } }); return JSON.stringify(output); `</p> |
|Kubernetes |Kubernetes: Namespace count |<p>The number of namespaces.</p> |DEPENDENT |kube.namespace.count<p>**Preprocessing**:</p><p>- PROMETHEUS_PATTERN: `kube_namespace_created`: `function`: `count`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
|Kubernetes |Kubernetes: CronJob count |<p>Number of cronjobs.</p> |DEPENDENT |kube.cronjob.count<p>**Preprocessing**:</p><p>- PROMETHEUS_PATTERN: `kube_cronjob_created`: `function`: `count`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
|Kubernetes |Kubernetes: Job count |<p>Number of jobs(generated by cronjob + job).</p> |DEPENDENT |kube.job.count<p>**Preprocessing**:</p><p>- PROMETHEUS_PATTERN: `kube_job_created`: `function`: `count`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
diff --git a/templates/app/kubernetes_http/kubernetes_state_http/template_kubernetes_state.yaml b/templates/app/kubernetes_http/kubernetes_state_http/template_kubernetes_state.yaml
index 5807e6e5715..2725cddaae9 100644
--- a/templates/app/kubernetes_http/kubernetes_state_http/template_kubernetes_state.yaml
+++ b/templates/app/kubernetes_http/kubernetes_state_http/template_kubernetes_state.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-07-28T07:46:54Z'
+ date: '2022-09-06T16:32:52Z'
groups:
-
uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
@@ -302,7 +302,7 @@ zabbix_export:
parameters:
- |
var output = [],
- conponent;
+ component;
value.split(/\n/).forEach(function (entry) {
if (component = entry.match(/^\[.+\](.+)\s(\w+)$/)) {
diff --git a/templates/media/discord/media_discord.yaml b/templates/media/discord/media_discord.yaml
index 2d33f319d77..7808b24fb8a 100644
--- a/templates/media/discord/media_discord.yaml
+++ b/templates/media/discord/media_discord.yaml
@@ -1,6 +1,6 @@
zabbix_export:
- version: '5.4'
- date: '2020-10-16T09:33:47Z'
+ version: '6.0'
+ date: '2022-10-06T08:00:37Z'
media_types:
-
name: Discord
@@ -117,8 +117,8 @@ zabbix_export:
params.zabbix_url = (params.zabbix_url.endsWith('/'))
? params.zabbix_url.slice(0, -1) : params.zabbix_url;
- if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {
- throw 'Incorrect "event_source" parameter given: "' + params.event_source + '".\nMust be 0-3.';
+ if ([0, 1, 2, 3, 4].indexOf(parseInt(params.event_source)) === -1) {
+ throw 'Incorrect "event_source" parameter given: "' + params.event_source + '".\nMust be 0-4.';
}
// Set params to true for non trigger-based events.
@@ -343,3 +343,37 @@ zabbix_export:
Host name: {HOST.HOST}
Host IP: {HOST.IP}
Agent port: {HOST.PORT}
+ -
+ event_source: SERVICE
+ operation_mode: PROBLEM
+ subject: 'Service "{SERVICE.NAME}" problem: {EVENT.NAME}'
+ message: |
+ Service problem started at {EVENT.TIME} on {EVENT.DATE}
+ Service problem name: {EVENT.NAME}
+ Service: {SERVICE.NAME}
+ Severity: {EVENT.SEVERITY}
+ Original problem ID: {EVENT.ID}
+ Service description: {SERVICE.DESCRIPTION}
+
+ {SERVICE.ROOTCAUSE}
+ -
+ event_source: SERVICE
+ operation_mode: RECOVERY
+ subject: 'Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}'
+ message: |
+ Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
+ Problem name: {EVENT.NAME}
+ Problem duration: {EVENT.DURATION}
+ Severity: {EVENT.SEVERITY}
+ Original problem ID: {EVENT.ID}
+ Service description: {SERVICE.DESCRIPTION}
+ -
+ event_source: SERVICE
+ operation_mode: UPDATE
+ subject: 'Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}'
+ message: |
+ Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
+ Current problem age is {EVENT.AGE}.
+ Service description: {SERVICE.DESCRIPTION}
+
+ {SERVICE.ROOTCAUSE}
diff --git a/templates/media/msteams/media_msteams.yaml b/templates/media/msteams/media_msteams.yaml
index d128bde7897..5adcca49020 100644
--- a/templates/media/msteams/media_msteams.yaml
+++ b/templates/media/msteams/media_msteams.yaml
@@ -1,6 +1,6 @@
zabbix_export:
- version: '5.4'
- date: '2022-06-07T04:55:32Z'
+ version: '6.0'
+ date: '2022-10-06T10:09:05Z'
media_types:
-
name: 'MS Teams'
@@ -101,7 +101,7 @@ zabbix_export:
try {
var params = JSON.parse(value);
-
+
if (typeof params.teams_endpoint !== 'string' || params.teams_endpoint.trim() === '') {
throw 'Cannot get teams_endpoint';
}
@@ -112,8 +112,8 @@ zabbix_export:
params.zabbix_url = (params.zabbix_url.endsWith('/'))
? params.zabbix_url.slice(0, -1) : params.zabbix_url;
- if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {
- throw 'Incorrect "event_source" parameter given: "' + params.event_source + '".\nMust be 0-3.';
+ if ([0, 1, 2, 3, 4].indexOf(parseInt(params.event_source)) === -1) {
+ throw 'Incorrect "event_source" parameter given: "' + params.event_source + '".\nMust be 0-4.';
}
// Set "use_default_message" to true for non trigger-based events.
@@ -149,7 +149,6 @@ zabbix_export:
{
markdown: 'false',
activityTitle: params.alert_subject,
- activitySubtitle: 'On ' + params.host_name + ' [' + params.host_ip + ']',
text: (params.use_default_message.toLowerCase() == 'true')
? params.alert_message
: params.trigger_description
@@ -181,6 +180,10 @@ zabbix_export:
name: 'Event time',
value: params.event_time + ' ' + params.event_date
});
+ facts.push({
+ name: 'Host',
+ value: params.host_name + ' [' + params.host_ip + ']'
+ });
}
// Update message.
else if (params.event_update_status === '1') {
@@ -189,11 +192,14 @@ zabbix_export:
if (params.event_update_message) {
body.sections[0].text += '<br>Message:<br>' + params.event_update_message;
}
-
facts.push({
name: 'Event update time',
value: params.event_update_time + ' ' + params.event_update_date
});
+ facts.push({
+ name: 'Host',
+ value: params.host_name + ' [' + params.host_ip + ']'
+ });
}
// Resolved message.
else {
@@ -201,8 +207,12 @@ zabbix_export:
name: 'Recovery time',
value: params.event_recovery_time + ' ' + params.event_recovery_date
});
+ facts.push({
+ name: 'Host',
+ value: params.host_name + ' [' + params.host_ip + ']'
+ });
}
-
+
if (params.event_severity && params.event_severity !== '{EVENT.SEVERITY}') {
facts.push({
name: 'Severity',
@@ -210,7 +220,6 @@ zabbix_export:
});
}
-
if (params.event_opdata && params.event_opdata !== '{EVENT.OPDATA}') {
facts.push({
name: 'Operational data',
@@ -277,6 +286,38 @@ zabbix_export:
}
message_templates:
-
+ event_source: TRIGGERS
+ operation_mode: PROBLEM
+ subject: 'Problem: {EVENT.NAME}'
+ message: |
+ Problem started at {EVENT.TIME} on {EVENT.DATE}
+ Problem name: {EVENT.NAME}
+ Host: {HOST.NAME}
+ Severity: {EVENT.SEVERITY}
+ Operational data: {EVENT.OPDATA}
+ Original problem ID: {EVENT.ID}
+ {TRIGGER.URL}
+ -
+ event_source: TRIGGERS
+ operation_mode: RECOVERY
+ subject: 'Resolved: {EVENT.NAME}'
+ message: |
+ Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
+ Problem name: {EVENT.NAME}
+ Host: {HOST.NAME}
+ Severity: {EVENT.SEVERITY}
+ Original problem ID: {EVENT.ID}
+ {TRIGGER.URL}
+ -
+ event_source: TRIGGERS
+ operation_mode: UPDATE
+ subject: 'Updated problem: {EVENT.NAME}'
+ message: |
+ {USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
+ {EVENT.UPDATE.MESSAGE}
+
+ Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.
+ -
event_source: DISCOVERY
operation_mode: PROBLEM
subject: 'Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
@@ -301,34 +342,36 @@ zabbix_export:
Host IP: {HOST.IP}
Agent port: {HOST.PORT}
-
- event_source: TRIGGERS
+ event_source: SERVICE
operation_mode: PROBLEM
- subject: 'Problem: {EVENT.NAME}'
+ subject: 'Service "{SERVICE.NAME}" problem: {EVENT.NAME}'
message: |
- Problem started at {EVENT.TIME} on {EVENT.DATE}
- Problem name: {EVENT.NAME}
- Host: {HOST.NAME}
+ Service problem started at {EVENT.TIME} on {EVENT.DATE}
+ Service problem name: {EVENT.NAME}
+ Service: {SERVICE.NAME}
Severity: {EVENT.SEVERITY}
- Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
- {TRIGGER.URL}
+ Service description: {SERVICE.DESCRIPTION}
+
+ {SERVICE.ROOTCAUSE}
-
- event_source: TRIGGERS
+ event_source: SERVICE
operation_mode: RECOVERY
- subject: 'Resolved: {EVENT.NAME}'
+ subject: 'Service "{SERVICE.NAME}" resolved in {EVENT.DURATION}: {EVENT.NAME}'
message: |
- Problem has been resolved in {EVENT.DURATION} at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
+ Service "{SERVICE.NAME}" has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
- Host: {HOST.NAME}
+ Problem duration: {EVENT.DURATION}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
- {TRIGGER.URL}
+ Service description: {SERVICE.DESCRIPTION}
-
- event_source: TRIGGERS
+ event_source: SERVICE
operation_mode: UPDATE
- subject: 'Updated problem: {EVENT.NAME}'
+ subject: 'Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} in {EVENT.AGE}'
message: |
- {USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
- {EVENT.UPDATE.MESSAGE}
+ Changed "{SERVICE.NAME}" service status to {EVENT.UPDATE.SEVERITY} at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
+ Current problem age is {EVENT.AGE}.
+ Service description: {SERVICE.DESCRIPTION}
- Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.
+ {SERVICE.ROOTCAUSE}
diff --git a/templates/media/opsgenie/README.md b/templates/media/opsgenie/README.md
index ad728748ad1..fc2c54d612d 100644
--- a/templates/media/opsgenie/README.md
+++ b/templates/media/opsgenie/README.md
@@ -39,6 +39,10 @@ Note, that this step is required only for notifications about internal events; f
For more information, please see [Zabbix](https://www.zabbix.com/documentation/6.0/manual/config/notifications) and [Opsgenie](https://docs.opsgenie.com/docs/alert-api) documentation.
+## Known issue:
+
+If both recovery and update operations are defined for an action and the problem is closed manually in the frontend, closing operation will be executed first. Update operations for the resolved event will not be executed, but the status of these operations will be changed to 'Sent' to stop failed request attempts.
+
## Supported Versions
Zabbix 5.0, Opsgenie Alert API.
diff --git a/templates/media/opsgenie/media_opsgenie.yaml b/templates/media/opsgenie/media_opsgenie.yaml
index 386158579ad..e03d49cf1db 100644
--- a/templates/media/opsgenie/media_opsgenie.yaml
+++ b/templates/media/opsgenie/media_opsgenie.yaml
@@ -1,6 +1,6 @@
zabbix_export:
- version: '5.4'
- date: '2020-10-16T09:33:49Z'
+ version: '6.0'
+ date: '2022-09-23T08:01:59Z'
media_types:
-
name: Opsgenie
@@ -25,6 +25,9 @@ zabbix_export:
name: event_tags_json
value: '{EVENT.TAGSJSON}'
-
+ name: event_update_action
+ value: '{EVENT.UPDATE.ACTION}'
+ -
name: event_update_status
value: '{EVENT.UPDATE.STATUS}'
-
@@ -67,6 +70,9 @@ zabbix_export:
name: severity_warning
value: P4
-
+ name: status_counter
+ value: '25'
+ -
name: trigger_id
value: '{TRIGGER.ID}'
-
@@ -76,7 +82,8 @@ zabbix_export:
name: zbxuser
value: '{USER.FULLNAME}'
script: |
- var Media = {
+ var method,
+ Media = {
params: {},
name: '',
labels: [],
@@ -203,15 +210,27 @@ zabbix_export:
},
getAlertId: function (requestId) {
+ status_counter = params.status_counter || 25;
do {
resp = Media.request('get', 'requests/' + requestId, undefined, true);
+ status_counter -= 1;
}
- while (typeof resp.response !== 'object' || typeof resp.response.data === 'undefined'
- || resp.response.data.success === false);
+ while ( status_counter > 0 &&
+ (
+ typeof resp.response !== 'object' ||
+ typeof resp.response.data === 'undefined' ||
+ resp.response.data.success === false &&
+ !resp.response.data.status.includes("There is no open alert") &&
+ !resp.response.data.status.includes("Alert is already")
+ )
+ );
if (typeof resp.response !== 'object' || typeof resp.response.data === 'undefined') {
throw 'Cannot get ' + Media.name + ' issue ID. Check debug log for more information.';
}
+ else if (resp.response.data.success === false ) {
+ throw Media.name + ': Operation status (' + resp.response.data.status + ')';
+ }
return resp;
}
@@ -357,12 +376,24 @@ zabbix_export:
throw Media.name + ' response code is unexpected. Check debug log for more information.';
}
}
- // Update a created issue.
+ // Update or close the created issue.
else {
fields.user = (params.event_value != 0) ? params.zbxuser : '';
fields.note = params.alert_message;
+ if ( [0, 3].indexOf(parseInt(params.event_source)) > -1 && params.event_value == 0 ) {
+ // skip sending of close request from update operation(mandatory when both update & recovery operations are defined in action)
+ method = params.event_update_status == 0 ? "close" : "skip";
+ }
+ else if ( params.event_source == 0 && params.event_value == 1 && params.event_update_status == 1 && params.event_update_action.includes('acknowledged')) {
+ method = params.event_update_action.includes('unacknowledged') ? "unacknowledge" : "acknowledge";
+ }
+ else {
+ method = "notes";
+ }
+
+ if (method !== "skip") {
+ resp = Media.request('post', params.event_id + '/' + method +'?identifierType=alias', fields);
- resp = Media.request('post', params.event_id + '/notes?identifierType=alias', fields);
if (typeof resp.response !== 'object' || typeof resp.response.result === 'undefined') {
throw 'Cannot update ' + Media.name + ' issue. Check debug log for more information.';
}
@@ -374,7 +405,7 @@ zabbix_export:
throw Media.name + ' response code is unexpected. Check debug log for more information.';
}
}
-
+ }
return JSON.stringify(result);
}
catch (error) {
diff --git a/templates/module/smart_agent2/README.md b/templates/module/smart_agent2/README.md
index f7481f66184..43701d70939 100644
--- a/templates/module/smart_agent2/README.md
+++ b/templates/module/smart_agent2/README.md
@@ -19,6 +19,15 @@ This template was tested on:
> See [Zabbix template operation](https://www.zabbix.com/documentation/6.0/manual/config/templates_out_of_the_box/zabbix_agent2) for basic instructions.
Install the Zabbix agent 2 and Smartmontools 7.1.
+Grant Zabbix agent 2 super/admin user privileges for smartctl utility.
+
+### Linux example:
+
+> sudo dnf install smartmontools
+> sudo visudo
+>> zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl
+
+Plugin [parameters list](https://www.zabbix.com/documentation/6.0/manual/appendix/config/zabbix_agent2_plugins/smart_plugin)
## Zabbix configuration
diff --git a/templates/module/smart_agent2_active/README.md b/templates/module/smart_agent2_active/README.md
index 8c0fbd65a13..dfb524cb4ea 100644
--- a/templates/module/smart_agent2_active/README.md
+++ b/templates/module/smart_agent2_active/README.md
@@ -19,6 +19,15 @@ This template was tested on:
> See [Zabbix template operation](https://www.zabbix.com/documentation/6.0/manual/config/templates_out_of_the_box/zabbix_agent2) for basic instructions.
Install the Zabbix agent 2 and Smartmontools 7.1.
+Grant Zabbix agent 2 super/admin user privileges for smartctl utility.
+
+### Linux example:
+
+> sudo dnf install smartmontools
+> sudo visudo
+>> zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl
+
+Plugin [parameters list](https://www.zabbix.com/documentation/6.0/manual/appendix/config/zabbix_agent2_plugins/smart_plugin)
## Zabbix configuration
diff --git a/templates/module/windows_agent/README.md b/templates/module/windows_agent/README.md
index 25217dcc3aa..74b4067d4bb 100644
--- a/templates/module/windows_agent/README.md
+++ b/templates/module/windows_agent/README.md
@@ -107,7 +107,7 @@ There are no template links in this template.
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
|High memory utilization |<p>The system is running out of free memory.</p> |`min(/Windows memory by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}` |AVERAGE | |
-|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`min(/Windows memory by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
+|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`max(/Windows memory by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|Number of free system page table entries is too low |<p>The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak.</p> |`max(/Windows memory by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|The Memory Pages/sec is too high |<p>The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.</p> |`min(/Windows memory by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
diff --git a/templates/module/windows_agent/template_module_windows_agent.yaml b/templates/module/windows_agent/template_module_windows_agent.yaml
index 9f7dade67d0..47c933b2ed7 100644
--- a/templates/module/windows_agent/template_module_windows_agent.yaml
+++ b/templates/module/windows_agent/template_module_windows_agent.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-06-01T13:18:45Z'
+ date: '2022-09-13T13:43:21Z'
groups:
-
uuid: 57b7ae836ca64446ba2c296389c009b7
@@ -1842,7 +1842,7 @@ zabbix_export:
value: performance
-
uuid: b2a97432e79e4a999324d3fde7dacdeb
- expression: 'min(/Windows memory by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent/system.swap.size[,total])>0'
+ expression: 'max(/Windows memory by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent/system.swap.size[,total])>0'
name: 'High swap space usage'
event_name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)'
opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
diff --git a/templates/module/windows_agent_active/README.md b/templates/module/windows_agent_active/README.md
index aeff0fd20b8..58d75298899 100644
--- a/templates/module/windows_agent_active/README.md
+++ b/templates/module/windows_agent_active/README.md
@@ -107,7 +107,7 @@ There are no template links in this template.
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
|High memory utilization |<p>The system is running out of free memory.</p> |`min(/Windows memory by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}` |AVERAGE | |
-|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`min(/Windows memory by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent active/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
+|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`max(/Windows memory by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent active/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|Number of free system page table entries is too low |<p>The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak.</p> |`max(/Windows memory by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|The Memory Pages/sec is too high |<p>The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.</p> |`min(/Windows memory by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
diff --git a/templates/module/windows_agent_active/template_module_windows_agent_active.yaml b/templates/module/windows_agent_active/template_module_windows_agent_active.yaml
index d181b0d8a8a..00fe3a20aab 100644
--- a/templates/module/windows_agent_active/template_module_windows_agent_active.yaml
+++ b/templates/module/windows_agent_active/template_module_windows_agent_active.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-06-01T13:18:51Z'
+ date: '2022-09-13T13:43:23Z'
groups:
-
uuid: 57b7ae836ca64446ba2c296389c009b7
@@ -1888,7 +1888,7 @@ zabbix_export:
value: performance
-
uuid: 237760596cd647bca82044e843992d87
- expression: 'min(/Windows memory by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent active/system.swap.size[,total])>0'
+ expression: 'max(/Windows memory by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent active/system.swap.size[,total])>0'
name: 'High swap space usage'
event_name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)'
opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
diff --git a/templates/net/f5_bigip_snmp/README.md b/templates/net/f5_bigip_snmp/README.md
index b2ece6524a5..8c517c1a0d5 100644
--- a/templates/net/f5_bigip_snmp/README.md
+++ b/templates/net/f5_bigip_snmp/README.md
@@ -3,7 +3,7 @@
## Overview
-For Zabbix version: 6.0 and higher
+For Zabbix version: 6.0 and higher.
https://www.f5.com/products/big-ip-services
## Setup
@@ -27,6 +27,7 @@ No specific Zabbix configuration is required.
|{$BIGIP.FS.FREE.WARN.MIN} |<p>The warning threshold of the file system utilization in %.</p> |`10` |
|{$BIGIP.LLD.FILTER.PART.NAME.MATCHES} |<p>Filter of discoverable mount point names.</p> |`.*` |
|{$BIGIP.LLD.FILTER.PART.NAME.NOT_MATCHES} |<p>Filter to exclude discovered by mount point names.</p> |`CHANGE_IF_NEEDED` |
+|{$BIGIP.LLD.OVERRIDE.PART.FILTER_LOW_SPACE_TRIGGER} |<p>Partitions that low free space trigger should ignore.</p> |`^/usr$` |
|{$BIGIP.MEMORY.UTIL.WARN.MAX} |<p>The warning threshold of the memory utilization in %.</p> |`85` |
|{$BIGIP.MEMORY.UTIL.WARN.MIN} |<p>The recovery threshold of the memory utilization in %.</p> |`65` |
|{$BIGIP.SWAP.UTIL.WARN.MAX} |<p>The warning threshold of the swap utilization in %.</p> |`85` |
@@ -51,7 +52,7 @@ There are no template links in this template.
|Chassis temperature discovery |<p>A table containing information of chassis temperature of the system</p> |SNMP |bigip.chassis.temp.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
|CPU discovery |<p>A table containing entries of system CPU usage information for a system.</p> |SNMP |bigip.cpu.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
|CPU sensor discovery |<p>A table containing information of CPU sensor status on the system.</p> |SNMP |bigip.cpu.sensor.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|File system discovery |<p>A table containing entries of system disk usage information.</p> |SNMP |bigip.disktable.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#PART.NAME} MATCHES_REGEX `{$BIGIP.LLD.FILTER.PART.NAME.MATCHES}`</p><p>- {#PART.NAME} NOT_MATCHES_REGEX `{$BIGIP.LLD.FILTER.PART.NAME.NOT_MATCHES}`</p> |
+|File system discovery |<p>A table containing entries of system disk usage information.</p> |SNMP |bigip.disktable.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#PART.NAME} MATCHES_REGEX `{$BIGIP.LLD.FILTER.PART.NAME.MATCHES}`</p><p>- {#PART.NAME} NOT_MATCHES_REGEX `{$BIGIP.LLD.FILTER.PART.NAME.NOT_MATCHES}`</p><p>**Overrides:**</p><p>Skip trigger for defined filesystems<br> - {#PART.NAME} MATCHES_REGEX `{$BIGIP.LLD.OVERRIDE.PART.FILTER_LOW_SPACE_TRIGGER}`<br> - TRIGGER_PROTOTYPE REGEXP `^F5 BIG-IP: Low free space in file system`<br> - NO_DISCOVER</p> |
|Memory discovery |<p>Containing system statistics information of the memory usage</p> |SNMP |bigip.memory.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
|Module discovery |<p>Resource allocation information about modules on the system</p> |SNMP |bigip.module.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
|Network interface discovery |<p>A table containing statistic information of the interfaces on the device.</p> |SNMP |bigip.net.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
@@ -200,11 +201,11 @@ There are no template links in this template.
|F5 BIG-IP: Power supply [{#POWER.INDEX}] is not present |<p>Please check the power supply unit</p> |`last(/F5 Big-IP SNMP/bigip.chassis.power.status[{#POWER.INDEX}])=2` |INFO | |
|F5 BIG-IP: Certificate expires ({#CERT.NAME}) |<p>Please check certificate</p> |`last(/F5 Big-IP SNMP/bigip.cert.expiration.date[{#CERT.NAME}]) - 86400 * {$BIGIP.CERT.MIN} < now()` |WARNING | |
|F5 BIG-IP: No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`max(/F5 Big-IP SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0` |WARNING | |
-|F5 BIG-IP: has been restarted |<p>Uptime is less than 10 minutes</p> |`last(/F5 Big-IP SNMP/bigip.uptime)<10m` |INFO |<p>Manual close: YES</p> |
+|F5 BIG-IP: Host has been restarted |<p>Uptime is less than 10 minutes.</p> |`last(/F5 Big-IP SNMP/bigip.uptime)<10m` |INFO |<p>Manual close: YES</p> |
|F5 BIG-IP: Chassis temperature |<p>-</p> |`last(/F5 Big-IP SNMP/bigip.chassis.temp.value[{#TEMP.INDEX}])>{$BIGIP.TEMP.HIGH}` |HIGH | |
|F5 BIG-IP: Chassis temperature |<p>-</p> |`last(/F5 Big-IP SNMP/bigip.chassis.temp.value[{#TEMP.INDEX}])>{$BIGIP.TEMP.WARN}` |WARNING |<p>**Depends on**:</p><p>- F5 BIG-IP: Chassis temperature</p> |
## Feedback
-Please report any issues with the template at https://support.zabbix.com
+Please report any issues with the template at https://support.zabbix.com.
diff --git a/templates/net/f5_bigip_snmp/template_net_f5_bigip_snmp.yaml b/templates/net/f5_bigip_snmp/template_net_f5_bigip_snmp.yaml
index 6e421456123..a35251e5868 100644
--- a/templates/net/f5_bigip_snmp/template_net_f5_bigip_snmp.yaml
+++ b/templates/net/f5_bigip_snmp/template_net_f5_bigip_snmp.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-04-06T19:27:26Z'
+ date: '2022-10-24T13:30:53Z'
groups:
-
uuid: 36bff6c29af64692839d077febfc7079
@@ -466,10 +466,10 @@ zabbix_export:
-
uuid: 551fd3b77d144ed58f138865e4862901
expression: 'last(/F5 Big-IP SNMP/bigip.uptime)<10m'
- name: 'F5 BIG-IP: has been restarted'
- event_name: 'F5 BIG-IP: has been restarted (uptime < 10m)'
+ name: 'F5 BIG-IP: Host has been restarted'
+ event_name: 'F5 BIG-IP: {HOST.NAME} has been restarted (uptime < 10m)'
priority: INFO
- description: 'Uptime is less than 10 minutes'
+ description: 'Uptime is less than 10 minutes.'
manual_close: 'YES'
tags:
-
@@ -1957,6 +1957,22 @@ zabbix_export:
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 6h
+ overrides:
+ -
+ name: 'Skip trigger for defined filesystems'
+ step: '1'
+ filter:
+ conditions:
+ -
+ macro: '{#PART.NAME}'
+ value: '{$BIGIP.LLD.OVERRIDE.PART.FILTER_LOW_SPACE_TRIGGER}'
+ formulaid: A
+ operations:
+ -
+ operationobject: TRIGGER_PROTOTYPE
+ operator: REGEXP
+ value: '^F5 BIG-IP: Low free space in file system'
+ discover: NO_DISCOVER
-
uuid: 8aeb7920d1fe4ba4884f92e45e711228
name: 'Memory discovery'
@@ -3774,6 +3790,10 @@ zabbix_export:
value: CHANGE_IF_NEEDED
description: 'Filter to exclude discovered by mount point names.'
-
+ macro: '{$BIGIP.LLD.OVERRIDE.PART.FILTER_LOW_SPACE_TRIGGER}'
+ value: ^/usr$
+ description: 'Partitions that low free space trigger should ignore.'
+ -
macro: '{$BIGIP.MEMORY.UTIL.WARN.MAX}'
value: '85'
description: 'The warning threshold of the memory utilization in %.'
diff --git a/templates/net/zyxel_snmp/zyxel_mgs3500-24s_snmp/README.md b/templates/net/zyxel_snmp/zyxel_mgs3500-24s_snmp/README.md
index 9d03f470fcc..62064095707 100644
--- a/templates/net/zyxel_snmp/zyxel_mgs3500-24s_snmp/README.md
+++ b/templates/net/zyxel_snmp/zyxel_mgs3500-24s_snmp/README.md
@@ -4,7 +4,7 @@
## Overview
For Zabbix version: 6.0 and higher
-hhttps://service-provider.zyxel.com/emea/en/products/carrier-and-access-switches/access-switches/mes3500-series
+https://service-provider.zyxel.com/emea/en/products/carrier-and-access-switches/access-switches/mes3500-series
This template was tested on:
diff --git a/templates/os/windows_agent/README.md b/templates/os/windows_agent/README.md
index 0a26b31932b..6dc902d92f1 100644
--- a/templates/os/windows_agent/README.md
+++ b/templates/os/windows_agent/README.md
@@ -148,7 +148,7 @@ There are no template links in this template.
|System time is out of sync |<p>The host system time is different from the Zabbix server time.</p> |`fuzzytime(/Windows by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0` |WARNING |<p>Manual close: YES</p> |
|System name has changed |<p>System name has changed. Ack to close.</p> |`last(/Windows by Zabbix agent/system.hostname,#1)<>last(/Windows by Zabbix agent/system.hostname,#2) and length(last(/Windows by Zabbix agent/system.hostname))>0` |INFO |<p>Manual close: YES</p> |
|High memory utilization |<p>The system is running out of free memory.</p> |`min(/Windows by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}` |AVERAGE | |
-|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`min(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
+|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`max(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|Number of free system page table entries is too low |<p>The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak.</p> |`max(/Windows by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|The Memory Pages/sec is too high |<p>The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.</p> |`min(/Windows by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage |<p>The network interface utilization is close to its estimated maximum bandwidth.</p> |`(avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0`<p>Recovery expression:</p>`avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) and avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
diff --git a/templates/os/windows_agent/template_os_windows_agent.yaml b/templates/os/windows_agent/template_os_windows_agent.yaml
index 0fcfc4b63b1..896b72c0d60 100644
--- a/templates/os/windows_agent/template_os_windows_agent.yaml
+++ b/templates/os/windows_agent/template_os_windows_agent.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-06-01T13:19:02Z'
+ date: '2022-09-12T15:15:19Z'
groups:
-
uuid: 846977d1dfed4968bc5f8bdb363285bc
@@ -2053,7 +2053,7 @@ zabbix_export:
value: performance
-
uuid: 7c23e03060ce42b094aac2f8aea1a9ad
- expression: 'min(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0'
+ expression: 'max(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0'
name: 'High swap space usage'
event_name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)'
opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
diff --git a/templates/os/windows_agent_active/README.md b/templates/os/windows_agent_active/README.md
index 09566934c7a..18eb7ceaf9b 100644
--- a/templates/os/windows_agent_active/README.md
+++ b/templates/os/windows_agent_active/README.md
@@ -147,7 +147,7 @@ There are no template links in this template.
|System time is out of syn |<p>The host system time is different from the Zabbix server time.</p> |`fuzzytime(/Windows by Zabbix agent active/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0` |WARNING |<p>Manual close: YES</p> |
|System name has changed |<p>System name has changed. Ack to close.</p> |`last(/Windows by Zabbix agent active/system.hostname,#1)<>last(/Windows by Zabbix agent active/system.hostname,#2) and length(last(/Windows by Zabbix agent active/system.hostname))>0` |INFO |<p>Manual close: YES</p> |
|High memory utilization |<p>The system is running out of free memory.</p> |`min(/Windows by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}` |AVERAGE | |
-|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`min(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
+|High swap space usage |<p>This trigger is ignored, if there is no swap configured</p> |`max(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|Number of free system page table entries is too low |<p>The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak.</p> |`max(/Windows by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|The Memory Pages/sec is too high |<p>The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.</p> |`min(/Windows by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX}` |WARNING |<p>**Depends on**:</p><p>- High memory utilization</p> |
|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage |<p>The network interface utilization is close to its estimated maximum bandwidth.</p> |`(avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0`<p>Recovery expression:</p>`avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) and avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
diff --git a/templates/os/windows_agent_active/template_os_windows_agent_active.yaml b/templates/os/windows_agent_active/template_os_windows_agent_active.yaml
index 879fe303398..cbf6b3d43e0 100644
--- a/templates/os/windows_agent_active/template_os_windows_agent_active.yaml
+++ b/templates/os/windows_agent_active/template_os_windows_agent_active.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-06-01T13:19:08Z'
+ date: '2022-09-12T15:15:22Z'
groups:
-
uuid: 846977d1dfed4968bc5f8bdb363285bc
@@ -2089,7 +2089,7 @@ zabbix_export:
value: performance
-
uuid: ac93631f79584e2d9909f4bb2f12c866
- expression: 'min(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0'
+ expression: 'max(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0'
name: 'High swap space usage'
event_name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)'
opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
diff --git a/templates/san/hpe_msa2040_http/README.md b/templates/san/hpe_msa2040_http/README.md
index 1cdd47165a0..b4404b911de 100644
--- a/templates/san/hpe_msa2040_http/README.md
+++ b/templates/san/hpe_msa2040_http/README.md
@@ -49,124 +49,151 @@ There are no template links in this template.
|Name|Description|Type|Key and additional info|
|----|-----------|----|----|
-|Controllers discovery |<p>Discover controllers.</p> |DEPENDENT |hpe.msa.controllers.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Disks discovery |<p>Discover disks.</p> |DEPENDENT |hpe.msa.disks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Overrides:**</p><p>SSD life left<br> - {#TYPE} MATCHES_REGEX `8`<br> - ITEM_PROTOTYPE REGEXP `SSD life left` - DISCOVER</p> |
-|Enclosures discovery |<p>Discover enclosures.</p> |DEPENDENT |hpe.msa.enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Fans discovery |<p>Discover fans.</p> |DEPENDENT |hpe.msa.fans.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|FRU discovery |<p>Discover FRU.</p> |DEPENDENT |hpe.msa.frus.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p> <p>- {#TYPE} NOT_MATCHES_REGEX `^(POWER_SUPPLY|RAID_IOM|CHASSIS_MIDPLANE)$`</p> |
-|Pools discovery |<p>Discover pools.</p> |DEPENDENT |hpe.msa.pools.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Ports discovery |<p>Discover ports.</p> |DEPENDENT |hpe.msa.ports.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Power supplies discovery |<p>Discover power supplies.</p> |DEPENDENT |hpe.msa.power_supplies.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Volumes discovery |<p>Discover volumes.</p> |DEPENDENT |hpe.msa.volumes.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Controllers discovery |<p>Discover controllers.</p> |DEPENDENT |hpe.msa.controllers.discovery |
+|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery |
+|Disks discovery |<p>Discover disks.</p> |DEPENDENT |hpe.msa.disks.discovery<p>**Overrides:**</p><p>SSD life left<br> - {#TYPE} MATCHES_REGEX `8`<br> - ITEM_PROTOTYPE REGEXP `SSD life left`<br> - DISCOVER</p> |
+|Enclosures discovery |<p>Discover enclosures.</p> |DEPENDENT |hpe.msa.enclosures.discovery |
+|Fans discovery |<p>Discover fans.</p> |DEPENDENT |hpe.msa.fans.discovery |
+|FRU discovery |<p>Discover FRU.</p> |DEPENDENT |hpe.msa.frus.discovery<p>**Filter**:</p> <p>- {#TYPE} NOT_MATCHES_REGEX `^(POWER_SUPPLY|RAID_IOM|CHASSIS_MIDPLANE)$`</p> |
+|Pools discovery |<p>Discover pools.</p> |DEPENDENT |hpe.msa.pools.discovery |
+|Ports discovery |<p>Discover ports.</p> |DEPENDENT |hpe.msa.ports.discovery |
+|Power supplies discovery |<p>Discover power supplies.</p> |DEPENDENT |hpe.msa.power_supplies.discovery |
+|Volumes discovery |<p>Discover volumes.</p> |DEPENDENT |hpe.msa.volumes.discovery |
## Items collected
|Group|Name|Description|Type|Key and additional info|
|-----|----|-----------|----|---------------------|
-|HPE |Get method errors |<p>A list of method errors from API requests.</p> |DEPENDENT |hpe.msa.data.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.['errors']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Product ID |<p>The product model identifier.</p> |DEPENDENT |hpe.msa.system.product_id<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['product-id']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System contact |<p>The name of the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System information |<p>A brief description of what the system is used for or how it is configured.</p> |DEPENDENT |hpe.msa.system.info<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-information']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System location |<p>The location of the system.</p> |DEPENDENT |hpe.msa.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-location']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System name |<p>The name of the storage system.</p> |DEPENDENT |hpe.msa.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Vendor name |<p>The vendor name.</p> |DEPENDENT |hpe.msa.system.vendor_name<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['vendor-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System health |<p>System health status.</p> |DEPENDENT |hpe.msa.system.health<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
+|HPE |Get system |<p>The system data.</p> |DEPENDENT |hpe.msa.get.system<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get FRU |<p>FRU data.</p> |DEPENDENT |hpe.msa.get.fru<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get fans |<p>Fans data.</p> |DEPENDENT |hpe.msa.get.fans<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get disks |<p>Disks data.</p> |DEPENDENT |hpe.msa.get.disks<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get enclosures |<p>Enclosures data.</p> |DEPENDENT |hpe.msa.get.enclosures<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get ports |<p>Ports data.</p> |DEPENDENT |hpe.msa.get.ports<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get power supplies |<p>Power supplies data.</p> |DEPENDENT |hpe.msa.get.power_supplies<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get pools |<p>Pools data.</p> |DEPENDENT |hpe.msa.get.pools<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get controllers |<p>Controllers data.</p> |DEPENDENT |hpe.msa.get.controllers<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get controller statistics |<p>Controllers statistics data.</p> |DEPENDENT |hpe.msa.get.controller_statistics<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get disk groups |<p>Disk groups data.</p> |DEPENDENT |hpe.msa.get.disks.groups<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get disk group statistics |<p>Disk groups statistics data.</p> |DEPENDENT |hpe.msa.disks.get.groups.statistics<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get volumes |<p>Volumes data.</p> |DEPENDENT |hpe.msa.get.volumes<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get volume statistics |<p>Volumes statistics data.</p> |DEPENDENT |hpe.msa.get.volumes.statistics<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get method errors |<p>A list of method errors from API requests.</p> |DEPENDENT |hpe.msa.get.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.['errors']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Product ID |<p>The product model identifier.</p> |DEPENDENT |hpe.msa.system.product_id<p>**Preprocessing**:</p><p>- JSONPATH: `$.['product-id']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System contact |<p>The name of the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System information |<p>A brief description of what the system is used for or how it is configured.</p> |DEPENDENT |hpe.msa.system.info<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-information']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System location |<p>The location of the system.</p> |DEPENDENT |hpe.msa.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-location']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System name |<p>The name of the storage system.</p> |DEPENDENT |hpe.msa.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Vendor name |<p>The vendor name.</p> |DEPENDENT |hpe.msa.system.vendor_name<p>**Preprocessing**:</p><p>- JSONPATH: `$.['vendor-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System health |<p>System health status.</p> |DEPENDENT |hpe.msa.system.health<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
|HPE |HPE MSA: Service ping |<p>Check if HTTP/HTTPS service accepts TCP connections.</p> |SIMPLE |net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}","{$HPE.MSA.API.PORT}"]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Firmware version |<p>Storage controller firmware version.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",firmware]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['sc-fw'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Part number |<p>Part number of the controller.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Serial number |<p>Storage controller serial number.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Health |<p>Controller health status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Status |<p>Storage controller status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Disks |<p>Number of disks in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disks]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['disks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Pools |<p>Number of pools in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",pools]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['number-of-storage-pools'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Disk groups |<p>Number of disk groups in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disk_groups]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['virtual-disks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IP address |<p>Controller network port IP address.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",ip_address]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['ip-address'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache memory size |<p>Controller cache memory size.</p> |DEPENDENT |hpe.msa.controllers.cache["{#CONTROLLER.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['cache-memory-size'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write utilization |<p>Percentage of write cache in use, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cache.write["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['write-cache-used'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['read-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['read-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['write-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['write-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: CPU utilization |<p>Percentage of time the CPU is busy, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cpu["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['cpu-load'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.iops.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['iops'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.read["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['number-of-reads'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['number-of-writes'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['bytes-per-second-numeric'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Uptime |<p>Number of seconds since the controller was restarted.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",uptime]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['power-on-time'].first()`</p> |
-|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['diskcount'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['pool-percentage'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Space free |<p>The free space in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['freespace-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
-|HPE |Disk group [{#NAME}]: Space total |<p>The capacity of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Get data |<p>The discovered controller data.</p> |DEPENDENT |hpe.msa.get.controllers["{#CONTROLLER.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Get statistics data |<p>The discovered controller statistics data.</p> |DEPENDENT |hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Firmware version |<p>Storage controller firmware version.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",firmware]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['sc-fw']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Part number |<p>Part number of the controller.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Serial number |<p>Storage controller serial number.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Health |<p>Controller health status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Status |<p>Storage controller status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Disks |<p>Number of disks in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disks]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Pools |<p>Number of pools in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",pools]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-storage-pools']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Disk groups |<p>Number of disk groups in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disk_groups]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['virtual-disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IP address |<p>Controller network port IP address.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",ip_address]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ip-address']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache memory size |<p>Controller cache memory size.</p> |DEPENDENT |hpe.msa.controllers.cache["{#CONTROLLER.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['cache-memory-size']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write utilization |<p>Percentage of write cache in use, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cache.write["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-used']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: CPU utilization |<p>Percentage of time the CPU is busy, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cpu["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['cpu-load']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.iops.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['iops']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.read["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-reads']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-writes']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['bytes-per-second-numeric']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-read-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-written-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Uptime |<p>Number of seconds since the controller was restarted.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",uptime]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-on-time']`</p> |
+|HPE |Disk group [{#NAME}]: Get data |<p>The discovered disk group data.</p> |DEPENDENT |hpe.msa.get.disks.groups["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['name'] == "{#NAME}")].first()`</p> |
+|HPE |Disk group [{#NAME}]: Get statistics data |<p>The discovered disk group statistics data.</p> |DEPENDENT |hpe.msa.get.disks.groups.statistics["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['name'] == "{#NAME}")].first()`</p> |
+|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['diskcount']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pool-percentage']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Space free |<p>The free space in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$['freespace-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
+|HPE |Disk group [{#NAME}]: Space total |<p>The capacity of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['size-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
|HPE |Disk group [{#NAME}]: Space utilization |<p>The space utilization percentage in the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",util]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`100-last(//hpe.msa.disks.groups.space["{#NAME}",free])/last(//hpe.msa.disks.groups.space["{#NAME}",total])*100` |
-|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['raidtype-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['iops'].first()`</p> |
-|HPE |Disk group [{#NAME}]: Average response time: Total |<p>Average response time for read and write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> |
-|HPE |Disk group [{#NAME}]: Average response time: Read |<p>Average response time for all read operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-read-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> |
-|HPE |Disk group [{#NAME}]: Average response time: Write |<p>Average response time for all write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",write]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-write-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> |
-|HPE |Disk group [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['number-of-reads'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Disk group [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['number-of-writes'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Disk group [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['bytes-per-second-numeric'].first()`</p> |
-|HPE |Disk group [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Disk group [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Pool [{#NAME}]: Health |<p>Pool health.</p> |DEPENDENT |hpe.msa.pools["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Pool [{#NAME}]: Space free |<p>The free space in the pool.</p> |DEPENDENT |hpe.msa.pools.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools'][?(@['name'] == "{#NAME}")].['total-avail-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
-|HPE |Pool [{#NAME}]: Space total |<p>The capacity of the pool.</p> |DEPENDENT |hpe.msa.pools.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools'][?(@['name'] == "{#NAME}")].['total-size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
+|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['raidtype-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['iops']`</p> |
+|HPE |Disk group [{#NAME}]: Average response time: Total |<p>Average response time for read and write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['avg-rsp-time']`</p><p>- MULTIPLIER: `0.000001`</p> |
+|HPE |Disk group [{#NAME}]: Average response time: Read |<p>Average response time for all read operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['avg-read-rsp-time']`</p><p>- MULTIPLIER: `0.000001`</p> |
+|HPE |Disk group [{#NAME}]: Average response time: Write |<p>Average response time for all write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",write]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['avg-write-rsp-time']`</p><p>- MULTIPLIER: `0.000001`</p> |
+|HPE |Disk group [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-reads']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Disk group [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-writes']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Disk group [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['bytes-per-second-numeric']`</p> |
+|HPE |Disk group [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-read-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Disk group [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-written-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Pool [{#NAME}]: Get data |<p>The discovered pool data.</p> |DEPENDENT |hpe.msa.get.pools["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['name'] == "{#NAME}")].first()`</p> |
+|HPE |Pool [{#NAME}]: Health |<p>Pool health.</p> |DEPENDENT |hpe.msa.pools["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Pool [{#NAME}]: Space free |<p>The free space in the pool.</p> |DEPENDENT |hpe.msa.pools.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$['total-avail-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
+|HPE |Pool [{#NAME}]: Space total |<p>The capacity of the pool.</p> |DEPENDENT |hpe.msa.pools.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$['total-size-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
|HPE |Pool [{#NAME}]: Space utilization |<p>The space utilization percentage in the pool.</p> |CALCULATED |hpe.msa.pools.space["{#NAME}",util]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`100-last(//hpe.msa.pools.space["{#NAME}",free])/last(//hpe.msa.pools.space["{#NAME}",total])*100` |
-|HPE |Volume [{#NAME}]: Space allocated |<p>The amount of space currently allocated to the volume.</p> |DEPENDENT |hpe.msa.volumes.space["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes'][?(@['volume-name'] == "{#NAME}")].['allocated-size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
-|HPE |Volume [{#NAME}]: Space total |<p>The capacity of the volume.</p> |DEPENDENT |hpe.msa.volumes.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes'][?(@['volume-name'] == "{#NAME}")].['size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
-|HPE |Volume [{#NAME}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['iops'].first()`</p> |
-|HPE |Volume [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['number-of-reads'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['number-of-writes'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['bytes-per-second-numeric'].first()`</p> |
-|HPE |Volume [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['read-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['read-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['write-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['write-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Health |<p>Enclosure health.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Status |<p>Enclosure status.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Midplane serial number |<p>Midplane serial number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",midplane_serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['midplane-serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Part number |<p>Enclosure part number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Model |<p>Enclosure model.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['model'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Power |<p>Enclosure power in watts.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",power]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['enclosure-power'].first()`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Health |<p>Power supply health status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Status |<p>Power supply status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Part number |<p>Power supply part number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Serial number |<p>Power supply serial number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Volume [{#NAME}]: Get data |<p>The discovered volume data.</p> |DEPENDENT |hpe.msa.get.volumes["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['volume-name'] == "{#NAME}")].first()`</p> |
+|HPE |Volume [{#NAME}]: Get statistics data |<p>The discovered volume statistics data.</p> |DEPENDENT |hpe.msa.get.volumes.statistics["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['volume-name'] == "{#NAME}")].first()`</p> |
+|HPE |Volume [{#NAME}]: Space allocated |<p>The amount of space currently allocated to the volume.</p> |DEPENDENT |hpe.msa.volumes.space["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$['allocated-size-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
+|HPE |Volume [{#NAME}]: Space total |<p>The capacity of the volume.</p> |DEPENDENT |hpe.msa.volumes.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['size-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
+|HPE |Volume [{#NAME}]: IOPS, total rate |<p>Total input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['iops']`</p> |
+|HPE |Volume [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-reads']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-writes']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['bytes-per-second-numeric']`</p> |
+|HPE |Volume [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-read-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-written-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Get data |<p>The discovered enclosure data.</p> |DEPENDENT |hpe.msa.get.enclosures["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Health |<p>Enclosure health.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Status |<p>Enclosure status.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Midplane serial number |<p>Midplane serial number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",midplane_serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['midplane-serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Part number |<p>Enclosure part number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Model |<p>Enclosure model.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['model']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Power |<p>Enclosure power in watts.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",power]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosure-power']`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Get data |<p>The discovered power supply data.</p> |DEPENDENT |hpe.msa.get.power_supplies["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Health |<p>Power supply health status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Status |<p>Power supply status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Part number |<p>Power supply part number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Serial number |<p>Power supply serial number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
|HPE |Power supply [{#DURABLE.ID}]: Temperature |<p>Power supply temperature.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",temperature]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['dctemp'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NAME}]: Health |<p>Port health status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NAME}]: Status |<p>Port status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NAME}]: Type |<p>Port type.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['port-type-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Fan [{#DURABLE.ID}]: Health |<p>Fan health status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Fan [{#DURABLE.ID}]: Status |<p>Fan status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Fan [{#DURABLE.ID}]: Speed |<p>Fan speed (revolutions per minute).</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",speed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans'][?(@['durable-id'] == "{#DURABLE.ID}")].['speed'].first()`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Health |<p>Disk health status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Temperature status |<p>Disk temperature status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['temperature-status-numeric'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- IN_RANGE: `1 3`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Temperature |<p>Temperature of the disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['temperature-numeric'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Type |<p>Disk type:</p><p>SAS: Enterprise SAS spinning disk.</p><p>SAS MDL: Midline SAS spinning disk.</p><p>SSD SAS: SAS solit-state disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['description-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Disk group |<p>If the disk is in a disk group, the disk group name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",group]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['disk-group'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Storage pool |<p>If the disk is in a pool, the pool name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",pool]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['storage-pool-name'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Vendor |<p>Disk vendor.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",vendor]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['vendor'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Model |<p>Disk model.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['model'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Serial number |<p>Disk serial number.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Space total |<p>Total size of the disk.</p> |DEPENDENT |hpe.msa.disks.space["{#DURABLE.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
-|HPE |Disk [{#DURABLE.ID}]: SSD life left |<p>The percentage of disk life remaining.</p> |DEPENDENT |hpe.msa.disks.ssd["{#DURABLE.ID}",life_left]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['ssd-life-left-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Status |<p>{#DESCRIPTION}. FRU status:</p><p>Absent: Component is not present.</p><p>Fault: At least one subcomponent has a fault.</p><p>Invalid data: For a power supply module, the EEPROM is improperly programmed.</p><p>OK: All subcomponents are operating normally.</p><p>Not available: Status is not available.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus'][?(@['name'] == "{#TYPE}" && @['fru-location'] == "{#LOCATION}")].['fru-status'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- JAVASCRIPT: `The text is too long. Please see the template.`</p> |
-|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Part number |<p>{#DESCRIPTION}. Part number of the FRU.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus'][?(@['name'] == "{#TYPE}" && @['fru-location'] == "{#LOCATION}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Serial number |<p>{#DESCRIPTION}. FRU serial number.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus'][?(@['name'] == "{#TYPE}" && @['fru-location'] == "{#LOCATION}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|Zabbix raw items |HPE MSA: Get data |<p>The JSON with result of API requests.</p> |SCRIPT |hpe.msa.data.get<p>**Expression**:</p>`The text is too long. Please see the template.` |
+|HPE |Port [{#NAME}]: Get data |<p>The discovered port data.</p> |DEPENDENT |hpe.msa.get.ports["{#NAME}",,data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['port'] == "{#NAME}")].first()`</p> |
+|HPE |Port [{#NAME}]: Health |<p>Port health status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Port [{#NAME}]: Status |<p>Port status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Port [{#NAME}]: Type |<p>Port type.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['port-type-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Get data |<p>The discovered fan data.</p> |DEPENDENT |hpe.msa.get.fans["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Health |<p>Fan health status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Status |<p>Fan status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Speed |<p>Fan speed (revolutions per minute).</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",speed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['speed']`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Get data |<p>The discovered disk data.</p> |DEPENDENT |hpe.msa.get.disks["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Health |<p>Disk health status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Temperature status |<p>Disk temperature status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['temperature-status-numeric']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- IN_RANGE: `1 3`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Temperature |<p>Temperature of the disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['temperature-numeric']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Type |<p>Disk type:</p><p>SAS: Enterprise SAS spinning disk.</p><p>SAS MDL: Midline SAS spinning disk.</p><p>SSD SAS: SAS solit-state disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['description-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Disk group |<p>If the disk is in a disk group, the disk group name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",group]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Storage pool |<p>If the disk is in a pool, the pool name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",pool]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['storage-pool-name']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Vendor |<p>Disk vendor.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",vendor]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['vendor']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Model |<p>Disk model.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['model']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Serial number |<p>Disk serial number.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Space total |<p>Total size of the disk.</p> |DEPENDENT |hpe.msa.disks.space["{#DURABLE.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['size-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> |
+|HPE |Disk [{#DURABLE.ID}]: SSD life left |<p>The percentage of disk life remaining.</p> |DEPENDENT |hpe.msa.disks.ssd["{#DURABLE.ID}",life_left]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ssd-life-left-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Get data |<p>The discovered FRU data.</p> |DEPENDENT |hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['name'] == "{#TYPE}")].first()`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Status |<p>{#DESCRIPTION}. FRU status:</p><p>Absent: Component is not present.</p><p>Fault: At least one subcomponent has a fault.</p><p>Invalid data: For a power supply module, the EEPROM is improperly programmed.</p><p>OK: All subcomponents are operating normally.</p><p>Not available: Status is not available.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fru-status']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- JAVASCRIPT: `The text is too long. Please see the template.`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Part number |<p>{#DESCRIPTION}. Part number of the FRU.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Serial number |<p>{#DESCRIPTION}. FRU serial number.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Zabbix raw items |HPE MSA: Get data |<p>The JSON with result of API requests.</p> |SCRIPT |hpe.msa.get.data<p>**Expression**:</p>`The text is too long. Please see the template.` |
## Triggers
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
-|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.data.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> |
+|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.get.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> |
|System health is in degraded state |<p>System health is in degraded state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=1` |WARNING | |
|System health is in fault state |<p>System health is in fault state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=2` |AVERAGE | |
|System health is in unknown state |<p>System health is in unknown state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=3` |INFO | |
diff --git a/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml b/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml
index 536ef859e5b..fbadda019c1 100644
--- a/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml
+++ b/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-07-22T08:40:09Z'
+ date: '2022-09-16T11:01:48Z'
groups:
-
uuid: 7c2cb727f85b492d88cd56e17127c64d
@@ -28,50 +28,76 @@ zabbix_export:
name: Templates/SAN
items:
-
- uuid: 51d0ae1b4663471d868c27ccd2fb4fed
- name: 'Get method errors'
+ uuid: da724e20acee406b8dce3a1be24945a8
+ name: 'Get disk group statistics'
type: DEPENDENT
- key: hpe.msa.data.errors
+ key: hpe.msa.disks.get.groups.statistics
delay: '0'
- history: 7d
+ history: '0'
trends: '0'
value_type: TEXT
- description: 'A list of method errors from API requests.'
+ description: 'Disk groups statistics data.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.[''errors'']'
+ - '$.[''disk-group-statistics'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
-
- type: DISCARD_UNCHANGED_HEARTBEAT
+ tag: component
+ value: raw
+ -
+ uuid: 4a9a463f471c4c3bba031acab3c4d72e
+ name: 'Get controllers'
+ type: DEPENDENT
+ key: hpe.msa.get.controllers
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Controllers data.'
+ preprocessing:
+ -
+ type: JSONPATH
parameters:
- - 1d
+ - '$.[''controllers'']'
+ error_handler: DISCARD_VALUE
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.data
tags:
-
tag: component
- value: errors
- triggers:
+ value: raw
+ -
+ uuid: 54c0f623616a4f5c9505c0ae0ff6a85b
+ name: 'Get controller statistics'
+ type: DEPENDENT
+ key: hpe.msa.get.controller_statistics
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Controllers statistics data.'
+ preprocessing:
-
- uuid: 7f80562a0b4f4329be454c418de3f517
- expression: 'length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.data.errors))>0'
- name: 'There are errors in method requests to API'
- priority: AVERAGE
- description: 'There are errors in method requests to API.'
- dependencies:
- -
- name: 'Service is down or unavailable'
- expression: 'max(/HPE MSA 2040 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}","{$HPE.MSA.API.PORT}"],5m)=0'
- tags:
- -
- tag: scope
- value: availability
+ type: JSONPATH
+ parameters:
+ - '$.[''controller-statistics'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
-
uuid: e07e09dbcdd44f509a06343c9a53a455
name: 'HPE MSA: Get data'
type: SCRIPT
- key: hpe.msa.data.get
+ key: hpe.msa.get.data
history: '0'
trends: '0'
value_type: TEXT
@@ -216,6 +242,288 @@ zabbix_export:
tag: component
value: raw
-
+ uuid: d4c534635bb74c2e8db99d68df6f9da2
+ name: 'Get disks'
+ type: DEPENDENT
+ key: hpe.msa.get.disks
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Disks data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''disks'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 3dc7a4c4e70c48f995d7d65c1652198a
+ name: 'Get disk groups'
+ type: DEPENDENT
+ key: hpe.msa.get.disks.groups
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Disk groups data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''disk-groups'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 2e94a9c8fe5f4d6c90458b13cf1f6d64
+ name: 'Get enclosures'
+ type: DEPENDENT
+ key: hpe.msa.get.enclosures
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Enclosures data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''enclosures'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 51d0ae1b4663471d868c27ccd2fb4fed
+ name: 'Get method errors'
+ type: DEPENDENT
+ key: hpe.msa.get.errors
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: TEXT
+ description: 'A list of method errors from API requests.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''errors'']'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1d
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: errors
+ triggers:
+ -
+ uuid: 7f80562a0b4f4329be454c418de3f517
+ expression: 'length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.get.errors))>0'
+ name: 'There are errors in method requests to API'
+ priority: AVERAGE
+ description: 'There are errors in method requests to API.'
+ dependencies:
+ -
+ name: 'Service is down or unavailable'
+ expression: 'max(/HPE MSA 2040 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}","{$HPE.MSA.API.PORT}"],5m)=0'
+ tags:
+ -
+ tag: scope
+ value: availability
+ -
+ uuid: 2b356e770025451e94e899123a2efc1b
+ name: 'Get fans'
+ type: DEPENDENT
+ key: hpe.msa.get.fans
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Fans data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''fans'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: ae00d12bb47e4c25b79a47ca8dc49538
+ name: 'Get FRU'
+ type: DEPENDENT
+ key: hpe.msa.get.fru
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'FRU data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''frus'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 3151c9e9e3bf4e6c9305848cfd2c77c5
+ name: 'Get pools'
+ type: DEPENDENT
+ key: hpe.msa.get.pools
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Pools data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''pools'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 2c4012cbf947439f8938b9d432257067
+ name: 'Get ports'
+ type: DEPENDENT
+ key: hpe.msa.get.ports
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Ports data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''ports'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: a24264fada444ed68f48d8b2ff17ab15
+ name: 'Get power supplies'
+ type: DEPENDENT
+ key: hpe.msa.get.power_supplies
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Power supplies data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''power-supplies'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: f9ec5e52bf22476d997c9ec5c445f11b
+ name: 'Get system'
+ type: DEPENDENT
+ key: hpe.msa.get.system
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The system data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.system[0]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: e67d5b42bf1b431ab9b1659377195d82
+ name: 'Get volumes'
+ type: DEPENDENT
+ key: hpe.msa.get.volumes
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Volumes data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''volumes'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: d6ef8a24c09a478c817a1a7121bd383f
+ name: 'Get volume statistics'
+ type: DEPENDENT
+ key: hpe.msa.get.volumes.statistics
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Volumes statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''volume-statistics'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
uuid: 802692ec1429407a8bbb55e338959c0b
name: 'System contact'
type: DEPENDENT
@@ -230,13 +538,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-contact'']'
+ - '$.[''system-contact'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -255,11 +563,11 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''health-numeric'']'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -313,13 +621,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-information'']'
+ - '$.[''system-information'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -339,13 +647,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-location'']'
+ - '$.[''system-location'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -365,13 +673,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-name'']'
+ - '$.[''system-name'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -391,13 +699,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''product-id'']'
+ - '$.[''product-id'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -417,13 +725,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''vendor-name'']'
+ - '$.[''vendor-name'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -479,13 +787,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''read-cache-hits''].first()'
+ - '$.[''read-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -505,13 +813,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''read-cache-misses''].first()'
+ - '$.[''read-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -531,13 +839,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''write-cache-hits''].first()'
+ - '$.[''write-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -557,13 +865,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''write-cache-misses''].first()'
+ - '$.[''write-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -584,9 +892,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''write-cache-used''].first()'
+ - '$.[''write-cache-used'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -607,7 +915,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''cache-memory-size''].first()'
+ - '$.[''cache-memory-size'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -617,7 +925,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -638,9 +946,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''cpu-load''].first()'
+ - '$.[''cpu-load'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -674,13 +982,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''data-read-numeric''].first()'
+ - '$.[''data-read-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -701,9 +1009,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''bytes-per-second-numeric''].first()'
+ - '$.[''bytes-per-second-numeric'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -725,13 +1033,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''data-written-numeric''].first()'
+ - '$.[''data-written-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -753,13 +1061,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''number-of-reads''].first()'
+ - '$.[''number-of-reads'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -780,9 +1088,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''iops''].first()'
+ - '$.[''iops'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -804,13 +1112,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''number-of-writes''].first()'
+ - '$.[''number-of-writes'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -830,13 +1138,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''disks''].first()'
+ - '$.[''disks'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -856,13 +1164,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''virtual-disks''].first()'
+ - '$.[''virtual-disks'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -884,13 +1192,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''sc-fw''].first()'
+ - '$.[''sc-fw'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -912,7 +1220,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -920,7 +1228,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -988,13 +1296,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''ip-address''].first()'
+ - '$.[''ip-address'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1016,13 +1324,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1042,13 +1350,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''number-of-storage-pools''].first()'
+ - '$.[''number-of-storage-pools'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1070,13 +1378,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1098,13 +1406,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1139,9 +1447,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''power-on-time''].first()'
+ - '$.[''power-on-time'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1161,6 +1469,60 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: 42b163abb92b42a3921364222807843b
+ name: 'Controller [{#CONTROLLER.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered controller data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.controllers
+ tags:
+ -
+ tag: component
+ value: controller
+ -
+ tag: component
+ value: raw
+ -
+ tag: controller
+ value: '{#CONTROLLER.ID}'
+ -
+ uuid: 682fb8c5a4bd40889dcb76070aaefb06
+ name: 'Controller [{#CONTROLLER.ID}]: Get statistics data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered controller statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.controller_statistics
+ tags:
+ -
+ tag: component
+ value: controller
+ -
+ tag: component
+ value: raw
+ -
+ tag: controller
+ value: '{#CONTROLLER.ID}'
graph_prototypes:
-
uuid: 93aeac1a193e43d3a93a3892bd26b0ff
@@ -1238,7 +1600,7 @@ zabbix_export:
host: 'HPE MSA 2040 Storage by HTTP'
key: 'hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.controllers
lld_macro_paths:
-
lld_macro: '{#CONTROLLER.ID}'
@@ -1246,16 +1608,6 @@ zabbix_export:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''controllers'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 16b9a9b6da11463d865cb2b59f77f376
name: 'Disks discovery'
@@ -1277,7 +1629,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''size-numeric''].first()'
+ - '$.[''size-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1287,7 +1639,7 @@ zabbix_export:
parameters:
- '512'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1309,13 +1661,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''ssd-life-left-numeric''].first()'
+ - '$.[''ssd-life-left-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1337,14 +1689,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''disk-group''].first()'
+ - '$.[''disk-group'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1366,7 +1718,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric''].first()'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -1374,7 +1726,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1430,13 +1782,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''model''].first()'
+ - '$.[''model'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1458,14 +1810,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''storage-pool-name''].first()'
+ - '$.[''storage-pool-name'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1487,13 +1839,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1514,14 +1866,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''temperature-numeric''].first()'
+ - '$.[''temperature-numeric'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1543,7 +1895,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''temperature-status-numeric''].first()'
+ - '$.[''temperature-status-numeric'']'
error_handler: DISCARD_VALUE
-
type: IN_RANGE
@@ -1557,7 +1909,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1617,13 +1969,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''description-numeric''].first()'
+ - '$.[''description-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1645,13 +1997,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''vendor''].first()'
+ - '$.[''vendor'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1659,8 +2011,35 @@ zabbix_export:
-
tag: disk
value: '{#DURABLE.ID}'
+ -
+ uuid: e5faef5f8750462b8d676a74fa67b97c
+ name: 'Disk [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered disk data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.disks
+ tags:
+ -
+ tag: component
+ value: disk
+ -
+ tag: component
+ value: raw
+ -
+ tag: disk
+ value: '{#DURABLE.ID}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.disks
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
@@ -1668,16 +2047,6 @@ zabbix_export:
-
lld_macro: '{#TYPE}'
path: '$.[''description-numeric'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''disks'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
overrides:
-
name: 'SSD life left'
@@ -1693,7 +2062,6 @@ zabbix_export:
operationobject: ITEM_PROTOTYPE
operator: REGEXP
value: 'SSD life left'
- status: ENABLED
discover: DISCOVER
-
uuid: dd952ff876134376baef061dc260884c
@@ -1717,13 +2085,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''avg-read-rsp-time''].first()'
+ - '$.[''avg-read-rsp-time'']'
-
type: MULTIPLIER
parameters:
- '0.000001'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1745,13 +2113,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''avg-rsp-time''].first()'
+ - '$.[''avg-rsp-time'']'
-
type: MULTIPLIER
parameters:
- '0.000001'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1773,13 +2141,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''avg-write-rsp-time''].first()'
+ - '$.[''avg-write-rsp-time'']'
-
type: MULTIPLIER
parameters:
- '0.000001'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1801,13 +2169,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''data-read-numeric''].first()'
+ - '$.[''data-read-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1828,9 +2196,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''bytes-per-second-numeric''].first()'
+ - '$.[''bytes-per-second-numeric'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1852,13 +2220,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''data-written-numeric''].first()'
+ - '$.[''data-written-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1880,13 +2248,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''number-of-reads''].first()'
+ - '$.[''number-of-reads'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1907,9 +2275,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''iops''].first()'
+ - '$.[''iops'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1931,13 +2299,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''number-of-writes''].first()'
+ - '$.[''number-of-writes'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1959,13 +2327,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''raidtype-numeric''].first()'
+ - '$.[''raidtype-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -1986,7 +2354,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''freespace-numeric''].first()'
+ - '$[''freespace-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1996,7 +2364,7 @@ zabbix_export:
parameters:
- '512'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2017,13 +2385,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''pool-percentage''].first()'
+ - '$.[''pool-percentage'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2044,7 +2412,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''size-numeric''].first()'
+ - '$.[''size-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2054,7 +2422,7 @@ zabbix_export:
parameters:
- '512'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2123,14 +2491,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''diskcount''].first()'
+ - '$.[''diskcount'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2152,7 +2520,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -2160,7 +2528,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2231,13 +2599,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2349,6 +2717,60 @@ zabbix_export:
-
tag: scope
value: performance
+ -
+ uuid: 20c557ea7c4e439c8c8c7fe5f8bb3356
+ name: 'Disk group [{#NAME}]: Get statistics data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered disk group statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.disks.get.groups.statistics
+ tags:
+ -
+ tag: component
+ value: disk-group
+ -
+ tag: component
+ value: raw
+ -
+ tag: disk-group
+ value: '{#NAME}'
+ -
+ uuid: 42666f013abf4441b85d94b89ed6cac1
+ name: 'Disk group [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered disk group data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.disks.groups
+ tags:
+ -
+ tag: component
+ value: disk-group
+ -
+ tag: component
+ value: raw
+ -
+ tag: disk-group
+ value: '{#NAME}'
graph_prototypes:
-
uuid: 1d5b8a7246a845678a938da75b7e32cc
@@ -2411,21 +2833,11 @@ zabbix_export:
host: 'HPE MSA 2040 Storage by HTTP'
key: 'hpe.msa.disks.groups.space["{#NAME}",total]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.disks.groups
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''disk-groups'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: c6713507122242988dc9fae6e77bdff6
name: 'Enclosures discovery'
@@ -2448,7 +2860,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -2456,7 +2868,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2512,13 +2924,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''midplane-serial-number''].first()'
+ - '$.[''midplane-serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2540,13 +2952,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''model''].first()'
+ - '$.[''model'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2568,13 +2980,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2596,9 +3008,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''enclosure-power''].first()'
+ - '$.[''enclosure-power'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2620,7 +3032,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '6'
-
@@ -2628,7 +3040,7 @@ zabbix_export:
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2690,22 +3102,39 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: db3050d98b0548acbc3cf318ce71e9e3
+ name: 'Enclosure [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered enclosure data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.enclosures
+ tags:
+ -
+ tag: component
+ value: enclosure
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#DURABLE.ID}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.enclosures
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''enclosures'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 6900c1efa2b3456ead4ae5e5a033700e
name: 'Fans discovery'
@@ -2728,7 +3157,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''fans''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -2736,7 +3165,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2791,9 +3220,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''fans''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''speed''].first()'
+ - '$.[''speed'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2815,13 +3244,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''fans''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2863,6 +3292,33 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: 8fe64d81153d430c8aa862394a384172
+ name: 'Fan [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered fan data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.fans
+ tags:
+ -
+ tag: component
+ value: fan
+ -
+ tag: component
+ value: raw
+ -
+ tag: fan
+ value: '{#DURABLE.ID}'
graph_prototypes:
-
uuid: 44c2c9cdec6247cf8f4d0e2bd7e0e372
@@ -2874,24 +3330,11 @@ zabbix_export:
host: 'HPE MSA 2040 Storage by HTTP'
key: 'hpe.msa.fans["{#DURABLE.ID}",speed]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.fans
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- -
- lld_macro: '{#NAME}'
- path: '$.[''name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''fans'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: ec7d856fd690401888f93f8d9c135828
name: 'FRU discovery'
@@ -2921,13 +3364,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''frus''][?(@[''name''] == "{#TYPE}" && @[''fru-location''] == "{#LOCATION}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
tags:
-
tag: component
@@ -2949,13 +3392,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''frus''][?(@[''name''] == "{#TYPE}" && @[''fru-location''] == "{#LOCATION}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
tags:
-
tag: component
@@ -2984,7 +3427,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''frus''][?(@[''name''] == "{#TYPE}" && @[''fru-location''] == "{#LOCATION}")].[''fru-status''].first()'
+ - '$.[''fru-status'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3010,7 +3453,7 @@ zabbix_export:
}
return 6;
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
tags:
-
tag: component
@@ -3042,8 +3485,35 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: e65d0d09a9244e46b7fd16e89128d50b
+ name: 'FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered FRU data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''name''] == "{#TYPE}")].first()'
+ master_item:
+ key: hpe.msa.get.fru
+ tags:
+ -
+ tag: component
+ value: fru
+ -
+ tag: component
+ value: raw
+ -
+ tag: fru
+ value: 'Enclosure {#ENCLOSURE.ID}: {#LOCATION}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.fru
lld_macro_paths:
-
lld_macro: '{#DESCRIPTION}'
@@ -3057,16 +3527,6 @@ zabbix_export:
-
lld_macro: '{#TYPE}'
path: '$.[''name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''frus'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 082c1cfb851548928911b9ab69f6f75e
name: 'Pools discovery'
@@ -3076,6 +3536,33 @@ zabbix_export:
description: 'Discover pools.'
item_prototypes:
-
+ uuid: 227c8ed5f3514aa886e27f28b49fe7fd
+ name: 'Pool [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered pool data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.pools
+ tags:
+ -
+ tag: component
+ value: pool
+ -
+ tag: component
+ value: raw
+ -
+ tag: pool
+ value: '{#NAME}'
+ -
uuid: 2a8b8ebd3bbb4e4e851602e1a84bb0da
name: 'Pool [{#NAME}]: Space free'
type: DEPENDENT
@@ -3087,7 +3574,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''pools''][?(@[''name''] == "{#NAME}")].[''total-avail-numeric''].first()'
+ - '$[''total-avail-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3097,7 +3584,7 @@ zabbix_export:
parameters:
- '512'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -3118,7 +3605,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''pools''][?(@[''name''] == "{#NAME}")].[''total-size-numeric''].first()'
+ - '$[''total-size-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3128,7 +3615,7 @@ zabbix_export:
parameters:
- '512'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -3199,7 +3686,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''pools''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3207,7 +3694,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -3266,21 +3753,11 @@ zabbix_export:
host: 'HPE MSA 2040 Storage by HTTP'
key: 'hpe.msa.pools.space["{#NAME}",total]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.pools
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''pools'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 09754bd16c674ff08fad52f060035961
name: 'Ports discovery'
@@ -3290,6 +3767,33 @@ zabbix_export:
description: 'Discover ports.'
item_prototypes:
-
+ uuid: c0643381ec274865826cddd3ce598326
+ name: 'Port [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered port data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''port''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.ports
+ tags:
+ -
+ tag: component
+ value: port
+ -
+ tag: component
+ value: raw
+ -
+ tag: port
+ value: '{#NAME}'
+ -
uuid: 27564169c2b04cba924162a5630bbd4b
name: 'Port [{#NAME}]: Health'
type: DEPENDENT
@@ -3303,7 +3807,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''ports''][?(@[''port''] == "{#NAME}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3311,7 +3815,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
tags:
-
tag: component
@@ -3367,7 +3871,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''ports''][?(@[''port''] == "{#NAME}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3375,7 +3879,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
tags:
-
tag: component
@@ -3431,13 +3935,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''ports''][?(@[''port''] == "{#NAME}")].[''port-type-numeric''].first()'
+ - '$.[''port-type-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
tags:
-
tag: component
@@ -3446,21 +3950,11 @@ zabbix_export:
tag: port
value: '{#NAME}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.ports
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''port'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''ports'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 2cf7945eea95414a88ce572f4c075bb1
name: 'Power supplies discovery'
@@ -3470,6 +3964,33 @@ zabbix_export:
description: 'Discover power supplies.'
item_prototypes:
-
+ uuid: 029b4173b22f4359b5ee6013a524dd4f
+ name: 'Power supply [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered power supply data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.power_supplies
+ tags:
+ -
+ tag: component
+ value: power-supply
+ -
+ tag: component
+ value: raw
+ -
+ tag: power-supply
+ value: '{#DURABLE.ID}'
+ -
uuid: 4e4f593738fb451cbfd1589a3054387e
name: 'Power supply [{#DURABLE.ID}]: Health'
type: DEPENDENT
@@ -3483,7 +4004,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3491,7 +4012,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3547,13 +4068,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3575,13 +4096,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3603,7 +4124,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3611,7 +4132,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3672,7 +4193,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3691,21 +4212,11 @@ zabbix_export:
host: 'HPE MSA 2040 Storage by HTTP'
key: 'hpe.msa.power_supplies["{#DURABLE.ID}",temperature]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.power_supplies
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''power-supplies'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: faae0d9be7ea4531a584a52002317cc9
name: 'Volumes discovery'
@@ -3715,6 +4226,60 @@ zabbix_export:
description: 'Discover volumes.'
item_prototypes:
-
+ uuid: 971c984b8fc44f05b24a30d11a482b3a
+ name: 'Volume [{#NAME}]: Get statistics data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered volume statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''volume-name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.volumes.statistics
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: volume
+ -
+ tag: volume
+ value: '{#NAME}'
+ -
+ uuid: 2515db4e86d7486481583114c067d522
+ name: 'Volume [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.volumes["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered volume data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''volume-name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.volumes
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: volume
+ -
+ tag: volume
+ value: '{#NAME}'
+ -
uuid: f9818ae47544417bb270af4f8f014c0a
name: 'Volume [{#NAME}]: Cache: Read hits, rate'
type: DEPENDENT
@@ -3726,13 +4291,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''read-cache-hits''].first()'
+ - '$.[''read-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3752,13 +4317,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''read-cache-misses''].first()'
+ - '$.[''read-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3778,13 +4343,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''write-cache-hits''].first()'
+ - '$.[''write-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3804,13 +4369,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''write-cache-misses''].first()'
+ - '$.[''write-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3832,13 +4397,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''data-read-numeric''].first()'
+ - '$.[''data-read-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3859,9 +4424,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''bytes-per-second-numeric''].first()'
+ - '$.[''bytes-per-second-numeric'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3883,13 +4448,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''data-written-numeric''].first()'
+ - '$.[''data-written-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3911,13 +4476,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''number-of-reads''].first()'
+ - '$.[''number-of-reads'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3933,14 +4498,14 @@ zabbix_export:
delay: '0'
history: 7d
units: '!iops'
- description: 'Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
+ description: 'Total input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''iops''].first()'
+ - '$.[''iops'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3962,13 +4527,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''number-of-writes''].first()'
+ - '$.[''number-of-writes'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3989,7 +4554,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volumes''][?(@[''volume-name''] == "{#NAME}")].[''allocated-size-numeric''].first()'
+ - '$[''allocated-size-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3999,7 +4564,7 @@ zabbix_export:
parameters:
- '512'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -4020,7 +4585,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volumes''][?(@[''volume-name''] == "{#NAME}")].[''size-numeric''].first()'
+ - '$.[''size-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4030,7 +4595,7 @@ zabbix_export:
parameters:
- '512'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -4112,21 +4677,11 @@ zabbix_export:
host: 'HPE MSA 2040 Storage by HTTP'
key: 'hpe.msa.volumes.space["{#NAME}",total]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.volumes
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''volume-name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''volumes'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
tags:
-
tag: class
diff --git a/templates/san/hpe_msa2060_http/README.md b/templates/san/hpe_msa2060_http/README.md
index 61e3cfde16b..5b14dfb53a4 100644
--- a/templates/san/hpe_msa2060_http/README.md
+++ b/templates/san/hpe_msa2060_http/README.md
@@ -49,134 +49,161 @@ There are no template links in this template.
|Name|Description|Type|Key and additional info|
|----|-----------|----|----|
-|Controllers discovery |<p>Discover controllers.</p> |DEPENDENT |hpe.msa.controllers.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Disks discovery |<p>Discover disks.</p> |DEPENDENT |hpe.msa.disks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Overrides:**</p><p>SSD life left<br> - {#TYPE} MATCHES_REGEX `8`<br> - ITEM_PROTOTYPE REGEXP `SSD life left` - DISCOVER</p> |
-|Enclosures discovery |<p>Discover enclosures.</p> |DEPENDENT |hpe.msa.enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Fans discovery |<p>Discover fans.</p> |DEPENDENT |hpe.msa.fans.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|FRU discovery |<p>Discover FRU.</p> |DEPENDENT |hpe.msa.frus.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p> <p>- {#TYPE} NOT_MATCHES_REGEX `^(POWER_SUPPLY|RAID_IOM|CHASSIS_MIDPLANE)$`</p> |
-|Pools discovery |<p>Discover pools.</p> |DEPENDENT |hpe.msa.pools.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Ports discovery |<p>Discover ports.</p> |DEPENDENT |hpe.msa.ports.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Power supplies discovery |<p>Discover power supplies.</p> |DEPENDENT |hpe.msa.power_supplies.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Volumes discovery |<p>Discover volumes.</p> |DEPENDENT |hpe.msa.volumes.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Controllers discovery |<p>Discover controllers.</p> |DEPENDENT |hpe.msa.controllers.discovery |
+|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery |
+|Disks discovery |<p>Discover disks.</p> |DEPENDENT |hpe.msa.disks.discovery<p>**Overrides:**</p><p>SSD life left<br> - {#TYPE} MATCHES_REGEX `8`<br> - ITEM_PROTOTYPE REGEXP `SSD life left`<br> - DISCOVER</p> |
+|Enclosures discovery |<p>Discover enclosures.</p> |DEPENDENT |hpe.msa.enclosures.discovery |
+|Fans discovery |<p>Discover fans.</p> |DEPENDENT |hpe.msa.fans.discovery |
+|FRU discovery |<p>Discover FRU.</p> |DEPENDENT |hpe.msa.frus.discovery<p>**Filter**:</p> <p>- {#TYPE} NOT_MATCHES_REGEX `^(POWER_SUPPLY|RAID_IOM|CHASSIS_MIDPLANE)$`</p> |
+|Pools discovery |<p>Discover pools.</p> |DEPENDENT |hpe.msa.pools.discovery |
+|Ports discovery |<p>Discover ports.</p> |DEPENDENT |hpe.msa.ports.discovery |
+|Power supplies discovery |<p>Discover power supplies.</p> |DEPENDENT |hpe.msa.power_supplies.discovery |
+|Volumes discovery |<p>Discover volumes.</p> |DEPENDENT |hpe.msa.volumes.discovery |
## Items collected
|Group|Name|Description|Type|Key and additional info|
|-----|----|-----------|----|---------------------|
-|HPE |Get method errors |<p>A list of method errors from API requests.</p> |DEPENDENT |hpe.msa.data.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.['errors']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Product ID |<p>The product model identifier.</p> |DEPENDENT |hpe.msa.system.product_id<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['product-id']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System contact |<p>The name of the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System information |<p>A brief description of what the system is used for or how it is configured.</p> |DEPENDENT |hpe.msa.system.info<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-information']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System location |<p>The location of the system.</p> |DEPENDENT |hpe.msa.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-location']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System name |<p>The name of the storage system.</p> |DEPENDENT |hpe.msa.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Vendor name |<p>The vendor name.</p> |DEPENDENT |hpe.msa.system.vendor_name<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['vendor-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |System health |<p>System health status.</p> |DEPENDENT |hpe.msa.system.health<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
+|HPE |Get system |<p>The system data.</p> |DEPENDENT |hpe.msa.get.system<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get FRU |<p>FRU data.</p> |DEPENDENT |hpe.msa.get.fru<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get fans |<p>Fans data.</p> |DEPENDENT |hpe.msa.get.fans<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get disks |<p>Disks data.</p> |DEPENDENT |hpe.msa.get.disks<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get enclosures |<p>Enclosures data.</p> |DEPENDENT |hpe.msa.get.enclosures<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get ports |<p>Ports data.</p> |DEPENDENT |hpe.msa.get.ports<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get power supplies |<p>Power supplies data.</p> |DEPENDENT |hpe.msa.get.power_supplies<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get pools |<p>Pools data.</p> |DEPENDENT |hpe.msa.get.pools<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get controllers |<p>Controllers data.</p> |DEPENDENT |hpe.msa.get.controllers<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get controller statistics |<p>Controllers statistics data.</p> |DEPENDENT |hpe.msa.get.controller_statistics<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get disk groups |<p>Disk groups data.</p> |DEPENDENT |hpe.msa.get.disks.groups<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get disk group statistics |<p>Disk groups statistics data.</p> |DEPENDENT |hpe.msa.disks.get.groups.statistics<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get volumes |<p>Volumes data.</p> |DEPENDENT |hpe.msa.get.volumes<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get volume statistics |<p>Volumes statistics data.</p> |DEPENDENT |hpe.msa.get.volumes.statistics<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |Get method errors |<p>A list of method errors from API requests.</p> |DEPENDENT |hpe.msa.get.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.['errors']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Product ID |<p>The product model identifier.</p> |DEPENDENT |hpe.msa.system.product_id<p>**Preprocessing**:</p><p>- JSONPATH: `$.['product-id']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System contact |<p>The name of the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System information |<p>A brief description of what the system is used for or how it is configured.</p> |DEPENDENT |hpe.msa.system.info<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-information']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System location |<p>The location of the system.</p> |DEPENDENT |hpe.msa.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-location']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System name |<p>The name of the storage system.</p> |DEPENDENT |hpe.msa.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.['system-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Vendor name |<p>The vendor name.</p> |DEPENDENT |hpe.msa.system.vendor_name<p>**Preprocessing**:</p><p>- JSONPATH: `$.['vendor-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |System health |<p>System health status.</p> |DEPENDENT |hpe.msa.system.health<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
|HPE |HPE MSA: Service ping |<p>Check if HTTP/HTTPS service accepts TCP connections.</p> |SIMPLE |net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}","{$HPE.MSA.API.PORT}"]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Firmware version |<p>Storage controller firmware version.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",firmware]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['sc-fw'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Part number |<p>Part number of the controller.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Serial number |<p>Storage controller serial number.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Health |<p>Controller health status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Status |<p>Storage controller status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Disks |<p>Number of disks in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disks]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['disks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Pools |<p>Number of pools in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",pools]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['number-of-storage-pools'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Disk groups |<p>Number of disk groups in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disk_groups]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['virtual-disks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IP address |<p>Controller network port IP address.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",ip_address]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['ip-address'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache memory size |<p>Controller cache memory size.</p> |DEPENDENT |hpe.msa.controllers.cache["{#CONTROLLER.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers'][?(@['durable-id'] == "{#DURABLE.ID}")].['cache-memory-size'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write utilization |<p>Percentage of write cache in use, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cache.write["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['write-cache-used'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['read-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['read-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['write-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['write-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: CPU utilization |<p>Percentage of time the CPU is busy, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cpu["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['cpu-load'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.iops.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['iops'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.read["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['number-of-reads'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['number-of-writes'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['bytes-per-second-numeric'].first()`</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Controller [{#CONTROLLER.ID}]: Uptime |<p>Number of seconds since the controller was restarted.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",uptime]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['power-on-time'].first()`</p> |
-|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['diskcount'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['pool-percentage'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['blocksize'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Blocks free |<p>Free space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['freespace-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['blocks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Get data |<p>The discovered controller data.</p> |DEPENDENT |hpe.msa.get.controllers["{#CONTROLLER.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Get statistics data |<p>The discovered controller statistics data.</p> |DEPENDENT |hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Firmware version |<p>Storage controller firmware version.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",firmware]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['sc-fw']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Part number |<p>Part number of the controller.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Serial number |<p>Storage controller serial number.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Health |<p>Controller health status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Status |<p>Storage controller status.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Disks |<p>Number of disks in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disks]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Pools |<p>Number of pools in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",pools]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-storage-pools']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Disk groups |<p>Number of disk groups in the storage system.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",disk_groups]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['virtual-disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IP address |<p>Controller network port IP address.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",ip_address]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ip-address']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache memory size |<p>Controller cache memory size.</p> |DEPENDENT |hpe.msa.controllers.cache["{#CONTROLLER.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['cache-memory-size']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write utilization |<p>Percentage of write cache in use, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cache.write["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-used']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.read.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.hits["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.controllers.cache.write.misses["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: CPU utilization |<p>Percentage of time the CPU is busy, from 0 to 100.</p> |DEPENDENT |hpe.msa.controllers.cpu["{#CONTROLLER.ID}",util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['cpu-load']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.iops.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['iops']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.read["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-reads']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-writes']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.total["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['bytes-per-second-numeric']`</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-read-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-written-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Controller [{#CONTROLLER.ID}]: Uptime |<p>Number of seconds since the controller was restarted.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",uptime]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-on-time']`</p> |
+|HPE |Disk group [{#NAME}]: Get data |<p>The discovered disk group data.</p> |DEPENDENT |hpe.msa.get.disks.groups["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['name'] == "{#NAME}")].first()`</p> |
+|HPE |Disk group [{#NAME}]: Get statistics data |<p>The discovered disk group statistics data.</p> |DEPENDENT |hpe.msa.get.disks.groups.statistics["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['name'] == "{#NAME}")].first()`</p> |
+|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['diskcount']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pool-percentage']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['blocksize']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Blocks free |<p>Free space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['freespace-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['blocks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
|HPE |Disk group [{#NAME}]: Space free |<p>The free space in the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.disks.groups.blocks["{#NAME}",size])*last(//hpe.msa.disks.groups.blocks["{#NAME}",free])` |
|HPE |Disk group [{#NAME}]: Space total |<p>The capacity of the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.disks.groups.blocks["{#NAME}",size])*last(//hpe.msa.disks.groups.blocks["{#NAME}",total])` |
|HPE |Disk group [{#NAME}]: Space utilization |<p>The space utilization percentage in the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",util]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`100-last(//hpe.msa.disks.groups.space["{#NAME}",free])/last(//hpe.msa.disks.groups.space["{#NAME}",total])*100` |
-|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['raidtype-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk group [{#NAME}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['iops'].first()`</p> |
-|HPE |Disk group [{#NAME}]: Average response time: Total |<p>Average response time for read and write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> |
-|HPE |Disk group [{#NAME}]: Average response time: Read |<p>Average response time for all read operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-read-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> |
-|HPE |Disk group [{#NAME}]: Average response time: Write |<p>Average response time for all write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",write]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-write-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> |
-|HPE |Disk group [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['number-of-reads'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Disk group [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['number-of-writes'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Disk group [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['bytes-per-second-numeric'].first()`</p> |
-|HPE |Disk group [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Disk group [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Pool [{#NAME}]: Health |<p>Pool health.</p> |DEPENDENT |hpe.msa.pools["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Pool [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.pools.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools'][?(@['name'] == "{#NAME}")].['blocksize'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Pool [{#NAME}]: Blocks available |<p>Available space in blocks.</p> |DEPENDENT |hpe.msa.pools.blocks["{#NAME}",available]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools'][?(@['name'] == "{#NAME}")].['total-avail-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Pool [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.pools.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools'][?(@['name'] == "{#NAME}")].['total-size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['raidtype-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk group [{#NAME}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['iops']`</p> |
+|HPE |Disk group [{#NAME}]: Average response time: Total |<p>Average response time for read and write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['avg-rsp-time']`</p><p>- MULTIPLIER: `0.000001`</p> |
+|HPE |Disk group [{#NAME}]: Average response time: Read |<p>Average response time for all read operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['avg-read-rsp-time']`</p><p>- MULTIPLIER: `0.000001`</p> |
+|HPE |Disk group [{#NAME}]: Average response time: Write |<p>Average response time for all write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",write]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['avg-write-rsp-time']`</p><p>- MULTIPLIER: `0.000001`</p> |
+|HPE |Disk group [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-reads']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Disk group [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.disks.groups.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-writes']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Disk group [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['bytes-per-second-numeric']`</p> |
+|HPE |Disk group [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-read-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Disk group [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.disks.groups.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-written-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Pool [{#NAME}]: Get data |<p>The discovered pool data.</p> |DEPENDENT |hpe.msa.get.pools["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['name'] == "{#NAME}")].first()`</p> |
+|HPE |Pool [{#NAME}]: Health |<p>Pool health.</p> |DEPENDENT |hpe.msa.pools["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Pool [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.pools.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['blocksize']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Pool [{#NAME}]: Blocks available |<p>Available space in blocks.</p> |DEPENDENT |hpe.msa.pools.blocks["{#NAME}",available]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['total-avail-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Pool [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.pools.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['total-size-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
|HPE |Pool [{#NAME}]: Space free |<p>The free space in the pool.</p> |CALCULATED |hpe.msa.pools.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.pools.blocks["{#NAME}",size])*last(//hpe.msa.pools.blocks["{#NAME}",available])` |
|HPE |Pool [{#NAME}]: Space total |<p>The capacity of the pool.</p> |CALCULATED |hpe.msa.pools.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.pools.blocks["{#NAME}",size])*last(//hpe.msa.pools.blocks["{#NAME}",total])` |
|HPE |Pool [{#NAME}]: Space utilization |<p>The space utilization percentage in the pool.</p> |CALCULATED |hpe.msa.pools.space["{#NAME}",util]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`100-last(//hpe.msa.pools.space["{#NAME}",free])/last(//hpe.msa.pools.space["{#NAME}",total])*100` |
-|HPE |Volume [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.volumes.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes'][?(@['volume-name'] == "{#NAME}")].['blocksize'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Volume [{#NAME}]: Blocks allocated |<p>The amount of blocks currently allocated to the volume.</p> |DEPENDENT |hpe.msa.volumes.blocks["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes'][?(@['volume-name'] == "{#NAME}")].['allocated-size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Volume [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.volumes.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volumes'][?(@['volume-name'] == "{#NAME}")].['blocks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Get data |<p>The discovered volume data.</p> |DEPENDENT |hpe.msa.get.volumes["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['volume-name'] == "{#NAME}")].first()`</p> |
+|HPE |Volume [{#NAME}]: Get statistics data |<p>The discovered volume statistics data.</p> |DEPENDENT |hpe.msa.get.volumes.statistics["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@['volume-name'] == "{#NAME}")].first()`</p> |
+|HPE |Volume [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.volumes.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['blocksize']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Blocks allocated |<p>The amount of blocks currently allocated to the volume.</p> |DEPENDENT |hpe.msa.volumes.blocks["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['allocated-size-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.volumes.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['blocks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
|HPE |Volume [{#NAME}]: Space allocated |<p>The amount of space currently allocated to the volume.</p> |CALCULATED |hpe.msa.volumes.space["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.volumes.blocks["{#NAME}",size])*last(//hpe.msa.volumes.blocks["{#NAME}",allocated])` |
|HPE |Volume [{#NAME}]: Space total |<p>The capacity of the volume.</p> |CALCULATED |hpe.msa.volumes.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.volumes.blocks["{#NAME}",size])*last(//hpe.msa.volumes.blocks["{#NAME}",total])` |
-|HPE |Volume [{#NAME}]: IOPS, total rate |<p>Total input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['iops'].first()`</p> |
-|HPE |Volume [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['number-of-reads'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['number-of-writes'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['bytes-per-second-numeric'].first()`</p> |
-|HPE |Volume [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['read-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['read-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['write-cache-hits'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Volume [{#NAME}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['volume-statistics'][?(@['volume-name'] == "{#NAME}")].['write-cache-misses'].first()`</p><p>- CHANGE_PER_SECOND</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Health |<p>Enclosure health.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Status |<p>Enclosure status.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Midplane serial number |<p>Midplane serial number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",midplane_serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['midplane-serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Part number |<p>Enclosure part number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Model |<p>Enclosure model.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['model'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#DURABLE.ID}]: Power |<p>Enclosure power in watts.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",power]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures'][?(@['durable-id'] == "{#DURABLE.ID}")].['enclosure-power'].first()`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Health |<p>Power supply health status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Status |<p>Power supply status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Part number |<p>Power supply part number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Power supply [{#DURABLE.ID}]: Serial number |<p>Power supply serial number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Port [{#NAME}]: Health |<p>Port health status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NAME}]: Status |<p>Port status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NAME}]: Type |<p>Port type.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['port-type-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Fan [{#DURABLE.ID}]: Health |<p>Fan health status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Fan [{#DURABLE.ID}]: Status |<p>Fan status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Fan [{#DURABLE.ID}]: Speed |<p>Fan speed (revolutions per minute).</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",speed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans'][?(@['durable-id'] == "{#DURABLE.ID}")].['speed'].first()`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Health |<p>Disk health status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Temperature status |<p>Disk temperature status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['temperature-status-numeric'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- IN_RANGE: `1 3`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Temperature |<p>Temperature of the disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['temperature-numeric'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Type |<p>Disk type:</p><p>SAS: Enterprise SAS spinning disk.</p><p>SAS MDL: Midline SAS spinning disk.</p><p>SSD SAS: SAS solit-state disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['description-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Disk group |<p>If the disk is in a disk group, the disk group name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",group]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['disk-group'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Storage pool |<p>If the disk is in a pool, the pool name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",pool]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['storage-pool-name'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Vendor |<p>Disk vendor.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",vendor]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['vendor'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Model |<p>Disk model.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['model'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Serial number |<p>Disk serial number.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.disks.blocks["{#DURABLE.ID}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['blocksize'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#DURABLE.ID}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.disks.blocks["{#DURABLE.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['blocks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: IOPS, total rate |<p>Total input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['iops']`</p> |
+|HPE |Volume [{#NAME}]: IOPS, read rate |<p>Number of read operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.read["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-reads']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: IOPS, write rate |<p>Number of write operations per second.</p> |DEPENDENT |hpe.msa.volumes.iops.write["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['number-of-writes']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Data transfer rate: Total |<p>The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['bytes-per-second-numeric']`</p> |
+|HPE |Volume [{#NAME}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.reads["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-read-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.volumes.data_transfer.writes["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['data-written-numeric']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Read hits, rate |<p>For the controller that owns the volume, the number of times the block to be read is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Read misses, rate |<p>For the controller that owns the volume, the number of times the block to be read is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.read.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['read-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Write hits, rate |<p>For the controller that owns the volume, the number of times the block written to is found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.hits["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-hits']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Volume [{#NAME}]: Cache: Write misses, rate |<p>For the controller that owns the volume, the number of times the block written to is not found in cache per second.</p> |DEPENDENT |hpe.msa.volumes.cache.write.misses["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['write-cache-misses']`</p><p>- CHANGE_PER_SECOND</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Get data |<p>The discovered enclosure data.</p> |DEPENDENT |hpe.msa.get.enclosures["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Health |<p>Enclosure health.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Status |<p>Enclosure status.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Midplane serial number |<p>Midplane serial number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",midplane_serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['midplane-serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Part number |<p>Enclosure part number.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Model |<p>Enclosure model.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['model']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#DURABLE.ID}]: Power |<p>Enclosure power in watts.</p> |DEPENDENT |hpe.msa.enclosures["{#DURABLE.ID}",power]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosure-power']`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Get data |<p>The discovered power supply data.</p> |DEPENDENT |hpe.msa.get.power_supplies["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Health |<p>Power supply health status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Status |<p>Power supply status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Part number |<p>Power supply part number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Power supply [{#DURABLE.ID}]: Serial number |<p>Power supply serial number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Port [{#NAME}]: Get data |<p>The discovered port data.</p> |DEPENDENT |hpe.msa.get.ports["{#NAME}",,data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['port'] == "{#NAME}")].first()`</p> |
+|HPE |Port [{#NAME}]: Health |<p>Port health status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Port [{#NAME}]: Status |<p>Port status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Port [{#NAME}]: Type |<p>Port type.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['port-type-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Get data |<p>The discovered fan data.</p> |DEPENDENT |hpe.msa.get.fans["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Health |<p>Fan health status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric']`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Status |<p>Fan status.</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['status-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Fan [{#DURABLE.ID}]: Speed |<p>Fan speed (revolutions per minute).</p> |DEPENDENT |hpe.msa.fans["{#DURABLE.ID}",speed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['speed']`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Get data |<p>The discovered disk data.</p> |DEPENDENT |hpe.msa.get.disks["{#DURABLE.ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['durable-id'] == "{#DURABLE.ID}")].first()`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Health |<p>Disk health status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Temperature status |<p>Disk temperature status.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['temperature-status-numeric']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- IN_RANGE: `1 3`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Temperature |<p>Temperature of the disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",temperature]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['temperature-numeric']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Type |<p>Disk type:</p><p>SAS: Enterprise SAS spinning disk.</p><p>SAS MDL: Midline SAS spinning disk.</p><p>SSD SAS: SAS solit-state disk.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['description-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Disk group |<p>If the disk is in a disk group, the disk group name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",group]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Storage pool |<p>If the disk is in a pool, the pool name.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",pool]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['storage-pool-name']`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Vendor |<p>Disk vendor.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",vendor]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['vendor']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Model |<p>Disk model.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['model']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Serial number |<p>Disk serial number.</p> |DEPENDENT |hpe.msa.disks["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.disks.blocks["{#DURABLE.ID}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['blocksize']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#DURABLE.ID}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.disks.blocks["{#DURABLE.ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['blocks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
|HPE |Disk [{#DURABLE.ID}]: Space total |<p>Total size of the disk.</p> |CALCULATED |hpe.msa.disks.space["{#DURABLE.ID}",total]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p><p>**Expression**:</p>`last(//hpe.msa.disks.blocks["{#DURABLE.ID}",size])*last(//hpe.msa.disks.blocks["{#DURABLE.ID}",total])` |
-|HPE |Disk [{#DURABLE.ID}]: SSD life left |<p>The percentage of disk life remaining.</p> |DEPENDENT |hpe.msa.disks.ssd["{#DURABLE.ID}",life_left]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks'][?(@['durable-id'] == "{#DURABLE.ID}")].['ssd-life-left-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Status |<p>{#DESCRIPTION}. FRU status:</p><p>Absent: The FRU is not present.</p><p>Fault: The FRU's health is Degraded or Fault.</p><p>Invalid data: The FRU ID data is invalid. The FRU's EEPROM is improperly programmed.</p><p>OK: The FRU is operating normally.</p><p>Power off: The FRU is powered off.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus'][?(@['name'] == "{#TYPE}" && @['fru-location'] == "{#LOCATION}")].['fru-status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Part number |<p>{#DESCRIPTION}. Part number of the FRU.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus'][?(@['name'] == "{#TYPE}" && @['fru-location'] == "{#LOCATION}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Serial number |<p>{#DESCRIPTION}. FRU serial number.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus'][?(@['name'] == "{#TYPE}" && @['fru-location'] == "{#LOCATION}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|Zabbix raw items |HPE MSA: Get data |<p>The JSON with result of API requests.</p> |SCRIPT |hpe.msa.data.get<p>**Expression**:</p>`The text is too long. Please see the template.` |
+|HPE |Disk [{#DURABLE.ID}]: SSD life left |<p>The percentage of disk life remaining.</p> |DEPENDENT |hpe.msa.disks.ssd["{#DURABLE.ID}",life_left]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ssd-life-left-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Get data |<p>The discovered FRU data.</p> |DEPENDENT |hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$[?(@['name'] == "{#TYPE}")].first()`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Status |<p>{#DESCRIPTION}. FRU status:</p><p>Absent: The FRU is not present.</p><p>Fault: The FRU's health is Degraded or Fault.</p><p>Invalid data: The FRU ID data is invalid. The FRU's EEPROM is improperly programmed.</p><p>OK: The FRU is operating normally.</p><p>Power off: The FRU is powered off.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fru-status-numeric']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Part number |<p>{#DESCRIPTION}. Part number of the FRU.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['part-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Serial number |<p>{#DESCRIPTION}. FRU serial number.</p> |DEPENDENT |hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['serial-number']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Zabbix raw items |HPE MSA: Get data |<p>The JSON with result of API requests.</p> |SCRIPT |hpe.msa.get.data<p>**Expression**:</p>`The text is too long. Please see the template.` |
## Triggers
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
-|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.data.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> |
+|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.get.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> |
|System health is in degraded state |<p>System health is in degraded state.</p> |`last(/HPE MSA 2060 Storage by HTTP/hpe.msa.system.health)=1` |WARNING | |
|System health is in fault state |<p>System health is in fault state.</p> |`last(/HPE MSA 2060 Storage by HTTP/hpe.msa.system.health)=2` |AVERAGE | |
|System health is in unknown state |<p>System health is in unknown state.</p> |`last(/HPE MSA 2060 Storage by HTTP/hpe.msa.system.health)=3` |INFO | |
diff --git a/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml b/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml
index e40d98167b8..bec7902dfb4 100644
--- a/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml
+++ b/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-07-22T08:40:11Z'
+ date: '2022-09-16T11:01:51Z'
groups:
-
uuid: 7c2cb727f85b492d88cd56e17127c64d
@@ -28,50 +28,76 @@ zabbix_export:
name: Templates/SAN
items:
-
- uuid: 078dd015f25d4778af429f9b5e391bc5
- name: 'Get method errors'
+ uuid: e869b8e7cc7643ea805532c941fa0e16
+ name: 'Get disk group statistics'
type: DEPENDENT
- key: hpe.msa.data.errors
+ key: hpe.msa.disks.get.groups.statistics
delay: '0'
- history: 7d
+ history: '0'
trends: '0'
value_type: TEXT
- description: 'A list of method errors from API requests.'
+ description: 'Disk groups statistics data.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.[''errors'']'
+ - '$.[''disk-group-statistics'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
-
- type: DISCARD_UNCHANGED_HEARTBEAT
+ tag: component
+ value: raw
+ -
+ uuid: 098d8c93634e4a3ab69b39f2d813f81c
+ name: 'Get controllers'
+ type: DEPENDENT
+ key: hpe.msa.get.controllers
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Controllers data.'
+ preprocessing:
+ -
+ type: JSONPATH
parameters:
- - 1d
+ - '$.[''controllers'']'
+ error_handler: DISCARD_VALUE
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.data
tags:
-
tag: component
- value: errors
- triggers:
+ value: raw
+ -
+ uuid: 61fe1e0cf61441c58cbd754805fefe9d
+ name: 'Get controller statistics'
+ type: DEPENDENT
+ key: hpe.msa.get.controller_statistics
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Controllers statistics data.'
+ preprocessing:
-
- uuid: 2133ddf10a3641d78e609948d6842687
- expression: 'length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.data.errors))>0'
- name: 'There are errors in method requests to API'
- priority: AVERAGE
- description: 'There are errors in method requests to API.'
- dependencies:
- -
- name: 'Service is down or unavailable'
- expression: 'max(/HPE MSA 2060 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}","{$HPE.MSA.API.PORT}"],5m)=0'
- tags:
- -
- tag: scope
- value: availability
+ type: JSONPATH
+ parameters:
+ - '$.[''controller-statistics'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
-
uuid: bafec666b170480f941fe25cb3cf903d
name: 'HPE MSA: Get data'
type: SCRIPT
- key: hpe.msa.data.get
+ key: hpe.msa.get.data
history: '0'
trends: '0'
value_type: TEXT
@@ -205,6 +231,288 @@ zabbix_export:
tag: component
value: raw
-
+ uuid: b3488b287d7b48f2a26cbc39b62c4a67
+ name: 'Get disks'
+ type: DEPENDENT
+ key: hpe.msa.get.disks
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Disks data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''disks'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 98f1f30231e6419cb8a91bb0a9127985
+ name: 'Get disk groups'
+ type: DEPENDENT
+ key: hpe.msa.get.disks.groups
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Disk groups data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''disk-groups'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 376ca0be12304701bd7c9fc6c1743428
+ name: 'Get enclosures'
+ type: DEPENDENT
+ key: hpe.msa.get.enclosures
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Enclosures data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''enclosures'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 078dd015f25d4778af429f9b5e391bc5
+ name: 'Get method errors'
+ type: DEPENDENT
+ key: hpe.msa.get.errors
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: TEXT
+ description: 'A list of method errors from API requests.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''errors'']'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1d
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: errors
+ triggers:
+ -
+ uuid: 2133ddf10a3641d78e609948d6842687
+ expression: 'length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.get.errors))>0'
+ name: 'There are errors in method requests to API'
+ priority: AVERAGE
+ description: 'There are errors in method requests to API.'
+ dependencies:
+ -
+ name: 'Service is down or unavailable'
+ expression: 'max(/HPE MSA 2060 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}","{$HPE.MSA.API.PORT}"],5m)=0'
+ tags:
+ -
+ tag: scope
+ value: availability
+ -
+ uuid: 7bc300f30a804cdd8acbba20b6d45f4c
+ name: 'Get fans'
+ type: DEPENDENT
+ key: hpe.msa.get.fans
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Fans data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''fans'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 41ec35cca22d4e6fb22a4e3759718a36
+ name: 'Get FRU'
+ type: DEPENDENT
+ key: hpe.msa.get.fru
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'FRU data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''frus'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 09804c2149264387a81de7df98a07739
+ name: 'Get pools'
+ type: DEPENDENT
+ key: hpe.msa.get.pools
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Pools data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''pools'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: c208ba831d534da9a8a650b31b7f4e8c
+ name: 'Get ports'
+ type: DEPENDENT
+ key: hpe.msa.get.ports
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Ports data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''ports'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 7cafbbb815324dc89f0db58384fe2e48
+ name: 'Get power supplies'
+ type: DEPENDENT
+ key: hpe.msa.get.power_supplies
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Power supplies data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''power-supplies'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 8dd7fafd33144838a1b382cc75e551d7
+ name: 'Get system'
+ type: DEPENDENT
+ key: hpe.msa.get.system
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The system data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.system[0]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: b7e65fee619b47fab8551df9bdd5d4cb
+ name: 'Get volumes'
+ type: DEPENDENT
+ key: hpe.msa.get.volumes
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Volumes data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''volumes'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 052e68cc870149718239fd9567da6fce
+ name: 'Get volume statistics'
+ type: DEPENDENT
+ key: hpe.msa.get.volumes.statistics
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Volumes statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[''volume-statistics'']'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.msa.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
uuid: 4c8b2c72135a4af781c0f31730366abe
name: 'System contact'
type: DEPENDENT
@@ -219,13 +527,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-contact'']'
+ - '$.[''system-contact'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -244,11 +552,11 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''health-numeric'']'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -302,13 +610,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-information'']'
+ - '$.[''system-information'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -328,13 +636,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-location'']'
+ - '$.[''system-location'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -354,13 +662,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''system-name'']'
+ - '$.[''system-name'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -380,13 +688,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''product-id'']'
+ - '$.[''product-id'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -406,13 +714,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.system[0].[''vendor-name'']'
+ - '$.[''vendor-name'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.system
tags:
-
tag: component
@@ -468,13 +776,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''read-cache-hits''].first()'
+ - '$.[''read-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -494,13 +802,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''read-cache-misses''].first()'
+ - '$.[''read-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -520,13 +828,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''write-cache-hits''].first()'
+ - '$.[''write-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -546,13 +854,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''write-cache-misses''].first()'
+ - '$.[''write-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -573,9 +881,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''write-cache-used''].first()'
+ - '$.[''write-cache-used'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -596,7 +904,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''cache-memory-size''].first()'
+ - '$.[''cache-memory-size'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -606,7 +914,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -627,9 +935,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''cpu-load''].first()'
+ - '$.[''cpu-load'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -663,13 +971,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''data-read-numeric''].first()'
+ - '$.[''data-read-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -690,9 +998,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''bytes-per-second-numeric''].first()'
+ - '$.[''bytes-per-second-numeric'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -714,13 +1022,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''data-written-numeric''].first()'
+ - '$.[''data-written-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -742,13 +1050,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''number-of-reads''].first()'
+ - '$.[''number-of-reads'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -769,9 +1077,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''iops''].first()'
+ - '$.[''iops'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -793,13 +1101,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''number-of-writes''].first()'
+ - '$.[''number-of-writes'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -819,13 +1127,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''disks''].first()'
+ - '$.[''disks'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -845,13 +1153,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''virtual-disks''].first()'
+ - '$.[''virtual-disks'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -873,13 +1181,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''sc-fw''].first()'
+ - '$.[''sc-fw'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -901,7 +1209,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -909,7 +1217,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -977,13 +1285,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''ip-address''].first()'
+ - '$.[''ip-address'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1005,13 +1313,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1031,13 +1339,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''number-of-storage-pools''].first()'
+ - '$.[''number-of-storage-pools'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1059,13 +1367,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1087,13 +1395,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controllers''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1128,9 +1436,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''controller-statistics''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''power-on-time''].first()'
+ - '$.[''power-on-time'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
tags:
-
tag: component
@@ -1150,6 +1458,60 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: efd83949c23e4f8b8f137ca13bb2449c
+ name: 'Controller [{#CONTROLLER.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered controller data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.controllers
+ tags:
+ -
+ tag: component
+ value: controller
+ -
+ tag: component
+ value: raw
+ -
+ tag: controller
+ value: '{#CONTROLLER.ID}'
+ -
+ uuid: d4be916f97ef415b9e892f464f8f8637
+ name: 'Controller [{#CONTROLLER.ID}]: Get statistics data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered controller statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.controller_statistics
+ tags:
+ -
+ tag: component
+ value: controller
+ -
+ tag: component
+ value: raw
+ -
+ tag: controller
+ value: '{#CONTROLLER.ID}'
graph_prototypes:
-
uuid: a0bac1256ecf42fb9e980a49e52f008e
@@ -1227,7 +1589,7 @@ zabbix_export:
host: 'HPE MSA 2060 Storage by HTTP'
key: 'hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.controllers
lld_macro_paths:
-
lld_macro: '{#CONTROLLER.ID}'
@@ -1235,16 +1597,6 @@ zabbix_export:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''controllers'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 46478b42c76348d7824c715fd6d20f74
name: 'Disks discovery'
@@ -1266,13 +1618,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''blocksize''].first()'
+ - '$.[''blocksize'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1292,13 +1644,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''blocks''].first()'
+ - '$.[''blocks'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1342,13 +1694,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''ssd-life-left-numeric''].first()'
+ - '$.[''ssd-life-left-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1370,14 +1722,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''disk-group''].first()'
+ - '$.[''disk-group'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1399,7 +1751,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric''].first()'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -1407,7 +1759,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1463,13 +1815,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''model''].first()'
+ - '$.[''model'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1491,14 +1843,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''storage-pool-name''].first()'
+ - '$.[''storage-pool-name'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1520,13 +1872,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1547,14 +1899,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''temperature-numeric''].first()'
+ - '$.[''temperature-numeric'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1576,7 +1928,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''temperature-status-numeric''].first()'
+ - '$.[''temperature-status-numeric'']'
error_handler: DISCARD_VALUE
-
type: IN_RANGE
@@ -1590,7 +1942,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1650,13 +2002,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''description-numeric''].first()'
+ - '$.[''description-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1678,13 +2030,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disks''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''vendor''].first()'
+ - '$.[''vendor'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -1692,8 +2044,35 @@ zabbix_export:
-
tag: disk
value: '{#DURABLE.ID}'
+ -
+ uuid: 2f213e512833498081747c89b5238dc8
+ name: 'Disk [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered disk data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.disks
+ tags:
+ -
+ tag: component
+ value: disk
+ -
+ tag: component
+ value: raw
+ -
+ tag: disk
+ value: '{#DURABLE.ID}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.disks
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
@@ -1701,16 +2080,6 @@ zabbix_export:
-
lld_macro: '{#TYPE}'
path: '$.[''description-numeric'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''disks'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
overrides:
-
name: 'SSD life left'
@@ -1726,7 +2095,6 @@ zabbix_export:
operationobject: ITEM_PROTOTYPE
operator: REGEXP
value: 'SSD life left'
- status: ENABLED
discover: DISCOVER
-
uuid: 88aaea8c16a247559c68783ad0cd5c4d
@@ -1750,13 +2118,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''avg-read-rsp-time''].first()'
+ - '$.[''avg-read-rsp-time'']'
-
type: MULTIPLIER
parameters:
- '0.000001'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1778,13 +2146,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''avg-rsp-time''].first()'
+ - '$.[''avg-rsp-time'']'
-
type: MULTIPLIER
parameters:
- '0.000001'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1806,13 +2174,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''avg-write-rsp-time''].first()'
+ - '$.[''avg-write-rsp-time'']'
-
type: MULTIPLIER
parameters:
- '0.000001'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1832,13 +2200,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''freespace-numeric''].first()'
+ - '$.[''freespace-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -1859,13 +2227,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''blocksize''].first()'
+ - '$.[''blocksize'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -1885,13 +2253,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''blocks''].first()'
+ - '$.[''blocks'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -1913,13 +2281,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''data-read-numeric''].first()'
+ - '$.[''data-read-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1940,9 +2308,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''bytes-per-second-numeric''].first()'
+ - '$.[''bytes-per-second-numeric'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1964,13 +2332,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''data-written-numeric''].first()'
+ - '$.[''data-written-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -1992,13 +2360,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''number-of-reads''].first()'
+ - '$.[''number-of-reads'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -2019,9 +2387,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''iops''].first()'
+ - '$.[''iops'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -2043,13 +2411,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-group-statistics''][?(@[''name''] == "{#NAME}")].[''number-of-writes''].first()'
+ - '$.[''number-of-writes'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -2071,13 +2439,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''raidtype-numeric''].first()'
+ - '$.[''raidtype-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2119,13 +2487,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''pool-percentage''].first()'
+ - '$.[''pool-percentage'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2215,14 +2583,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''diskcount''].first()'
+ - '$.[''diskcount'']'
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2244,7 +2612,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -2252,7 +2620,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2323,13 +2691,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
tags:
-
tag: component
@@ -2441,6 +2809,60 @@ zabbix_export:
-
tag: scope
value: performance
+ -
+ uuid: 7c7ce5cd807a4791800ed5f812b4b633
+ name: 'Disk group [{#NAME}]: Get statistics data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered disk group statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.disks.get.groups.statistics
+ tags:
+ -
+ tag: component
+ value: disk-group
+ -
+ tag: component
+ value: raw
+ -
+ tag: disk-group
+ value: '{#NAME}'
+ -
+ uuid: 9520e31d713b4ba59b682f47dda7154e
+ name: 'Disk group [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered disk group data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.disks.groups
+ tags:
+ -
+ tag: component
+ value: disk-group
+ -
+ tag: component
+ value: raw
+ -
+ tag: disk-group
+ value: '{#NAME}'
graph_prototypes:
-
uuid: e1f7331965524670b8c44c0b0d8eb99b
@@ -2503,21 +2925,11 @@ zabbix_export:
host: 'HPE MSA 2060 Storage by HTTP'
key: 'hpe.msa.disks.groups.space["{#NAME}",total]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.disks.groups
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''disk-groups'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 5a97871f702348dca7a5378885087ea8
name: 'Enclosures discovery'
@@ -2540,7 +2952,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -2548,7 +2960,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2604,13 +3016,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''midplane-serial-number''].first()'
+ - '$.[''midplane-serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2632,13 +3044,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''model''].first()'
+ - '$.[''model'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2660,13 +3072,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2688,9 +3100,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''enclosure-power''].first()'
+ - '$.[''enclosure-power'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2712,7 +3124,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''enclosures''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '6'
-
@@ -2720,7 +3132,7 @@ zabbix_export:
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2782,22 +3194,39 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: f9d69bb1597e435f8c8c67b51998c0a4
+ name: 'Enclosure [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered enclosure data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.enclosures
+ tags:
+ -
+ tag: component
+ value: enclosure
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#DURABLE.ID}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.enclosures
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''enclosures'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 9043169f17de44baa174459b560de4f5
name: 'Fans discovery'
@@ -2820,7 +3249,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''fans''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -2828,7 +3257,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2883,9 +3312,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''fans''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''speed''].first()'
+ - '$.[''speed'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2907,13 +3336,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''fans''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -2955,6 +3384,33 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: 468505cb7da74e04966477b02ab63b12
+ name: 'Fan [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered fan data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.fans
+ tags:
+ -
+ tag: component
+ value: fan
+ -
+ tag: component
+ value: raw
+ -
+ tag: fan
+ value: '{#DURABLE.ID}'
graph_prototypes:
-
uuid: 1def9fd4627d4552bf34e8ce35f3cd46
@@ -2966,21 +3422,11 @@ zabbix_export:
host: 'HPE MSA 2060 Storage by HTTP'
key: 'hpe.msa.fans["{#DURABLE.ID}",speed]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.fans
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''fans'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 30f91e8f7fba489aa649759219efa67c
name: 'FRU discovery'
@@ -3010,13 +3456,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''frus''][?(@[''name''] == "{#TYPE}" && @[''fru-location''] == "{#LOCATION}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
tags:
-
tag: component
@@ -3038,13 +3484,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''frus''][?(@[''name''] == "{#TYPE}" && @[''fru-location''] == "{#LOCATION}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
tags:
-
tag: component
@@ -3073,13 +3519,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''frus''][?(@[''name''] == "{#TYPE}" && @[''fru-location''] == "{#LOCATION}")].[''fru-status-numeric''].first()'
+ - '$.[''fru-status-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
tags:
-
tag: component
@@ -3111,8 +3557,35 @@ zabbix_export:
-
tag: scope
value: availability
+ -
+ uuid: 7bf42c023d5647bdbc4c35d0fb474454
+ name: 'FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered FRU data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''name''] == "{#TYPE}")].first()'
+ master_item:
+ key: hpe.msa.get.fru
+ tags:
+ -
+ tag: component
+ value: fru
+ -
+ tag: component
+ value: raw
+ -
+ tag: fru
+ value: 'Enclosure {#ENCLOSURE.ID}: {#LOCATION}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.fru
lld_macro_paths:
-
lld_macro: '{#DESCRIPTION}'
@@ -3126,16 +3599,6 @@ zabbix_export:
-
lld_macro: '{#TYPE}'
path: '$.[''name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''frus'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 178b94ddcab947ffb1614622c2b7e08e
name: 'Pools discovery'
@@ -3145,6 +3608,33 @@ zabbix_export:
description: 'Discover pools.'
item_prototypes:
-
+ uuid: 677f29f2879c44ceaf210bed98f257b0
+ name: 'Pool [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered pool data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.pools
+ tags:
+ -
+ tag: component
+ value: pool
+ -
+ tag: component
+ value: raw
+ -
+ tag: pool
+ value: '{#NAME}'
+ -
uuid: 09d67b3577af4e21a7bbd09078d705cd
name: 'Pool [{#NAME}]: Blocks available'
type: DEPENDENT
@@ -3156,13 +3646,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''pools''][?(@[''name''] == "{#NAME}")].[''total-avail-numeric''].first()'
+ - '$.[''total-avail-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -3183,13 +3673,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''pools''][?(@[''name''] == "{#NAME}")].[''blocksize''].first()'
+ - '$.[''blocksize'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -3209,13 +3699,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''pools''][?(@[''name''] == "{#NAME}")].[''total-size-numeric''].first()'
+ - '$.[''total-size-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -3328,7 +3818,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''pools''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3336,7 +3826,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -3395,21 +3885,11 @@ zabbix_export:
host: 'HPE MSA 2060 Storage by HTTP'
key: 'hpe.msa.pools.space["{#NAME}",total]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.pools
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''pools'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: bed52618dbc6498f99ddeedc78c0cdad
name: 'Ports discovery'
@@ -3419,6 +3899,33 @@ zabbix_export:
description: 'Discover ports.'
item_prototypes:
-
+ uuid: 540799973d2d440ca80eeeae99f84798
+ name: 'Port [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered port data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''port''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.ports
+ tags:
+ -
+ tag: component
+ value: port
+ -
+ tag: component
+ value: raw
+ -
+ tag: port
+ value: '{#NAME}'
+ -
uuid: cf4f9aaf55e6435d949d3b5074b9f37f
name: 'Port [{#NAME}]: Health'
type: DEPENDENT
@@ -3432,7 +3939,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''ports''][?(@[''port''] == "{#NAME}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3440,7 +3947,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
tags:
-
tag: component
@@ -3496,7 +4003,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''ports''][?(@[''port''] == "{#NAME}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3504,7 +4011,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
tags:
-
tag: component
@@ -3560,13 +4067,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''ports''][?(@[''port''] == "{#NAME}")].[''port-type-numeric''].first()'
+ - '$.[''port-type-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.ports["{#NAME}",,data]'
tags:
-
tag: component
@@ -3575,21 +4082,11 @@ zabbix_export:
tag: port
value: '{#NAME}'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.ports
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''port'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''ports'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: 1561695bd2174eada622a0d90ee1c3df
name: 'Power supplies discovery'
@@ -3599,6 +4096,33 @@ zabbix_export:
description: 'Discover power supplies.'
item_prototypes:
-
+ uuid: b7f37328cfff49789216d9caec2d09bc
+ name: 'Power supply [{#DURABLE.ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered power supply data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
+ master_item:
+ key: hpe.msa.get.power_supplies
+ tags:
+ -
+ tag: component
+ value: power-supply
+ -
+ tag: component
+ value: raw
+ -
+ tag: power-supply
+ value: '{#DURABLE.ID}'
+ -
uuid: 993bc2db3b444dc5bc37794985e63ea9
name: 'Power supply [{#DURABLE.ID}]: Health'
type: DEPENDENT
@@ -3612,7 +4136,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''health-numeric''].first()'
+ - '$.[''health-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3620,7 +4144,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3676,13 +4200,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''part-number''].first()'
+ - '$.[''part-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3704,13 +4228,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''serial-number''].first()'
+ - '$.[''serial-number'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3732,7 +4256,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''status-numeric''].first()'
+ - '$.[''status-numeric'']'
error_handler: CUSTOM_VALUE
error_handler_params: '4'
-
@@ -3740,7 +4264,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
tags:
-
tag: component
@@ -3783,21 +4307,11 @@ zabbix_export:
tag: scope
value: performance
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.power_supplies
lld_macro_paths:
-
lld_macro: '{#DURABLE.ID}'
path: '$.[''durable-id'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''power-supplies'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
-
uuid: b132a010c8a84da79eee1ba725301be9
name: 'Volumes discovery'
@@ -3807,6 +4321,60 @@ zabbix_export:
description: 'Discover volumes.'
item_prototypes:
-
+ uuid: df0b425817414f3cae218f4269e9068f
+ name: 'Volume [{#NAME}]: Get statistics data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered volume statistics data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''volume-name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.volumes.statistics
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: volume
+ -
+ tag: volume
+ value: '{#NAME}'
+ -
+ uuid: c5e4998ee3e44a2fa82facfceb465ffd
+ name: 'Volume [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.msa.get.volumes["{#NAME}",data]'
+ delay: '0'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'The discovered volume data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@[''volume-name''] == "{#NAME}")].first()'
+ master_item:
+ key: hpe.msa.get.volumes
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: volume
+ -
+ tag: volume
+ value: '{#NAME}'
+ -
uuid: cc6c4bddc05243c7a90082a3450a76a7
name: 'Volume [{#NAME}]: Blocks allocated'
type: DEPENDENT
@@ -3818,13 +4386,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volumes''][?(@[''volume-name''] == "{#NAME}")].[''allocated-size-numeric''].first()'
+ - '$.[''allocated-size-numeric'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -3845,13 +4413,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volumes''][?(@[''volume-name''] == "{#NAME}")].[''blocksize''].first()'
+ - '$.[''blocksize'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -3871,13 +4439,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volumes''][?(@[''volume-name''] == "{#NAME}")].[''blocks''].first()'
+ - '$.[''blocks'']'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -3897,13 +4465,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''read-cache-hits''].first()'
+ - '$.[''read-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3923,13 +4491,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''read-cache-misses''].first()'
+ - '$.[''read-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3949,13 +4517,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''write-cache-hits''].first()'
+ - '$.[''write-cache-hits'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -3975,13 +4543,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''write-cache-misses''].first()'
+ - '$.[''write-cache-misses'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -4003,13 +4571,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''data-read-numeric''].first()'
+ - '$.[''data-read-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -4030,9 +4598,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''bytes-per-second-numeric''].first()'
+ - '$.[''bytes-per-second-numeric'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -4054,13 +4622,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''data-written-numeric''].first()'
+ - '$.[''data-written-numeric'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -4082,13 +4650,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''number-of-reads''].first()'
+ - '$.[''number-of-reads'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -4109,9 +4677,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''iops''].first()'
+ - '$.[''iops'']'
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -4133,13 +4701,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.[''volume-statistics''][?(@[''volume-name''] == "{#NAME}")].[''number-of-writes''].first()'
+ - '$.[''number-of-writes'']'
-
type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
- key: hpe.msa.data.get
+ key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
tags:
-
tag: component
@@ -4263,21 +4831,11 @@ zabbix_export:
host: 'HPE MSA 2060 Storage by HTTP'
key: 'hpe.msa.volumes.space["{#NAME}",total]'
master_item:
- key: hpe.msa.data.get
+ key: hpe.msa.get.volumes
lld_macro_paths:
-
lld_macro: '{#NAME}'
path: '$.[''volume-name'']'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.[''volumes'']'
- error_handler: DISCARD_VALUE
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 6h
tags:
-
tag: class
diff --git a/templates/san/hpe_primera_http/README.md b/templates/san/hpe_primera_http/README.md
index 70db3114347..3eac28c1fd6 100644
--- a/templates/san/hpe_primera_http/README.md
+++ b/templates/san/hpe_primera_http/README.md
@@ -53,116 +53,129 @@ There are no template links in this template.
|Name|Description|Type|Key and additional info|
|----|-----------|----|----|
-|Common provisioning groups discovery |<p>List of CPGs resources.</p> |DEPENDENT |hpe.primera.cpg.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} MATCHES_REGEX `{$HPE.PRIMERA.CPG.NAME.MATCHES}`</p><p>- {#NAME} NOT_MATCHES_REGEX `{$HPE.PRIMERA.CPG.NAME.NOT_MATCHES}`</p> |
-|Disks discovery |<p>List of physical disk resources.</p> |DEPENDENT |hpe.primera.disks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Hosts discovery |<p>List of host properties.</p> |DEPENDENT |hpe.primera.hosts.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} EXISTS</p> |
-|Ports discovery |<p>List of ports.</p> |DEPENDENT |hpe.primera.ports.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.ports.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#TYPE} NOT_MATCHES_REGEX `3`</p> |
-|Tasks discovery |<p>List of tasks started within last 24 hours.</p> |DEPENDENT |hpe.primera.tasks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.tasks`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.MATCHES}`</p><p>- {#NAME} NOT_MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.NOT_MATCHES}`</p><p>- {#TYPE} MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.MATCHES}`</p><p>- {#TYPE} NOT_MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.NOT_MATCHES}`</p> |
-|Volumes discovery |<p>List of storage volume resources.</p> |DEPENDENT |hpe.primera.volumes.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} MATCHES_REGEX `{$HPE.PRIMERA.VOLUME.NAME.MATCHES}`</p><p>- {#NAME} NOT_MATCHES_REGEX `{$HPE.PRIMERA.VOLUME.NAME.NOT_MATCHES}`</p> |
+|Common provisioning groups discovery |<p>List of CPGs resources.</p> |DEPENDENT |hpe.primera.cpg.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} MATCHES_REGEX `{$HPE.PRIMERA.CPG.NAME.MATCHES}`</p><p>- {#NAME} NOT_MATCHES_REGEX `{$HPE.PRIMERA.CPG.NAME.NOT_MATCHES}`</p> |
+|Disks discovery |<p>List of physical disk resources.</p> |DEPENDENT |hpe.primera.disks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Hosts discovery |<p>List of host properties.</p> |DEPENDENT |hpe.primera.hosts.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} EXISTS ``</p> |
+|Ports discovery |<p>List of ports.</p> |DEPENDENT |hpe.primera.ports.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#TYPE} NOT_MATCHES_REGEX `3`</p> |
+|Tasks discovery |<p>List of tasks started within last 24 hours.</p> |DEPENDENT |hpe.primera.tasks.discovery<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.MATCHES}`</p><p>- {#NAME} NOT_MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.NOT_MATCHES}`</p><p>- {#TYPE} MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.MATCHES}`</p><p>- {#TYPE} NOT_MATCHES_REGEX `{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.NOT_MATCHES}`</p> |
+|Volumes discovery |<p>List of storage volume resources.</p> |DEPENDENT |hpe.primera.volumes.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p>AND <p>- {#NAME} MATCHES_REGEX `{$HPE.PRIMERA.VOLUME.NAME.MATCHES}`</p><p>- {#NAME} NOT_MATCHES_REGEX `{$HPE.PRIMERA.VOLUME.NAME.NOT_MATCHES}`</p> |
## Items collected
|Group|Name|Description|Type|Key and additional info|
|-----|----|-----------|----|---------------------|
-|HPE |HPE Primera: Get data |<p>The JSON with result of WSAPI requests.</p> |SCRIPT |hpe.primera.data.get<p>**Expression**:</p>`The text is too long. Please see the template.` |
-|HPE |HPE Primera: Get errors |<p>A list of errors from WSAPI requests.</p> |DEPENDENT |hpe.primera.data.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.errors`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |HPE Primera: Capacity allocated |<p>Allocated capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.allocated<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.allocatedCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |HPE Primera: Chunklet size |<p>Chunklet size.</p> |DEPENDENT |hpe.primera.system.chunklet.size<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.chunkletSizeMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |HPE Primera: System contact |<p>Contact of the system.</p> |DEPENDENT |hpe.primera.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.contact`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |HPE Primera: Capacity failed |<p>Failed capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.failed<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.failedCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |HPE Primera: Capacity free |<p>Free capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.free<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.freeCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |HPE Primera: System location |<p>Location of the system.</p> |DEPENDENT |hpe.primera.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.location`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |HPE Primera: Model |<p>System model.</p> |DEPENDENT |hpe.primera.system.model<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |HPE Primera: System name |<p>System name.</p> |DEPENDENT |hpe.primera.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.name`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|HPE |HPE Primera: Serial number |<p>System serial number.</p> |DEPENDENT |hpe.primera.system.serial_number<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |HPE Primera: Software version number |<p>Storage system software version number.</p> |DEPENDENT |hpe.primera.system.sw_version<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.systemVersion`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |HPE Primera: Capacity total |<p>Total capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.total<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.totalCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |HPE Primera: Nodes total |<p>Total number of nodes in the system.</p> |DEPENDENT |hpe.primera.system.nodes.total<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.totalNodes`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |HPE Primera: Nodes online |<p>Number of online nodes in the system.</p> |DEPENDENT |hpe.primera.system.nodes.online<p>**Preprocessing**:</p><p>- JSONPATH: `$.system.onlineNodes.length()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |HPE Primera: Disks total |<p>Number of physical disks.</p> |DEPENDENT |hpe.primera.disks.total<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.total`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |HPE Primera: Get data |<p>The JSON with result of WSAPI requests.</p> |SCRIPT |hpe.primera.get.data<p>**Expression**:</p>`The text is too long. Please see the template.` |
+|HPE |HPE Primera: Get errors |<p>A list of errors from WSAPI requests.</p> |DEPENDENT |hpe.primera.get.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.errors`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |HPE Primera: Get disks data |<p>Disks data.</p> |DEPENDENT |hpe.primera.get.disks<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Primera: Get CPGs data |<p>Common provisioning groups data.</p> |DEPENDENT |hpe.primera.get.cpgs<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Primera: Get hosts data |<p>Hosts data.</p> |DEPENDENT |hpe.primera.get.hosts<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Primera: Get ports data |<p>Ports data.</p> |DEPENDENT |hpe.primera.get.ports<p>**Preprocessing**:</p><p>- JSONPATH: `$.ports`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Primera: Get system data |<p>System data.</p> |DEPENDENT |hpe.primera.get.system<p>**Preprocessing**:</p><p>- JSONPATH: `$.system`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Primera: Get tasks data |<p>Tasks data.</p> |DEPENDENT |hpe.primera.get.tasks<p>**Preprocessing**:</p><p>- JSONPATH: `$.tasks`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Primera: Get volumes data |<p>Volumes data.</p> |DEPENDENT |hpe.primera.get.volumes<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Primera: Capacity allocated |<p>Allocated capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.allocated<p>**Preprocessing**:</p><p>- JSONPATH: `$.allocatedCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |HPE Primera: Chunklet size |<p>Chunklet size.</p> |DEPENDENT |hpe.primera.system.chunklet.size<p>**Preprocessing**:</p><p>- JSONPATH: `$.chunkletSizeMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |HPE Primera: System contact |<p>Contact of the system.</p> |DEPENDENT |hpe.primera.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.contact`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |HPE Primera: Capacity failed |<p>Failed capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.failed<p>**Preprocessing**:</p><p>- JSONPATH: `$.failedCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |HPE Primera: Capacity free |<p>Free capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.free<p>**Preprocessing**:</p><p>- JSONPATH: `$.freeCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |HPE Primera: System location |<p>Location of the system.</p> |DEPENDENT |hpe.primera.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.location`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |HPE Primera: Model |<p>System model.</p> |DEPENDENT |hpe.primera.system.model<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |HPE Primera: System name |<p>System name.</p> |DEPENDENT |hpe.primera.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.name`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|HPE |HPE Primera: Serial number |<p>System serial number.</p> |DEPENDENT |hpe.primera.system.serial_number<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |HPE Primera: Software version number |<p>Storage system software version number.</p> |DEPENDENT |hpe.primera.system.sw_version<p>**Preprocessing**:</p><p>- JSONPATH: `$.systemVersion`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |HPE Primera: Capacity total |<p>Total capacity in the system.</p> |DEPENDENT |hpe.primera.system.capacity.total<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalCapacityMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |HPE Primera: Nodes total |<p>Total number of nodes in the system.</p> |DEPENDENT |hpe.primera.system.nodes.total<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalNodes`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |HPE Primera: Nodes online |<p>Number of online nodes in the system.</p> |DEPENDENT |hpe.primera.system.nodes.online<p>**Preprocessing**:</p><p>- JSONPATH: `$.onlineNodes.length()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |HPE Primera: Disks total |<p>Number of physical disks.</p> |DEPENDENT |hpe.primera.disks.total<p>**Preprocessing**:</p><p>- JSONPATH: `$.total`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
|HPE |HPE Primera: Service ping |<p>Checks if the service is running and accepting TCP connections.</p> |SIMPLE |net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{HOST.CONN}","{$HPE.PRIMERA.API.PORT}"]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|HPE |CPG [{#NAME}]: Degraded state |<p>Detailed state of the CPG:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) - local storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.cpg.state["{#ID}",degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].degradedStates.first()`</p> |
-|HPE |CPG [{#NAME}]: Failed state |<p>Detailed state of the CPG:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) - local storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.cpg.state["{#ID}",failed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].failedStates.first()`</p><p>- JAVASCRIPT: `return JSON.stringify(JSON.parse(value));`</p> |
-|HPE |CPG [{#NAME}]: CPG space: Free |<p>Free CPG space.</p> |DEPENDENT |hpe.primera.cpg.space["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].freeSpaceMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Number of FPVVs |<p>Number of FPVVs (Fully Provisioned Virtual Volumes) allocated in the CPG.</p> |DEPENDENT |hpe.primera.cpg.fpvv["{#ID}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].numFPVVs.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |CPG [{#NAME}]: Number of TPVVs |<p>Number of TPVVs (Thinly Provisioned Virtual Volumes) allocated in the CPG.</p> |DEPENDENT |hpe.primera.cpg.tpvv["{#ID}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].numTPVVs.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |CPG [{#NAME}]: Number of TDVVs |<p>Number of TDVVs (Thinly Deduplicated Virtual Volume) created in the CPG.</p> |DEPENDENT |hpe.primera.cpg.tdvv["{#ID}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].numTDVVs.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |CPG [{#NAME}]: Raw space: Free |<p>Raw free space.</p> |DEPENDENT |hpe.primera.cpg.space.raw["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].rawFreeSpaceMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Raw space: Shared |<p>Raw shared space.</p> |DEPENDENT |hpe.primera.cpg.space.raw["{#ID}",shared]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].rawSharedSpaceMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Raw space: Total |<p>Raw total space.</p> |DEPENDENT |hpe.primera.cpg.space.raw["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].rawTotalSpaceMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: CPG space: Shared |<p>Shared CPG space.</p> |DEPENDENT |hpe.primera.cpg.space["{#ID}",shared]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].sharedSpaceMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: State |<p>Overall state of the CPG:</p><p>NORMAL (1) - normal operation;</p><p>DEGRADED (2) - degraded state;</p><p>FAILED (3) - abnormal operation;</p><p>UNKNOWN (99) - unknown state.</p> |DEPENDENT |hpe.primera.cpg.state["{#ID}"]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].state.first()`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Total (raw) |<p>Total physical (raw) logical disk space in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",raw_total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SAUsage.rawTotalMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Total (raw) |<p>Total physical (raw) logical disk space in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",raw_total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SDUsage.rawTotalMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: User space: Total (raw) |<p>Total physical (raw) logical disk space in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",raw_total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.rawTotalMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Total |<p>Total logical disk space in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SAUsage.totalMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Total |<p>Total logical disk space in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SDUsage.totalMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: User space: Total |<p>Total logical disk space in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.totalMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: CPG space: Total |<p>Total CPG space.</p> |DEPENDENT |hpe.primera.cpg.space["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].totalSpaceMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Used (raw) |<p>Amount of physical (raw) logical disk used in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",raw_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SAUsage.rawUsedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Used (raw) |<p>Amount of physical (raw) logical disk used in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",raw_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SDUsage.rawUsedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: User space: Used (raw) |<p>Amount of physical (raw) logical disk used in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",raw_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.rawUsedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Used |<p>Amount of logical disk used in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SAUsage.usedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Used |<p>Amount of logical disk used in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].SDUsage.usedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |CPG [{#NAME}]: Logical disk space: User space: Used |<p>Amount of logical disk used in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.usedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Disk [{#POSITION}]: Firmware version |<p>Physical disk firmware version.</p> |DEPENDENT |hpe.primera.disk["{#ID}",fw_version]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].fwVersion.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#POSITION}]: Free size |<p>Physical disk free size.</p> |DEPENDENT |hpe.primera.disk["{#ID}",free_size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].freeSizeMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Disk [{#POSITION}]: Manufacturer |<p>Physical disk manufacturer.</p> |DEPENDENT |hpe.primera.disk["{#ID}",manufacturer]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].manufacturer.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#POSITION}]: Model |<p>Manufacturer's device ID for disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#POSITION}]: Path A0 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_a0_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].loopA0.degraded.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
-|HPE |Disk [{#POSITION}]: Path A1 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_a1_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].loopA1.degraded.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
-|HPE |Disk [{#POSITION}]: Path B0 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_b0_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].loopB0.degraded.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
-|HPE |Disk [{#POSITION}]: Path B1 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_b1_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].loopB1.degraded.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
-|HPE |Disk [{#POSITION}]: RPM |<p>RPM of the physical disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",rpm]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].RPM.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#POSITION}]: Serial number |<p>Disk drive serial number.</p> |DEPENDENT |hpe.primera.disk["{#ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Disk [{#POSITION}]: State |<p>State of the physical disk:</p><p>Normal (1) - physical disk is in Normal state;</p><p>Degraded (2) - physical disk is not operating normally;</p><p>New (3) - physical disk is new, needs to be admitted;</p><p>Failed (4) - physical disk has failed;</p><p>Unknown (99) - physical disk state is unknown.</p> |DEPENDENT |hpe.primera.disk["{#ID}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].state.first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 99`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Disk [{#POSITION}]: Total size |<p>Physical disk total size.</p> |DEPENDENT |hpe.primera.disk["{#ID}",total_size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.disks.members[?(@.id == "{#ID}")].totalSizeMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Host [{#NAME}]: Comment |<p>Additional information for the host.</p> |DEPENDENT |hpe.primera.host["{#ID}",comment]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts.members[?(@.id == "{#ID}")].descriptors.comment.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Host [{#NAME}]: Contact |<p>The host's owner and contact.</p> |DEPENDENT |hpe.primera.host["{#ID}",contact]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts.members[?(@.id == "{#ID}")].descriptors.contact.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Host [{#NAME}]: IP address |<p>The host's IP address.</p> |DEPENDENT |hpe.primera.host["{#ID}",ipaddress]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts.members[?(@.id == "{#ID}")].descriptors.IPAddr.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Host [{#NAME}]: Location |<p>The host's location.</p> |DEPENDENT |hpe.primera.host["{#ID}",location]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts.members[?(@.id == "{#ID}")].descriptors.location.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Host [{#NAME}]: Model |<p>The host's model.</p> |DEPENDENT |hpe.primera.host["{#ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts.members[?(@.id == "{#ID}")].descriptors.model.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Host [{#NAME}]: OS |<p>The operating system running on the host.</p> |DEPENDENT |hpe.primera.host["{#ID}",os]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hosts.members[?(@.id == "{#ID}")].descriptors.os.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Failover state |<p>The state of the failover operation, shown for the two ports indicated in the N:S:P and Partner columns. The value can be one of the following:</p><p>none (1) - no failover in operation;</p><p>failover_pending (2) - in the process of failing over to partner;</p><p>failed_over (3) - failed over to partner;</p><p>active (4) - the partner port is failed over to this port;</p><p>active_down (5) - the partner port is failed over to this port, but this port is down;</p><p>active_failed (6) - the partner port is failed over to this port, but this port is down;</p><p>failback_pending (7) - in the process of failing back from partner.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",failover_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].failoverState.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Link state |<p>Port link state:</p><p>CONFIG_WAIT (1) - configuration wait;</p><p>ALPA_WAIT (2) - ALPA wait;</p><p>LOGIN_WAIT (3) - login wait;</p><p>READY (4) - link is ready;</p><p>LOSS_SYNC (5) - link is loss sync;</p><p>ERROR_STATE (6) - in error state;</p><p>XXX (7) - xxx;</p><p>NONPARTICIPATE (8) - link did not participate;</p><p>COREDUMP (9) - taking coredump;</p><p>OFFLINE (10) - link is offline;</p><p>FWDEAD (11) - firmware is dead;</p><p>IDLE_FOR_RESET (12) - link is idle for reset;</p><p>DHCP_IN_PROGRESS (13) - DHCP is in progress;</p><p>PENDING_RESET (14) - link reset is pending;</p><p>NEW (15) - link in new. This value is applicable for only virtual ports;</p><p>DISABLED (16) - link in disabled. This value is applicable for only virtual ports;</p><p>DOWN (17) - link in down. This value is applicable for only virtual ports;</p><p>FAILED (18) - link in failed. This value is applicable for only virtual ports;</p><p>PURGING (19) - link in purging. This value is applicable for only virtual ports.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].linkState.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Type |<p>Port connection type:</p><p>HOST (1) - FC port connected to hosts or fabric;</p><p>DISK (2) - FC port connected to disks;</p><p>FREE (3) - port is not connected to hosts or disks;</p><p>IPORT (4) - port is in iport mode;</p><p>RCFC (5) - FC port used for remote copy;</p><p>PEER (6) - FC port used for data migration;</p><p>RCIP (7) - IP (Ethernet) port used for remote copy;</p><p>ISCSI (8) - iSCSI (Ethernet) port connected to hosts;</p><p>CNA (9) - CNA port, which can be FCoE or iSCSI;</p><p>FS (10) - Ethernet File Persona ports.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].type.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Hardware type |<p>Hardware type:</p><p>FC (1) - Fibre channel HBA;</p><p>ETH (2) - Ethernet NIC;</p><p>iSCSI (3) - iSCSI HBA;</p><p>CNA (4) - Converged network adapter;</p><p>SAS (5) - SAS HBA;</p><p>COMBO (6) - Combo card;</p><p>NVME (7) - NVMe drive;</p><p>UNKNOWN (99) - unknown hardware type.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",hw_type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].hardwareType.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Task [{#NAME}]: Finish time |<p>Task finish time.</p> |DEPENDENT |hpe.primera.task["{#ID}",finish_time]<p>**Preprocessing**:</p><p>- JSONPATH: `$.tasks[?(@.id == "{#ID}")].finishTime.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>- NOT_MATCHES_REGEX: `^-$`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- JAVASCRIPT: `The text is too long. Please see the template.`</p> |
-|HPE |Task [{#NAME}]: Start time |<p>Task start time.</p> |DEPENDENT |hpe.primera.task["{#ID}",start_time]<p>**Preprocessing**:</p><p>- JSONPATH: `$.tasks[?(@.id == "{#ID}")].startTime.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>- JAVASCRIPT: `The text is too long. Please see the template.`</p> |
-|HPE |Task [{#NAME}]: Status |<p>Task status:</p><p>DONE (1) - task is finished;</p><p>ACTIVE (2) - task is in progress;</p><p>CANCELLED (3) - task is canceled;</p><p>FAILED (4) - task failed.</p> |DEPENDENT |hpe.primera.task["{#ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.tasks[?(@.id == "{#ID}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|HPE |Task [{#NAME}]: Type |<p>Task type:</p><p>VV_COPY (1) - track the physical copy operations;</p><p>PHYS_COPY_RESYNC (2) - track physical copy resynchronization operations;</p><p>MOVE_REGIONS (3) - track region move operations;</p><p>PROMOTE_SV (4) - track virtual-copy promotions;</p><p>REMOTE_COPY_SYNC (5) - track remote copy group synchronizations;</p><p>REMOTE_COPY_REVERSE (6) - track the reversal of a remote copy group;</p><p>REMOTE_COPY_FAILOVER (7) - track the change-over of a secondary volume group to a primaryvolume group;REMOTE_COPY_RECOVER (8) - track synchronization start after a failover operation from originalsecondary cluster to original primary cluster;</p><p>REMOTE_COPY_RESTORE (9) - tracks the restoration process for groups that have already beenrecovered;</p><p>COMPACT_CPG (10) - track space consolidation in CPGs;</p><p>COMPACT_IDS (11) - track space consolidation in logical disks;</p><p>SNAPSHOT_ACCOUNTING (12) - track progress of snapshot space usage accounting;</p><p>CHECK_VV (13) - track the progress of the check-volume operation;</p><p>SCHEDULED_TASK (14) - track tasks that have been executed by the system scheduler;</p><p>SYSTEM_TASK (15) - track tasks that are periodically run by the storage system;</p><p>BACKGROUND_TASK (16) - track commands started using the starttask command;</p><p>IMPORT_VV (17) - track tasks that migrate data to the local storage system;</p><p>ONLINE_COPY (18) - track physical copy of the volume while online (createvvcopy-online command);</p><p>CONVERT_VV (19) - track tasks that convert a volume from an FPVV to a TPVV, and the reverse;</p><p>BACKGROUND_COMMAND (20) - track background command tasks;</p><p>CLX_SYNC (21) - track CLX synchronization tasks;</p><p>CLX_RECOVERY (22) - track CLX recovery tasks;</p><p>TUNE_SD (23) - tune copy space;</p><p>TUNE_VV (24) - tune virtual volume;</p><p>TUNE_VV_ROLLBACK (25) - tune virtual volume rollback;</p><p>TUNE_VV_RESTART (26) - tune virtual volume restart;</p><p>SYSTEM_TUNING (27) - system tuning;</p><p>NODE_RESCUE (28) - node rescue;</p><p>REPAIR_SYNC (29) - remote copy repair sync;</p><p>REMOTE_COPY_SWOVER (30) - remote copy switchover;</p><p>DEFRAGMENTATION (31) - defragmentation;</p><p>ENCRYPTION_CHANGE (32) - encryption change;</p><p>REMOTE_COPY_FAILSAFE (33) - remote copy failsafe;</p><p>TUNE_TPVV (34) - tune thin virtual volume;</p><p>REMOTE_COPY_CHG_MODE (35) - remote copy change mode;</p><p>ONLINE_PROMOTE (37) - online promote snap;</p><p>RELOCATE_PD (38) - relocate PD;</p><p>PERIODIC_CSS (39) - remote copy periodic CSS;</p><p>TUNEVV_LARGE (40) - tune large virtual volume;</p><p>SD_META_FIXER (41) - compression SD meta fixer;</p><p>DEDUP_DRYRUN (42) - preview dedup ratio;</p><p>COMPR_DRYRUN (43) - compression estimation;</p><p>DEDUP_COMPR_DRYRUN (44) - compression and dedup estimation;</p><p>UNKNOWN (99) - unknown task type.</p> |DEPENDENT |hpe.primera.task["{#ID}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.tasks[?(@.id == "{#ID}")].type.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|HPE |Volume [{#NAME}]: Administrative space: Free |<p>Free administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].adminSpace.freeMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Administrative space: Raw reserved |<p>Raw reserved administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",raw_reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].adminSpace.rawReservedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Administrative space: Reserved |<p>Reserved administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].adminSpace.reservedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Administrative space: Used |<p>Used administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].adminSpace.usedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Compaction ratio |<p>The compaction ratio indicates the overall amount of storage space saved with thin technology.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",compaction]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.compaction.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Volume [{#NAME}]: Compression state |<p>Volume compression state:</p><p>YES (1) - compression is enabled on the volume;</p><p>NO (2) - compression is disabled on the volume;</p><p>OFF (3) - compression is turned off;</p><p>NA (4) - compression is not available on the volume.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",compression]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].compressionState.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|HPE |Volume [{#NAME}]: Deduplication state |<p>Volume deduplication state:</p><p>YES (1) - enables deduplication on the volume;</p><p>NO (2) - disables deduplication on the volume;</p><p>NA (3) - deduplication is not available;</p><p>OFF (4) - deduplication is turned off.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",deduplication]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].deduplicationState.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|HPE |Volume [{#NAME}]: Degraded state |<p>Volume detailed state:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) -lLocal storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].degradedStates.first()`</p> |
-|HPE |Volume [{#NAME}]: Failed state |<p>Volume detailed state:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) - local storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",failed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].failedStates.first()`</p><p>- JAVASCRIPT: `return JSON.stringify(JSON.parse(value));`</p> |
-|HPE |Volume [{#NAME}]: Overprovisioning ratio |<p>Overprovisioning capacity efficiency ratio.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",overprovisioning]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.overProvisioning.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Volume [{#NAME}]: Remote copy status |<p>Remote copy status of the volume:</p><p>NONE (1) - volume is not associated with remote copy;</p><p>PRIMARY (2) - volume is the primary copy;</p><p>SECONDARY (3) - volume is the secondary copy;</p><p>SNAP (4) - volume is the remote copy snapshot;</p><p>SYNC (5) - volume is a remote copy snapshot being used for synchronization;</p><p>DELETE (6) - volume is a remote copy snapshot that is marked for deletion;</p><p>UNKNOWN (99) - remote copy status is unknown for this volume.</p> |DEPENDENT |hpe.primera.volume.status["{#ID}",rcopy]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].rcopyStatus.first()`</p> |
-|HPE |Volume [{#NAME}]: Snapshot space: Free |<p>Free snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.freeMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Snapshot space: Raw reserved |<p>Raw reserved snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",raw_reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.rawReservedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Snapshot space: Reserved |<p>Reserved snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.reservedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Snapshot space: Used |<p>Used snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.usedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: State |<p>State of the volume:</p><p>NORMAL (1) - normal operation;</p><p>DEGRADED (2) - degraded state;</p><p>FAILED (3) - abnormal operation;</p><p>UNKNOWN (99) - unknown state.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}"]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].state.first()`</p> |
-|HPE |Volume [{#NAME}]: Storage space saved using compression |<p>Indicates the amount of storage space saved using compression.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",compression]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.compression.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Volume [{#NAME}]: Storage space saved using deduplication |<p>Indicates the amount of storage space saved using deduplication.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",deduplication]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.deduplication.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Volume [{#NAME}]: Storage space saved using deduplication and compression |<p>Indicates the amount of storage space saved using deduplication and compression together.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",reduction]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.dataReduction.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Volume [{#NAME}]: Total reserved space |<p>Total reserved space.</p> |DEPENDENT |hpe.primera.volume.space.total["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].totalReservedMiB.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Total space |<p>Virtual size of volume.</p> |DEPENDENT |hpe.primera.volume.space.total["{#ID}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].sizeMiB.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: Total used space |<p>Total used space. Sum of used user space and used snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.total["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].totalUsedMiB.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: User space: Free |<p>Free user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].userSpace.freeMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: User space: Raw reserved |<p>Raw reserved user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",raw_reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].userSpace.rawReservedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: User space: Reserved |<p>Reserved user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].userSpace.reservedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
-|HPE |Volume [{#NAME}]: User space: Used |<p>Used user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.volumes.members[?(@.id == "{#ID}")].userSpace.usedMiB.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Get CPG data |<p>CPG {#NAME} data</p> |DEPENDENT |hpe.primera.cpg["{#ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.id == "{#ID}")].first()`</p> |
+|HPE |CPG [{#NAME}]: Degraded state |<p>Detailed state of the CPG:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) - local storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.cpg.state["{#ID}",degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.degradedStates`</p> |
+|HPE |CPG [{#NAME}]: Failed state |<p>Detailed state of the CPG:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) - local storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.cpg.state["{#ID}",failed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.failedStates`</p><p>- JAVASCRIPT: `return JSON.stringify(JSON.parse(value));`</p> |
+|HPE |CPG [{#NAME}]: CPG space: Free |<p>Free CPG space.</p> |DEPENDENT |hpe.primera.cpg.space["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.freeSpaceMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Number of FPVVs |<p>Number of FPVVs (Fully Provisioned Virtual Volumes) allocated in the CPG.</p> |DEPENDENT |hpe.primera.cpg.fpvv["{#ID}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.numFPVVs`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |CPG [{#NAME}]: Number of TPVVs |<p>Number of TPVVs (Thinly Provisioned Virtual Volumes) allocated in the CPG.</p> |DEPENDENT |hpe.primera.cpg.tpvv["{#ID}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.numTPVVs`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |CPG [{#NAME}]: Number of TDVVs |<p>Number of TDVVs (Thinly Deduplicated Virtual Volume) created in the CPG.</p> |DEPENDENT |hpe.primera.cpg.tdvv["{#ID}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.numTDVVs`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |CPG [{#NAME}]: Raw space: Free |<p>Raw free space.</p> |DEPENDENT |hpe.primera.cpg.space.raw["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.rawFreeSpaceMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Raw space: Shared |<p>Raw shared space.</p> |DEPENDENT |hpe.primera.cpg.space.raw["{#ID}",shared]<p>**Preprocessing**:</p><p>- JSONPATH: `$.rawSharedSpaceMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Raw space: Total |<p>Raw total space.</p> |DEPENDENT |hpe.primera.cpg.space.raw["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.rawTotalSpaceMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: CPG space: Shared |<p>Shared CPG space.</p> |DEPENDENT |hpe.primera.cpg.space["{#ID}",shared]<p>**Preprocessing**:</p><p>- JSONPATH: `$.sharedSpaceMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: State |<p>Overall state of the CPG:</p><p>NORMAL (1) - normal operation;</p><p>DEGRADED (2) - degraded state;</p><p>FAILED (3) - abnormal operation;</p><p>UNKNOWN (99) - unknown state.</p> |DEPENDENT |hpe.primera.cpg.state["{#ID}"]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Total (raw) |<p>Total physical (raw) logical disk space in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",raw_total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SAUsage.rawTotalMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Total (raw) |<p>Total physical (raw) logical disk space in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",raw_total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SDUsage.rawTotalMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: User space: Total (raw) |<p>Total physical (raw) logical disk space in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",raw_total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.UsrUsage.rawTotalMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Total |<p>Total logical disk space in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SAUsage.totalMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Total |<p>Total logical disk space in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SDUsage.totalMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: User space: Total |<p>Total logical disk space in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.UsrUsage.totalMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: CPG space: Total |<p>Total CPG space.</p> |DEPENDENT |hpe.primera.cpg.space["{#ID}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalSpaceMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Used (raw) |<p>Amount of physical (raw) logical disk used in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",raw_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SAUsage.rawUsedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Used (raw) |<p>Amount of physical (raw) logical disk used in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",raw_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SDUsage.rawUsedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: User space: Used (raw) |<p>Amount of physical (raw) logical disk used in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",raw_used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.UsrUsage.rawUsedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot administration: Used |<p>Amount of logical disk used in snapshot administration.</p> |DEPENDENT |hpe.primera.cpg.space.sa["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SAUsage.usedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: Snapshot data: Used |<p>Amount of logical disk used in snapshot data space.</p> |DEPENDENT |hpe.primera.cpg.space.sd["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.SDUsage.usedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |CPG [{#NAME}]: Logical disk space: User space: Used |<p>Amount of logical disk used in user data space.</p> |DEPENDENT |hpe.primera.cpg.space.usr["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.UsrUsage.usedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Disk [{#POSITION}]: Get disk data |<p>Disk [{#POSITION}] data</p> |DEPENDENT |hpe.primera.disk["{#ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.id == "{#ID}")].first()`</p> |
+|HPE |Disk [{#POSITION}]: Firmware version |<p>Physical disk firmware version.</p> |DEPENDENT |hpe.primera.disk["{#ID}",fw_version]<p>**Preprocessing**:</p><p>- JSONPATH: `$.fwVersion`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#POSITION}]: Free size |<p>Physical disk free size.</p> |DEPENDENT |hpe.primera.disk["{#ID}",free_size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.freeSizeMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Disk [{#POSITION}]: Manufacturer |<p>Physical disk manufacturer.</p> |DEPENDENT |hpe.primera.disk["{#ID}",manufacturer]<p>**Preprocessing**:</p><p>- JSONPATH: `$.manufacturer`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#POSITION}]: Model |<p>Manufacturer's device ID for disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#POSITION}]: Path A0 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_a0_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.loopA0.degraded`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
+|HPE |Disk [{#POSITION}]: Path A1 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_a1_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.loopA1.degraded`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
+|HPE |Disk [{#POSITION}]: Path B0 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_b0_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.loopB0.degraded`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
+|HPE |Disk [{#POSITION}]: Path B1 degraded |<p>Indicates if this is a degraded path for the disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",loop_b1_degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.loopB1.degraded`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- BOOL_TO_DECIMAL</p> |
+|HPE |Disk [{#POSITION}]: RPM |<p>RPM of the physical disk.</p> |DEPENDENT |hpe.primera.disk["{#ID}",rpm]<p>**Preprocessing**:</p><p>- JSONPATH: `$.RPM`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#POSITION}]: Serial number |<p>Disk drive serial number.</p> |DEPENDENT |hpe.primera.disk["{#ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Disk [{#POSITION}]: State |<p>State of the physical disk:</p><p>Normal (1) - physical disk is in Normal state;</p><p>Degraded (2) - physical disk is not operating normally;</p><p>New (3) - physical disk is new, needs to be admitted;</p><p>Failed (4) - physical disk has failed;</p><p>Unknown (99) - physical disk state is unknown.</p> |DEPENDENT |hpe.primera.disk["{#ID}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 99`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Disk [{#POSITION}]: Total size |<p>Physical disk total size.</p> |DEPENDENT |hpe.primera.disk["{#ID}",total_size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalSizeMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Host [{#NAME}]: Get host data |<p>Host [{#NAME}] data</p> |DEPENDENT |hpe.primera.host["{#ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.id == "{#ID}")].first()`</p> |
+|HPE |Host [{#NAME}]: Comment |<p>Additional information for the host.</p> |DEPENDENT |hpe.primera.host["{#ID}",comment]<p>**Preprocessing**:</p><p>- JSONPATH: `$.descriptors.comment`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Host [{#NAME}]: Contact |<p>The host's owner and contact.</p> |DEPENDENT |hpe.primera.host["{#ID}",contact]<p>**Preprocessing**:</p><p>- JSONPATH: `$.descriptors.contact`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Host [{#NAME}]: IP address |<p>The host's IP address.</p> |DEPENDENT |hpe.primera.host["{#ID}",ipaddress]<p>**Preprocessing**:</p><p>- JSONPATH: `$.descriptors.IPAddr`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Host [{#NAME}]: Location |<p>The host's location.</p> |DEPENDENT |hpe.primera.host["{#ID}",location]<p>**Preprocessing**:</p><p>- JSONPATH: `$.descriptors.location`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Host [{#NAME}]: Model |<p>The host's model.</p> |DEPENDENT |hpe.primera.host["{#ID}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.descriptors.model`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Host [{#NAME}]: OS |<p>The operating system running on the host.</p> |DEPENDENT |hpe.primera.host["{#ID}",os]<p>**Preprocessing**:</p><p>- JSONPATH: `$.descriptors.os`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Get port data |<p>Port [{#NODE}:{#SLOT}:{#CARD.PORT}] data</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].first()`</p> |
+|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Failover state |<p>The state of the failover operation, shown for the two ports indicated in the N:S:P and Partner columns. The value can be one of the following:</p><p>none (1) - no failover in operation;</p><p>failover_pending (2) - in the process of failing over to partner;</p><p>failed_over (3) - failed over to partner;</p><p>active (4) - the partner port is failed over to this port;</p><p>active_down (5) - the partner port is failed over to this port, but this port is down;</p><p>active_failed (6) - the partner port is failed over to this port, but this port is down;</p><p>failback_pending (7) - in the process of failing back from partner.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",failover_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.failoverState`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Link state |<p>Port link state:</p><p>CONFIG_WAIT (1) - configuration wait;</p><p>ALPA_WAIT (2) - ALPA wait;</p><p>LOGIN_WAIT (3) - login wait;</p><p>READY (4) - link is ready;</p><p>LOSS_SYNC (5) - link is loss sync;</p><p>ERROR_STATE (6) - in error state;</p><p>XXX (7) - xxx;</p><p>NONPARTICIPATE (8) - link did not participate;</p><p>COREDUMP (9) - taking coredump;</p><p>OFFLINE (10) - link is offline;</p><p>FWDEAD (11) - firmware is dead;</p><p>IDLE_FOR_RESET (12) - link is idle for reset;</p><p>DHCP_IN_PROGRESS (13) - DHCP is in progress;</p><p>PENDING_RESET (14) - link reset is pending;</p><p>NEW (15) - link in new. This value is applicable for only virtual ports;</p><p>DISABLED (16) - link in disabled. This value is applicable for only virtual ports;</p><p>DOWN (17) - link in down. This value is applicable for only virtual ports;</p><p>FAILED (18) - link in failed. This value is applicable for only virtual ports;</p><p>PURGING (19) - link in purging. This value is applicable for only virtual ports.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.linkState`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Type |<p>Port connection type:</p><p>HOST (1) - FC port connected to hosts or fabric;</p><p>DISK (2) - FC port connected to disks;</p><p>FREE (3) - port is not connected to hosts or disks;</p><p>IPORT (4) - port is in iport mode;</p><p>RCFC (5) - FC port used for remote copy;</p><p>PEER (6) - FC port used for data migration;</p><p>RCIP (7) - IP (Ethernet) port used for remote copy;</p><p>ISCSI (8) - iSCSI (Ethernet) port connected to hosts;</p><p>CNA (9) - CNA port, which can be FCoE or iSCSI;</p><p>FS (10) - Ethernet File Persona ports.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.type`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Hardware type |<p>Hardware type:</p><p>FC (1) - Fibre channel HBA;</p><p>ETH (2) - Ethernet NIC;</p><p>iSCSI (3) - iSCSI HBA;</p><p>CNA (4) - Converged network adapter;</p><p>SAS (5) - SAS HBA;</p><p>COMBO (6) - Combo card;</p><p>NVME (7) - NVMe drive;</p><p>UNKNOWN (99) - unknown hardware type.</p> |DEPENDENT |hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",hw_type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hardwareType`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Task [{#NAME}]: Get task data |<p>Task [{#NAME}] data</p> |DEPENDENT |hpe.primera.task["{#ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.[?(@.id == "{#ID}")].first()`</p> |
+|HPE |Task [{#NAME}]: Finish time |<p>Task finish time.</p> |DEPENDENT |hpe.primera.task["{#ID}",finish_time]<p>**Preprocessing**:</p><p>- JSONPATH: `$.finishTime`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>- NOT_MATCHES_REGEX: `^-$`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- JAVASCRIPT: `The text is too long. Please see the template.`</p> |
+|HPE |Task [{#NAME}]: Start time |<p>Task start time.</p> |DEPENDENT |hpe.primera.task["{#ID}",start_time]<p>**Preprocessing**:</p><p>- JSONPATH: `$.startTime`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>- JAVASCRIPT: `The text is too long. Please see the template.`</p> |
+|HPE |Task [{#NAME}]: Status |<p>Task status:</p><p>DONE (1) - task is finished;</p><p>ACTIVE (2) - task is in progress;</p><p>CANCELLED (3) - task is canceled;</p><p>FAILED (4) - task failed.</p> |DEPENDENT |hpe.primera.task["{#ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|HPE |Task [{#NAME}]: Type |<p>Task type:</p><p>VV_COPY (1) - track the physical copy operations;</p><p>PHYS_COPY_RESYNC (2) - track physical copy resynchronization operations;</p><p>MOVE_REGIONS (3) - track region move operations;</p><p>PROMOTE_SV (4) - track virtual-copy promotions;</p><p>REMOTE_COPY_SYNC (5) - track remote copy group synchronizations;</p><p>REMOTE_COPY_REVERSE (6) - track the reversal of a remote copy group;</p><p>REMOTE_COPY_FAILOVER (7) - track the change-over of a secondary volume group to a primaryvolume group;REMOTE_COPY_RECOVER (8) - track synchronization start after a failover operation from originalsecondary cluster to original primary cluster;</p><p>REMOTE_COPY_RESTORE (9) - tracks the restoration process for groups that have already beenrecovered;</p><p>COMPACT_CPG (10) - track space consolidation in CPGs;</p><p>COMPACT_IDS (11) - track space consolidation in logical disks;</p><p>SNAPSHOT_ACCOUNTING (12) - track progress of snapshot space usage accounting;</p><p>CHECK_VV (13) - track the progress of the check-volume operation;</p><p>SCHEDULED_TASK (14) - track tasks that have been executed by the system scheduler;</p><p>SYSTEM_TASK (15) - track tasks that are periodically run by the storage system;</p><p>BACKGROUND_TASK (16) - track commands started using the starttask command;</p><p>IMPORT_VV (17) - track tasks that migrate data to the local storage system;</p><p>ONLINE_COPY (18) - track physical copy of the volume while online (createvvcopy-online command);</p><p>CONVERT_VV (19) - track tasks that convert a volume from an FPVV to a TPVV, and the reverse;</p><p>BACKGROUND_COMMAND (20) - track background command tasks;</p><p>CLX_SYNC (21) - track CLX synchronization tasks;</p><p>CLX_RECOVERY (22) - track CLX recovery tasks;</p><p>TUNE_SD (23) - tune copy space;</p><p>TUNE_VV (24) - tune virtual volume;</p><p>TUNE_VV_ROLLBACK (25) - tune virtual volume rollback;</p><p>TUNE_VV_RESTART (26) - tune virtual volume restart;</p><p>SYSTEM_TUNING (27) - system tuning;</p><p>NODE_RESCUE (28) - node rescue;</p><p>REPAIR_SYNC (29) - remote copy repair sync;</p><p>REMOTE_COPY_SWOVER (30) - remote copy switchover;</p><p>DEFRAGMENTATION (31) - defragmentation;</p><p>ENCRYPTION_CHANGE (32) - encryption change;</p><p>REMOTE_COPY_FAILSAFE (33) - remote copy failsafe;</p><p>TUNE_TPVV (34) - tune thin virtual volume;</p><p>REMOTE_COPY_CHG_MODE (35) - remote copy change mode;</p><p>ONLINE_PROMOTE (37) - online promote snap;</p><p>RELOCATE_PD (38) - relocate PD;</p><p>PERIODIC_CSS (39) - remote copy periodic CSS;</p><p>TUNEVV_LARGE (40) - tune large virtual volume;</p><p>SD_META_FIXER (41) - compression SD meta fixer;</p><p>DEDUP_DRYRUN (42) - preview dedup ratio;</p><p>COMPR_DRYRUN (43) - compression estimation;</p><p>DEDUP_COMPR_DRYRUN (44) - compression and dedup estimation;</p><p>UNKNOWN (99) - unknown task type.</p> |DEPENDENT |hpe.primera.task["{#ID}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.type`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|HPE |Volume [{#NAME}]: Get volume data |<p>Volume [{#NAME}] data</p> |DEPENDENT |hpe.primera.volume["{#ID}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.id == "{#ID}")].first()`</p> |
+|HPE |Volume [{#NAME}]: Administrative space: Free |<p>Free administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.adminSpace.freeMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Administrative space: Raw reserved |<p>Raw reserved administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",raw_reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.adminSpace.rawReservedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Administrative space: Reserved |<p>Reserved administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.adminSpace.reservedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Administrative space: Used |<p>Used administrative space.</p> |DEPENDENT |hpe.primera.volume.space.admin["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.adminSpace.usedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Compaction ratio |<p>The compaction ratio indicates the overall amount of storage space saved with thin technology.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",compaction]<p>**Preprocessing**:</p><p>- JSONPATH: `$.capacityEfficiency.compaction`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Compression state |<p>Volume compression state:</p><p>YES (1) - compression is enabled on the volume;</p><p>NO (2) - compression is disabled on the volume;</p><p>OFF (3) - compression is turned off;</p><p>NA (4) - compression is not available on the volume.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",compression]<p>**Preprocessing**:</p><p>- JSONPATH: `$.compressionState`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|HPE |Volume [{#NAME}]: Deduplication state |<p>Volume deduplication state:</p><p>YES (1) - enables deduplication on the volume;</p><p>NO (2) - disables deduplication on the volume;</p><p>NA (3) - deduplication is not available;</p><p>OFF (4) - deduplication is turned off.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",deduplication]<p>**Preprocessing**:</p><p>- JSONPATH: `$.deduplicationState`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|HPE |Volume [{#NAME}]: Degraded state |<p>Volume detailed state:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) -lLocal storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",degraded]<p>**Preprocessing**:</p><p>- JSONPATH: `$.degradedStates`</p> |
+|HPE |Volume [{#NAME}]: Failed state |<p>Volume detailed state:</p><p>LDS_NOT_STARTED (1) - LDs not started.</p><p>NOT_STARTED (2) - VV not started.</p><p>NEEDS_CHECK (3) - check for consistency.</p><p>NEEDS_MAINT_CHECK (4) - maintenance check is required.</p><p>INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.</p><p>SNAPDATA_INVALID (6) - invalid snapshot data.</p><p>PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.</p><p>STALE (8) - parts of the VV contain old data because of a copy-on-write operation.</p><p>COPY_FAILED (9) - a promote or copy operation to this volume failed.</p><p>DEGRADED_AVAIL (10) - degraded due to availability.</p><p>DEGRADED_PERF (11) - degraded due to performance.</p><p>PROMOTING (12) - volume is the current target of a promote operation.</p><p>COPY_TARGET (13) - volume is the current target of a physical copy operation.</p><p>RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.</p><p>TUNING (15) - volume tuning is in progress.</p><p>CLOSING (16) - volume is closing.</p><p>REMOVING (17) - removing the volume.</p><p>REMOVING_RETRY (18) - retrying a volume removal operation.</p><p>CREATING (19) - creating a volume.</p><p>COPY_SOURCE (20) - copy source.</p><p>IMPORTING (21) - importing a volume.</p><p>CONVERTING (22) - converting a volume.</p><p>INVALID (23) - invalid.</p><p>EXCLUSIVE (24) - local storage system has exclusive access to the volume.</p><p>CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.</p><p>STANDBY (26) - volume in standby mode.</p><p>SD_META_INCONSISTENT (27) - SD Meta Inconsistent.</p><p>SD_NEEDS_FIX (28) - SD needs fix.</p><p>SD_META_FIXING (29) - SD meta fix.</p><p>UNKNOWN (999) - unknown state.</p><p>NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}",failed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.failedStates`</p><p>- JAVASCRIPT: `return JSON.stringify(JSON.parse(value));`</p> |
+|HPE |Volume [{#NAME}]: Overprovisioning ratio |<p>Overprovisioning capacity efficiency ratio.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",overprovisioning]<p>**Preprocessing**:</p><p>- JSONPATH: `$.capacityEfficiency.overProvisioning`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Remote copy status |<p>Remote copy status of the volume:</p><p>NONE (1) - volume is not associated with remote copy;</p><p>PRIMARY (2) - volume is the primary copy;</p><p>SECONDARY (3) - volume is the secondary copy;</p><p>SNAP (4) - volume is the remote copy snapshot;</p><p>SYNC (5) - volume is a remote copy snapshot being used for synchronization;</p><p>DELETE (6) - volume is a remote copy snapshot that is marked for deletion;</p><p>UNKNOWN (99) - remote copy status is unknown for this volume.</p> |DEPENDENT |hpe.primera.volume.status["{#ID}",rcopy]<p>**Preprocessing**:</p><p>- JSONPATH: `$.rcopyStatus`</p> |
+|HPE |Volume [{#NAME}]: Snapshot space: Free |<p>Free snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.snapshotSpace.freeMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Snapshot space: Raw reserved |<p>Raw reserved snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",raw_reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.snapshotSpace.rawReservedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Snapshot space: Reserved |<p>Reserved snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.snapshotSpace.reservedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Snapshot space: Used |<p>Used snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.snapshot["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.snapshotSpace.usedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: State |<p>State of the volume:</p><p>NORMAL (1) - normal operation;</p><p>DEGRADED (2) - degraded state;</p><p>FAILED (3) - abnormal operation;</p><p>UNKNOWN (99) - unknown state.</p> |DEPENDENT |hpe.primera.volume.state["{#ID}"]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p> |
+|HPE |Volume [{#NAME}]: Storage space saved using compression |<p>Indicates the amount of storage space saved using compression.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",compression]<p>**Preprocessing**:</p><p>- JSONPATH: `$.capacityEfficiency.compression`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Storage space saved using deduplication |<p>Indicates the amount of storage space saved using deduplication.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",deduplication]<p>**Preprocessing**:</p><p>- JSONPATH: `$.capacityEfficiency.deduplication`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Storage space saved using deduplication and compression |<p>Indicates the amount of storage space saved using deduplication and compression together.</p> |DEPENDENT |hpe.primera.volume.capacity.efficiency["{#ID}",reduction]<p>**Preprocessing**:</p><p>- JSONPATH: `$.capacityEfficiency.dataReduction`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Volume [{#NAME}]: Total reserved space |<p>Total reserved space.</p> |DEPENDENT |hpe.primera.volume.space.total["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalReservedMiB`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Total space |<p>Virtual size of volume.</p> |DEPENDENT |hpe.primera.volume.space.total["{#ID}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.sizeMiB`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: Total used space |<p>Total used space. Sum of used user space and used snapshot space.</p> |DEPENDENT |hpe.primera.volume.space.total["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalUsedMiB`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: User space: Free |<p>Free user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.userSpace.freeMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: User space: Raw reserved |<p>Raw reserved user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",raw_reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.userSpace.rawReservedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: User space: Reserved |<p>Reserved user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",reserved]<p>**Preprocessing**:</p><p>- JSONPATH: `$.userSpace.reservedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p><p>- MULTIPLIER: `1048576`</p> |
+|HPE |Volume [{#NAME}]: User space: Used |<p>Used user space.</p> |DEPENDENT |hpe.primera.volume.space.user["{#ID}",used]<p>**Preprocessing**:</p><p>- JSONPATH: `$.userSpace.usedMiB`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- MULTIPLIER: `1048576`</p> |
## Triggers
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
-|HPE Primera: There are errors in requests to WSAPI |<p>Zabbix has received errors in requests to WSAPI.</p> |`length(last(/HPE Primera by HTTP/hpe.primera.data.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- HPE Primera: Service is unavailable</p> |
+|HPE Primera: There are errors in requests to WSAPI |<p>Zabbix has received errors in requests to WSAPI.</p> |`length(last(/HPE Primera by HTTP/hpe.primera.get.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- HPE Primera: Service is unavailable</p> |
|HPE Primera: Service is unavailable |<p>-</p> |`max(/HPE Primera by HTTP/net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{HOST.CONN}","{$HPE.PRIMERA.API.PORT}"],5m)=0` |HIGH |<p>Manual close: YES</p> |
|CPG [{#NAME}]: Degraded |<p>CPG [{#NAME}] is in degraded state.</p> |`last(/HPE Primera by HTTP/hpe.primera.cpg.state["{#ID}"])=2` |AVERAGE | |
|CPG [{#NAME}]: Failed |<p>CPG [{#NAME}] is in failed state.</p> |`last(/HPE Primera by HTTP/hpe.primera.cpg.state["{#ID}"])=3` |HIGH | |
diff --git a/templates/san/hpe_primera_http/template_san_hpe_primera_http.yaml b/templates/san/hpe_primera_http/template_san_hpe_primera_http.yaml
index 7b92c4e1dd5..97fb3b66ccb 100644
--- a/templates/san/hpe_primera_http/template_san_hpe_primera_http.yaml
+++ b/templates/san/hpe_primera_http/template_san_hpe_primera_http.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-06-01T08:17:46Z'
+ date: '2022-09-16T12:16:52Z'
groups:
-
uuid: 7c2cb727f85b492d88cd56e17127c64d
@@ -31,51 +31,58 @@ zabbix_export:
name: Templates/SAN
items:
-
- uuid: 484a6b9568234bbca9b4bcae2833bbf1
- name: 'HPE Primera: Get errors'
+ uuid: d5b8a74991d34652973a78d58203d5fd
+ name: 'HPE Primera: Disks total'
type: DEPENDENT
- key: hpe.primera.data.errors
+ key: hpe.primera.disks.total
delay: '0'
history: 7d
- trends: '0'
- value_type: TEXT
- description: 'A list of errors from WSAPI requests.'
+ description: 'Number of physical disks.'
preprocessing:
-
type: JSONPATH
parameters:
- - $.errors
+ - $.total
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.disks
tags:
-
tag: component
- value: raw
- triggers:
+ value: disk
-
- uuid: 570d440e7ec9445585003208eca06e63
- expression: 'length(last(/HPE Primera by HTTP/hpe.primera.data.errors))>0'
- name: 'HPE Primera: There are errors in requests to WSAPI'
- opdata: '{ITEM.LASTVALUE1}'
- priority: AVERAGE
- description: 'Zabbix has received errors in requests to WSAPI.'
- dependencies:
- -
- name: 'HPE Primera: Service is unavailable'
- expression: 'max(/HPE Primera by HTTP/net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{HOST.CONN}","{$HPE.PRIMERA.API.PORT}"],5m)=0'
- tags:
- -
- tag: scope
- value: availability
+ tag: component
+ value: storage
+ -
+ uuid: 89aa29280dc349a2acaae520849857e0
+ name: 'HPE Primera: Get CPGs data'
+ type: DEPENDENT
+ key: hpe.primera.get.cpgs
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Common provisioning groups data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.cpgs
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.primera.get.data
+ tags:
+ -
+ tag: component
+ value: raw
-
uuid: 530e20083da8423e9d30c8342f1b7da3
name: 'HPE Primera: Get data'
type: SCRIPT
- key: hpe.primera.data.get
+ key: hpe.primera.get.data
history: 0d
trends: '0'
value_type: TEXT
@@ -159,6 +166,7 @@ zabbix_export:
}
catch (error) {
throw 'Failed to parse response received from device API.';
+ }
}
else {
throw 'No data received by ' + method + ' request.';
@@ -249,31 +257,178 @@ zabbix_export:
tag: component
value: raw
-
- uuid: d5b8a74991d34652973a78d58203d5fd
- name: 'HPE Primera: Disks total'
+ uuid: 3940a3313b354d64924fc93be9b9db04
+ name: 'HPE Primera: Get disks data'
type: DEPENDENT
- key: hpe.primera.disks.total
+ key: hpe.primera.get.disks
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Disks data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.disks
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.primera.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 484a6b9568234bbca9b4bcae2833bbf1
+ name: 'HPE Primera: Get errors'
+ type: DEPENDENT
+ key: hpe.primera.get.errors
delay: '0'
history: 7d
- description: 'Number of physical disks.'
+ trends: '0'
+ value_type: TEXT
+ description: 'A list of errors from WSAPI requests.'
preprocessing:
-
type: JSONPATH
parameters:
- - $.disks.total
+ - $.errors
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.data
tags:
-
tag: component
- value: disk
+ value: raw
+ triggers:
+ -
+ uuid: 570d440e7ec9445585003208eca06e63
+ expression: 'length(last(/HPE Primera by HTTP/hpe.primera.get.errors))>0'
+ name: 'HPE Primera: There are errors in requests to WSAPI'
+ opdata: '{ITEM.LASTVALUE1}'
+ priority: AVERAGE
+ description: 'Zabbix has received errors in requests to WSAPI.'
+ dependencies:
+ -
+ name: 'HPE Primera: Service is unavailable'
+ expression: 'max(/HPE Primera by HTTP/net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{HOST.CONN}","{$HPE.PRIMERA.API.PORT}"],5m)=0'
+ tags:
+ -
+ tag: scope
+ value: availability
+ -
+ uuid: c027fd5d976d42bd90126edb46ddfe88
+ name: 'HPE Primera: Get hosts data'
+ type: DEPENDENT
+ key: hpe.primera.get.hosts
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Hosts data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.hosts
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.primera.get.data
+ tags:
-
tag: component
- value: storage
+ value: raw
+ -
+ uuid: 1569a51d018345b390d3e2b3c368ba85
+ name: 'HPE Primera: Get ports data'
+ type: DEPENDENT
+ key: hpe.primera.get.ports
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Ports data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.ports
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.primera.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 6baed792c06444f598aec830f90f2f4c
+ name: 'HPE Primera: Get system data'
+ type: DEPENDENT
+ key: hpe.primera.get.system
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'System data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.system
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.primera.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 9d5697db544f4f3993e6df499ad51b49
+ name: 'HPE Primera: Get tasks data'
+ type: DEPENDENT
+ key: hpe.primera.get.tasks
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Tasks data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.tasks
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.primera.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 7faad091257b44f1a7ecf2c9156c83ca
+ name: 'HPE Primera: Get volumes data'
+ type: DEPENDENT
+ key: hpe.primera.get.volumes
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Volumes data.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.volumes
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.primera.get.data
+ tags:
+ -
+ tag: component
+ value: raw
-
uuid: efc450d0682c4c5d93df41d05c10eceb
name: 'HPE Primera: Capacity allocated'
@@ -287,7 +442,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.allocatedCapacityMiB
+ - $.allocatedCapacityMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -297,7 +452,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -318,7 +473,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.failedCapacityMiB
+ - $.failedCapacityMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -328,7 +483,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -349,7 +504,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.freeCapacityMiB
+ - $.freeCapacityMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -359,7 +514,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -380,7 +535,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.totalCapacityMiB
+ - $.totalCapacityMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -390,7 +545,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -411,7 +566,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.chunkletSizeMiB
+ - $.chunkletSizeMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -421,7 +576,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -444,14 +599,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.contact
+ - $.contact
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -471,14 +626,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.location
+ - $.location
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -498,13 +653,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.model
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -524,13 +679,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.name
+ - $.name
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 6h
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -547,13 +702,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.onlineNodes.length()
+ - $.onlineNodes.length()
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -570,13 +725,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.totalNodes
+ - $.totalNodes
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -596,13 +751,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.serialNumber
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -621,13 +776,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.system.systemVersion
+ - $.systemVersion
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.system
tags:
-
tag: component
@@ -697,13 +852,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].numFPVVs.first()'
+ - $.numFPVVs
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -727,7 +882,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].rawFreeSpaceMiB.first()'
+ - $.rawFreeSpaceMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -737,7 +892,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -761,7 +916,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].rawSharedSpaceMiB.first()'
+ - $.rawSharedSpaceMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -771,7 +926,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -792,7 +947,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].rawTotalSpaceMiB.first()'
+ - $.rawTotalSpaceMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -802,7 +957,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -826,7 +981,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SAUsage.rawTotalMiB.first()'
+ - $.SAUsage.rawTotalMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -836,7 +991,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -860,7 +1015,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SAUsage.rawUsedMiB.first()'
+ - $.SAUsage.rawUsedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -870,7 +1025,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -894,7 +1049,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SAUsage.totalMiB.first()'
+ - $.SAUsage.totalMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -904,7 +1059,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -928,7 +1083,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SAUsage.usedMiB.first()'
+ - $.SAUsage.usedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -938,7 +1093,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -962,7 +1117,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SDUsage.rawTotalMiB.first()'
+ - $.SDUsage.rawTotalMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -972,7 +1127,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -996,7 +1151,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SDUsage.rawUsedMiB.first()'
+ - $.SDUsage.rawUsedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1006,7 +1161,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1030,7 +1185,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SDUsage.totalMiB.first()'
+ - $.SDUsage.totalMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1040,7 +1195,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1064,7 +1219,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].SDUsage.usedMiB.first()'
+ - $.SDUsage.usedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1074,7 +1229,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1098,7 +1253,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.rawTotalMiB.first()'
+ - $.UsrUsage.rawTotalMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1108,7 +1263,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1132,7 +1287,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.rawUsedMiB.first()'
+ - $.UsrUsage.rawUsedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1142,7 +1297,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1166,7 +1321,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.totalMiB.first()'
+ - $.UsrUsage.totalMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1176,7 +1331,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1200,7 +1355,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].UsrUsage.usedMiB.first()'
+ - $.UsrUsage.usedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1210,7 +1365,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1234,7 +1389,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].freeSpaceMiB.first()'
+ - $.freeSpaceMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1244,7 +1399,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1268,7 +1423,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].sharedSpaceMiB.first()'
+ - $.sharedSpaceMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1278,7 +1433,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1302,7 +1457,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].totalSpaceMiB.first()'
+ - $.totalSpaceMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1312,7 +1467,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1372,9 +1527,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].degradedStates.first()'
+ - $.degradedStates
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1434,13 +1589,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].failedStates.first()'
+ - $.failedStates
-
type: JAVASCRIPT
parameters:
- 'return JSON.stringify(JSON.parse(value));'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1471,9 +1626,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].state.first()'
+ - $.state
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1525,13 +1680,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].numTDVVs.first()'
+ - $.numTDVVs
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1554,13 +1709,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.cpgs.members[?(@.id == "{#ID}")].numTPVVs.first()'
+ - $.numTPVVs
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.cpg["{#ID}",data]'
tags:
-
tag: component
@@ -1571,6 +1726,33 @@ zabbix_export:
-
tag: cpg
value: '{#NAME}'
+ -
+ uuid: 54afd11ca82b4f94861cc145ca681291
+ name: 'CPG [{#NAME}]: Get CPG data'
+ type: DEPENDENT
+ key: 'hpe.primera.cpg["{#ID}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'CPG {#NAME} data'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.id == "{#ID}")].first()'
+ master_item:
+ key: hpe.primera.get.cpgs
+ tags:
+ -
+ tag: component
+ value: cpg
+ -
+ tag: component
+ value: raw
+ -
+ tag: cpg
+ value: '{#NAME}'
graph_prototypes:
-
uuid: c5d1e864f752465eae8822c06d635aeb
@@ -1717,7 +1899,7 @@ zabbix_export:
host: 'HPE Primera by HTTP'
key: 'hpe.primera.cpg.space.usr["{#ID}",raw_used]'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.cpgs
lld_macro_paths:
-
lld_macro: '{#ID}'
@@ -1729,7 +1911,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.cpgs.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1743,6 +1925,33 @@ zabbix_export:
description: 'List of physical disk resources.'
item_prototypes:
-
+ uuid: 811d27264b5e41e3a9e9f397888cda47
+ name: 'Disk [{#POSITION}]: Get disk data'
+ type: DEPENDENT
+ key: 'hpe.primera.disk["{#ID}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Disk [{#POSITION}] data'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.id == "{#ID}")].first()'
+ master_item:
+ key: hpe.primera.get.disks
+ tags:
+ -
+ tag: component
+ value: disk
+ -
+ tag: component
+ value: raw
+ -
+ tag: disk
+ value: '{#POSITION}'
+ -
uuid: 40e074af5d7f44bb8691290971fc7c5c
name: 'Disk [{#POSITION}]: Free size'
type: DEPENDENT
@@ -1755,7 +1964,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].freeSizeMiB.first()'
+ - $.freeSizeMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1765,7 +1974,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -1790,13 +1999,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].fwVersion.first()'
+ - $.fwVersion
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -1821,7 +2030,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].loopA0.degraded.first()'
+ - $.loopA0.degraded
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
@@ -1832,7 +2041,7 @@ zabbix_export:
parameters:
- ''
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -1868,7 +2077,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].loopA1.degraded.first()'
+ - $.loopA1.degraded
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
@@ -1879,7 +2088,7 @@ zabbix_export:
parameters:
- ''
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -1915,7 +2124,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].loopB0.degraded.first()'
+ - $.loopB0.degraded
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
@@ -1926,7 +2135,7 @@ zabbix_export:
parameters:
- ''
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -1962,7 +2171,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].loopB1.degraded.first()'
+ - $.loopB1.degraded
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
@@ -1973,7 +2182,7 @@ zabbix_export:
parameters:
- ''
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -2009,13 +2218,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].manufacturer.first()'
+ - $.manufacturer
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -2040,13 +2249,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -2070,14 +2279,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].RPM.first()'
+ - $.RPM
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -2102,13 +2311,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -2140,7 +2349,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].state.first()'
+ - $.state
error_handler: CUSTOM_VALUE
error_handler_params: '99'
-
@@ -2148,7 +2357,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -2212,7 +2421,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.disks.members[?(@.id == "{#ID}")].totalSizeMiB.first()'
+ - $.totalSizeMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2222,7 +2431,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.disk["{#ID}",data]'
tags:
-
tag: component
@@ -2234,7 +2443,7 @@ zabbix_export:
tag: disk
value: '{#POSITION}'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.disks
lld_macro_paths:
-
lld_macro: '{#ID}'
@@ -2246,7 +2455,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.disks.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2257,14 +2466,14 @@ zabbix_export:
type: DEPENDENT
key: hpe.primera.hosts.discovery
delay: '0'
- description: 'List of host properties.'
filter:
evaltype: AND
conditions:
- -
+ -
macro: '{#NAME}'
operator: EXISTS
formulaid: A
+ description: 'List of host properties.'
item_prototypes:
-
uuid: 142a03a36dbf477ebbcb99994efe4246
@@ -2280,14 +2489,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.hosts.members[?(@.id == "{#ID}")].descriptors.comment.first()'
+ - $.descriptors.comment
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.host["{#ID}",data]'
tags:
-
tag: component
@@ -2309,14 +2518,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.hosts.members[?(@.id == "{#ID}")].descriptors.contact.first()'
+ - $.descriptors.contact
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.host["{#ID}",data]'
tags:
-
tag: component
@@ -2325,6 +2534,33 @@ zabbix_export:
tag: host
value: '{#NAME}'
-
+ uuid: dfa476d826d34f6bb0f2015b06b6c272
+ name: 'Host [{#NAME}]: Get host data'
+ type: DEPENDENT
+ key: 'hpe.primera.host["{#ID}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Host [{#NAME}] data'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.id == "{#ID}")].first()'
+ master_item:
+ key: hpe.primera.get.hosts
+ tags:
+ -
+ tag: component
+ value: host
+ -
+ tag: component
+ value: raw
+ -
+ tag: host
+ value: '{#NAME}'
+ -
uuid: b3bd017e96d843248bbb9cb2240e861b
name: 'Host [{#NAME}]: IP address'
type: DEPENDENT
@@ -2338,14 +2574,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.hosts.members[?(@.id == "{#ID}")].descriptors.IPAddr.first()'
+ - $.descriptors.IPAddr
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.host["{#ID}",data]'
tags:
-
tag: component
@@ -2367,14 +2603,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.hosts.members[?(@.id == "{#ID}")].descriptors.location.first()'
+ - $.descriptors.location
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.host["{#ID}",data]'
tags:
-
tag: component
@@ -2396,14 +2632,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.hosts.members[?(@.id == "{#ID}")].descriptors.model.first()'
+ - $.descriptors.model
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.host["{#ID}",data]'
tags:
-
tag: component
@@ -2425,14 +2661,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.hosts.members[?(@.id == "{#ID}")].descriptors.os.first()'
+ - $.descriptors.os
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.host["{#ID}",data]'
tags:
-
tag: component
@@ -2441,7 +2677,7 @@ zabbix_export:
tag: host
value: '{#NAME}'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.hosts
lld_macro_paths:
-
lld_macro: '{#ID}'
@@ -2453,7 +2689,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.hosts.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2475,6 +2711,33 @@ zabbix_export:
description: 'List of ports.'
item_prototypes:
-
+ uuid: 3b3d82c9c161429294a69774ec0daf5d
+ name: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Get port data'
+ type: DEPENDENT
+ key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}] data'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].first()'
+ master_item:
+ key: hpe.primera.get.ports
+ tags:
+ -
+ tag: component
+ value: port
+ -
+ tag: component
+ value: raw
+ -
+ tag: port
+ value: '{#NODE}:{#SLOT}:{#CARD.PORT}'
+ -
uuid: 9241e0b26de74ea49f28e1c09e15a2cd
name: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Failover state'
type: DEPENDENT
@@ -2497,14 +2760,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].failoverState.first()'
+ - $.failoverState
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
tags:
-
tag: component
@@ -2550,13 +2813,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].hardwareType.first()'
+ - $.hardwareType
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
tags:
-
tag: component
@@ -2599,13 +2862,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].linkState.first()'
+ - $.linkState
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
tags:
-
tag: component
@@ -2666,13 +2929,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.ports.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].type.first()'
+ - $.type
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
tags:
-
tag: component
@@ -2681,7 +2944,7 @@ zabbix_export:
tag: port
value: '{#NODE}:{#SLOT}:{#CARD.PORT}'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.ports
lld_macro_paths:
-
lld_macro: '{#CARD.PORT}'
@@ -2699,7 +2962,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.ports.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2735,6 +2998,33 @@ zabbix_export:
description: 'List of tasks started within last 24 hours.'
item_prototypes:
-
+ uuid: 8c64d0364b0f40c8a73f51fe74962934
+ name: 'Task [{#NAME}]: Get task data'
+ type: DEPENDENT
+ key: 'hpe.primera.task["{#ID}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Task [{#NAME}] data'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.[?(@.id == "{#ID}")].first()'
+ master_item:
+ key: hpe.primera.get.tasks
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: task
+ -
+ tag: task
+ value: '{#NAME}'
+ -
uuid: cbcdf169dcf646cb959206bbb6cf3642
name: 'Task [{#NAME}]: Finish time'
type: DEPENDENT
@@ -2747,7 +3037,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.tasks[?(@.id == "{#ID}")].finishTime.first()'
+ - $.finishTime
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2765,7 +3055,7 @@ zabbix_export:
return Date.parse(raw_date[0] + 'T' + raw_date[1] + raw_date[2] + ':00')/1000;
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.task["{#ID}",data]'
tags:
-
tag: component
@@ -2786,7 +3076,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.tasks[?(@.id == "{#ID}")].startTime.first()'
+ - $.startTime
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2799,7 +3089,7 @@ zabbix_export:
return Date.parse(raw_date[0] + 'T' + raw_date[1] + raw_date[2] + ':00')/1000;
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.task["{#ID}",data]'
tags:
-
tag: component
@@ -2827,13 +3117,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.tasks[?(@.id == "{#ID}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 10m
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.task["{#ID}",data]'
tags:
-
tag: component
@@ -2921,13 +3211,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.tasks[?(@.id == "{#ID}")].type.first()'
+ - $.type
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 6h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.task["{#ID}",data]'
tags:
-
tag: component
@@ -2936,7 +3226,7 @@ zabbix_export:
tag: task
value: '{#NAME}'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.tasks
lld_macro_paths:
-
lld_macro: '{#ID}'
@@ -2949,10 +3239,6 @@ zabbix_export:
path: $.type
preprocessing:
-
- type: JSONPATH
- parameters:
- - $.tasks
- -
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 6h
@@ -2989,14 +3275,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.compaction.first()'
+ - $.capacityEfficiency.compaction
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3020,14 +3306,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.compression.first()'
+ - $.capacityEfficiency.compression
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3051,14 +3337,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.deduplication.first()'
+ - $.capacityEfficiency.deduplication
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3082,14 +3368,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.overProvisioning.first()'
+ - $.capacityEfficiency.overProvisioning
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3113,14 +3399,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].capacityEfficiency.dataReduction.first()'
+ - $.capacityEfficiency.dataReduction
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3144,7 +3430,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].adminSpace.freeMiB.first()'
+ - $.adminSpace.freeMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3154,7 +3440,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3178,7 +3464,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].adminSpace.rawReservedMiB.first()'
+ - $.adminSpace.rawReservedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3188,7 +3474,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3212,7 +3498,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].adminSpace.reservedMiB.first()'
+ - $.adminSpace.reservedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3222,7 +3508,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3246,7 +3532,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].adminSpace.usedMiB.first()'
+ - $.adminSpace.usedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3256,7 +3542,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3280,7 +3566,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.freeMiB.first()'
+ - $.snapshotSpace.freeMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3290,7 +3576,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3314,7 +3600,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.rawReservedMiB.first()'
+ - $.snapshotSpace.rawReservedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3324,7 +3610,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3348,7 +3634,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.reservedMiB.first()'
+ - $.snapshotSpace.reservedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3358,7 +3644,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3382,7 +3668,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].snapshotSpace.usedMiB.first()'
+ - $.snapshotSpace.usedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3392,7 +3678,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3416,7 +3702,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].totalReservedMiB.first()'
+ - $.totalReservedMiB
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
@@ -3427,7 +3713,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3451,7 +3737,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].sizeMiB.first()'
+ - $.sizeMiB
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
@@ -3462,7 +3748,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3486,14 +3772,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].totalUsedMiB.first()'
+ - $.totalUsedMiB
error_handler: DISCARD_VALUE
-
type: MULTIPLIER
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3517,7 +3803,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].userSpace.freeMiB.first()'
+ - $.userSpace.freeMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3527,7 +3813,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3551,7 +3837,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].userSpace.rawReservedMiB.first()'
+ - $.userSpace.rawReservedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3561,7 +3847,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3585,7 +3871,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].userSpace.reservedMiB.first()'
+ - $.userSpace.reservedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3595,7 +3881,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3619,7 +3905,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].userSpace.usedMiB.first()'
+ - $.userSpace.usedMiB
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3629,7 +3915,7 @@ zabbix_export:
parameters:
- '1048576'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3660,13 +3946,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].compressionState.first()'
+ - $.compressionState
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 6h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3697,13 +3983,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].deduplicationState.first()'
+ - $.deduplicationState
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 6h
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3763,9 +4049,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].degradedStates.first()'
+ - $.degradedStates
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3825,13 +4111,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].failedStates.first()'
+ - $.failedStates
-
type: JAVASCRIPT
parameters:
- 'return JSON.stringify(JSON.parse(value));'
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3862,9 +4148,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].state.first()'
+ - $.state
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3929,9 +4215,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.volumes.members[?(@.id == "{#ID}")].rcopyStatus.first()'
+ - $.rcopyStatus
master_item:
- key: hpe.primera.data.get
+ key: 'hpe.primera.volume["{#ID}",data]'
tags:
-
tag: component
@@ -3942,6 +4228,33 @@ zabbix_export:
-
tag: volume
value: '{#NAME}'
+ -
+ uuid: 37c200429b414e149fb970c269721154
+ name: 'Volume [{#NAME}]: Get volume data'
+ type: DEPENDENT
+ key: 'hpe.primera.volume["{#ID}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Volume [{#NAME}] data'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.id == "{#ID}")].first()'
+ master_item:
+ key: hpe.primera.get.volumes
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: volume
+ -
+ tag: volume
+ value: '{#NAME}'
graph_prototypes:
-
uuid: 8c7139d2b7d94773ad6ef813c7fa59c9
@@ -4061,7 +4374,7 @@ zabbix_export:
host: 'HPE Primera by HTTP'
key: 'hpe.primera.volume.space.user["{#ID}",used]'
master_item:
- key: hpe.primera.data.get
+ key: hpe.primera.get.volumes
lld_macro_paths:
-
lld_macro: '{#ID}'
@@ -4073,7 +4386,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.volumes.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
diff --git a/templates/server/hpe_synergy_http/README.md b/templates/server/hpe_synergy_http/README.md
index 3a4f7b35f12..3367ee0f922 100644
--- a/templates/server/hpe_synergy_http/README.md
+++ b/templates/server/hpe_synergy_http/README.md
@@ -3,13 +3,13 @@
## Overview
-For Zabbix version: 6.0 and higher
+For Zabbix version: 6.0 and higher.
The template to monitor HPE Synergy by HTTP.
It works without any external scripts and uses the script item.
This template was tested on:
-- HPE Synergy, version 12000 Frame with API version 1200
+- HPE Synergy, version 12000 Frame with API version 1200.
## Setup
@@ -40,278 +40,312 @@ There are no template links in this template.
|Name|Description|Type|Key and additional info|
|----|-----------|----|----|
-|Appliance bays discovery |<p>A list of the appliance bays in the enclosure.</p> |DEPENDENT |hpe.synergy.appliances.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.applianceBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Cross bars discovery |<p>SDX cross fabric module connects to all compute devices installed in the system enclosure and brings in the capability of hard partitioning. Crossbar details are relevant only for enclosures with type "SDX".</p> |DEPENDENT |hpe.synergy.crossbars.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.crossBars`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Datacenters discovery |<p>A list of the datacenters.</p> |DEPENDENT |hpe.synergy.datacenters.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.datacenters.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Devices discovery |<p>A list of device bays in the enclosure.</p> |DEPENDENT |hpe.synergy.devices.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.deviceBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Enclosures discovery |<p>A list of enclosures resources.</p> |DEPENDENT |hpe.synergy.enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Ethernet networks discovery |<p>A list of the ethernet networks.</p> |DEPENDENT |hpe.synergy.ethernet.networks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["ethernet-networks"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Fabrics discovery |<p>A list of the fabrics.</p> |DEPENDENT |hpe.synergy.fabrics.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.fabrics.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Fans discovery |<p>A list of the fan bays in the enclosure.</p> |DEPENDENT |hpe.synergy.fans.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.fanBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|FC networks discovery |<p>A list of the FC networks.</p> |DEPENDENT |hpe.synergy.fc.networks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["fc-networks"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Hypervisor managers discovery |<p>A list of the hypervisor managers.</p> |DEPENDENT |hpe.synergy.hypervisor.managers.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["hypervisor-managers"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Interconnects discovery |<p>Interconnects are centrally managed by their containing logical interconnect. The interconnect provides a physical view of detailed downlink and uplink port state and configuration, including the current link state, speed, port role (uplink, downlink, or stacking), current pluggable media, power state, and immediate connected neighbor.</p> |DEPENDENT |hpe.synergy.interconnects.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Logical enclosures discovery |<p>A list of the logical enclosures.</p> |DEPENDENT |hpe.synergy.logical_enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["logical-enclosures"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Managers discovery |<p>A list of the Synergy Frame Link Module bays.</p> |DEPENDENT |hpe.synergy.frame_link_modules.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.managerBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|nPar discovery |<p>Electrically isolated hardware partition (nPar). Partition details are relevant only for enclosures with type "SDX".</p> |DEPENDENT |hpe.synergy.npar.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.partitions`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Power supplies discovery |<p>List of power supply bays in the enclosure.</p> |DEPENDENT |hpe.synergy.ps.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.powerSupplyBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Racks discovery |<p>A list of the racks.</p> |DEPENDENT |hpe.synergy.racks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.racks.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Server hardware discovery |<p>The server hardware resource is a representation of a physical server.</p> |DEPENDENT |hpe.synergy.server_hardware.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Storage pools discovery |<p>A list of the storage pools.</p> |DEPENDENT |hpe.synergy.storage_pools.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Storage systems discovery |<p>A list of the storage systems.</p> |DEPENDENT |hpe.synergy.storage_systems.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-systems"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Storage volumes discovery |<p>A list of the storage volumes.</p> |DEPENDENT |hpe.synergy.storage_volumes.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-volumes"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|Uplink sets discovery |<p>A list of the uplink sets.</p> |DEPENDENT |hpe.synergy.uplink_sets.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.["uplink-sets"].members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Appliance bays discovery |<p>A list of the appliance bays in the enclosure.</p> |DEPENDENT |hpe.synergy.appliances.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members.[0].applianceBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Cross bars discovery |<p>SDX cross fabric module connects to all computing devices installed in the system enclosure and brings in the capability of hard partitioning. Crossbar details are relevant only for enclosures with type "SDX".</p> |DEPENDENT |hpe.synergy.crossbars.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members.[0].crossBars`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Datacenters discovery |<p>A list of the datacenters.</p> |DEPENDENT |hpe.synergy.datacenters.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Devices discovery |<p>A list of device bays in the enclosure.</p> |DEPENDENT |hpe.synergy.devices.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members.[0].deviceBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Enclosures discovery |<p>A list of enclosures resources.</p> |DEPENDENT |hpe.synergy.enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Ethernet networks discovery |<p>A list of the ethernet networks.</p> |DEPENDENT |hpe.synergy.ethernet.networks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Fabrics discovery |<p>A list of the fabrics.</p> |DEPENDENT |hpe.synergy.fabrics.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Fans discovery |<p>A list of the fan bays in the enclosure.</p> |DEPENDENT |hpe.synergy.fans.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members.[0].fanBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|FC networks discovery |<p>A list of the FC networks.</p> |DEPENDENT |hpe.synergy.fc.networks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Hypervisor managers discovery |<p>A list of the hypervisor managers.</p> |DEPENDENT |hpe.synergy.hypervisor.managers.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Interconnects discovery |<p>Interconnects are centrally managed by their containing logical interconnect. The interconnect provides a physical view of a detailed downlink and uplink port state and configuration, including the current link state, speed, port role (uplink, downlink, or stacking), current pluggable media, power state, and immediate connected neighbor.</p> |DEPENDENT |hpe.synergy.interconnects.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Logical enclosures discovery |<p>A list of the logical enclosures.</p> |DEPENDENT |hpe.synergy.logical_enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Managers discovery |<p>A list of the Synergy Frame Link Module bays.</p> |DEPENDENT |hpe.synergy.frame_link_modules.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members.[0].managerBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|nPar discovery |<p>Electrically isolated hardware partition (nPar). Partition details are relevant only for enclosures with type "SDX".</p> |DEPENDENT |hpe.synergy.npar.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members.[0].partitions`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Power supplies discovery |<p>List of power supply bays in the enclosure.</p> |DEPENDENT |hpe.synergy.ps.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members.[0].powerSupplyBays`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Racks discovery |<p>A list of the racks.</p> |DEPENDENT |hpe.synergy.racks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Server hardware discovery |<p>The server hardware resource is a representation of a physical server.</p> |DEPENDENT |hpe.synergy.server_hardware.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Storage pools discovery |<p>A list of the storage pools.</p> |DEPENDENT |hpe.synergy.storage_pools.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Storage systems discovery |<p>A list of the storage systems.</p> |DEPENDENT |hpe.synergy.storage_systems.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Storage volumes discovery |<p>A list of the storage volumes.</p> |DEPENDENT |hpe.synergy.storage_volumes.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|Uplink sets discovery |<p>A list of the uplink sets.</p> |DEPENDENT |hpe.synergy.uplink_sets.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.members`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
## Items collected
|Group|Name|Description|Type|Key and additional info|
|-----|----|-----------|----|---------------------|
-|HPE |HPE Synergy: Get data |<p>The JSON with result of API requests.</p> |SCRIPT |hpe.synergy.data.get<p>**Expression**:</p>`The text is too long. Please see the template.` |
-|HPE |HPE Synergy: Get errors |<p>A list of errors from API requests.</p> |DEPENDENT |hpe.synergy.data.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.errors`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |HPE Synergy: Get enclosures |<p>A list of enclosures.</p> |DEPENDENT |hpe.synergy.data.enclosures<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members.[0]`</p> |
-|HPE |HPE Synergy: Service ping |<p>Checks if the service is running and accepting TCP connections.</p> |SIMPLE |net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{HOST.CONN}","{$HPE.SYNERGY.API.PORT}"]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The model name for the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Powered on |<p>Yes if the appliance is powered on; false otherwise.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",powered_on]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].poweredOn.first()`</p><p>- BOOL_TO_DECIMAL</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Power state |<p>The power state of the appliance bay.</p><p>EFuse - The power state of the bay is that it has been EFused.</p><p>Reset - The power state of the bay is that it has been reset.</p><p>SoftReset - The power state of the bay is that it has been soft reset.</p><p>Unknown - The power state of the bay is unknown.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",bay_power_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].bayPowerState.first()`</p><p>- STR_REPLACE: `EFuse 0`</p><p>- STR_REPLACE: `SoftReset 1`</p><p>- STR_REPLACE: `Reset 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- IN_RANGE: `0 3 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether an appliance is present in the bay:</p><p>Absent - The device slot is empty.</p><p>PresenceNoOp - The device slot is uninitialized.</p><p>PresenceUnknown - The device presence is unknown.</p><p>Present - The device slot has a device in it.</p><p>Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The serial number of the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number of the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>The hardware status of the appliance:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behaviour.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: HW version |<p>Hardware version.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",hw_version]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].hwVersion.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number provided by the manufacturer.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Presence in a bay:</p><p>Absent - The device slot is empty.</p><p>PresenceNoOp - The device slot is uninitialized.</p><p>PresenceUnknown - The device presence is unknown.</p><p>Present - The device slot has a device in it.</p><p>Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].presence.first()`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>Serial number.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>Overall health status of the crossbar:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behaviour.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Datacenter [{#NAME}]: State |<p>The current state of the resource. Valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.</p> |DEPENDENT |hpe.synergy.datacenter["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.datacenters.members[?(@.name == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `Adding 0`</p><p>- STR_REPLACE: `AddError 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `CredentialError 3`</p><p>- STR_REPLACE: `Refreshing 4`</p><p>- STR_REPLACE: `RefreshError 5`</p><p>- STR_REPLACE: `Removing 6`</p><p>- STR_REPLACE: `RemoveError 7`</p><p>- STR_REPLACE: `Unmanaged 8`</p><p>- IN_RANGE: `0 8 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 9`</p> |
-|HPE |Datacenter [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.datacenter["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.datacenters.members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>Model name of an unsupported device occupying the bay, if available.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Power allocated |<p>The power allocated for the enclosed blade.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",power_allocation]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].powerAllocationWatts.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a device is present:</p><p>Absent - The device slot is empty.</p><p>PresenceNoOp - The device slot is uninitialized.</p><p>PresenceUnknown - The device presence is unknown.</p><p>Present - The device slot has a device in it.</p><p>Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>If available, the serial number of any device occupying the bay.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#NAME}]: Appliance bays count |<p>The number of appliance bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",appliance_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].applianceBayCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Enclosure [{#NAME}]: Device bays count |<p>The number of device bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",device_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].deviceBayCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Enclosure [{#NAME}]: Device bays power |<p>The amount of power allocated for the blades in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",device_bay_watts]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].deviceBayWatts.first()`</p> |
-|HPE |Enclosure [{#NAME}]: Fan bays count |<p>The number of fan bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",fan_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].fanBayCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Enclosure [{#NAME}]: Firmware baseline |<p>The name of the current firmware baseline.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",fw_baseline_name]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].fwBaselineName.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#NAME}]: Interconnect bays count |<p>The number of interconnect bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",interconnect_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].interconnectBayCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Enclosure [{#NAME}]: Interconnect bays power |<p>The amount of power allocated for the interconnects in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",interconnect_bay_watts]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].interconnectBayWatts.first()`</p> |
-|HPE |Enclosure [{#NAME}]: Min power supplies |<p>The minimum number of power supplies needed.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",min_ps]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].minimumPowerSupplies.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#NAME}]: Min power supplies for redundant power feed |<p>The minimum number of power supplies needed to fulfill the redundant line feed power mode.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",min_ps_redundant]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].minimumPowerSuppliesForRedundantPowerFeed.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#NAME}]: Model |<p>The enclosure model name, eg, "BladeSystem c7000 Enclosure G2".</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].enclosureModel.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#NAME}]: Part number |<p>The part number of the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#NAME}]: Power allocated for fans and management devices |<p>The amount of power allocated for the fans and management devices of the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",fans_mgmt_power]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].fansAndManagementDevicesWatts.first()`</p> |
-|HPE |Enclosure [{#NAME}]: Power capacity |<p>The power capacity based on power mode.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",power_capacity]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].powerCapacityWatts.first()`</p> |
-|HPE |Enclosure [{#NAME}]: Power supply bays count |<p>The number of power supply bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",ps_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].powerSupplyBayCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Enclosure [{#NAME}]: Serial number |<p>The serial number of the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Enclosure [{#NAME}]: State |<p>Current resource state of the enclosure:</p><p>Adding - The enclosure is being added.</p><p>Configured - The enclosure is configured and part of a logical enclosure. This is the usual state for an enclosure under full management.</p><p>Configuring - A transient state while the enclosure is being configured for a logical enclosure.</p><p>Interrupted - The previous operation on the enclosure did not complete. The operation should be re-attempted.</p><p>Monitored - The enclosure is being monitored. It is not part of a logical enclosure and only hardware-control operations are available.</p><p>Pending - There are pending operations on the enclosure. Additional operations are denied.</p><p>RemoveFailed - The previous operation to remove the enclosure did not succeed. The operation should be re-attempted.</p><p>Removing - The enclosure is being removed.</p><p>Unmanaged - The enclosure has been discovered, but has not yet been added for management or monitoring.</p><p>Unsupported - The enclosure model or version is not currently supported by HPE OneView. It cannot be configured or monitored.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `Adding 0`</p><p>- STR_REPLACE: `Configured 1`</p><p>- STR_REPLACE: `Configuring 2`</p><p>- STR_REPLACE: `Interrupted 3`</p><p>- STR_REPLACE: `Monitored 4`</p><p>- STR_REPLACE: `Pending 5`</p><p>- STR_REPLACE: `RemoveFailed 6`</p><p>- STR_REPLACE: `Removing 7`</p><p>- STR_REPLACE: `Unmanaged 8`</p><p>- STR_REPLACE: `Unsupported 9`</p><p>- IN_RANGE: `0 9 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 10`</p> |
-|HPE |Enclosure [{#NAME}]: State reason |<p>Indicates the reason the resource in its current state:</p><p>Missing - The enclosure is no longer connected into the frame link topology.</p><p>None - No reason is available, or none applies.</p><p>NotAdded - The enclosure has not been added.</p><p>NotOwner - The enclosure reports being managed by something other than this HPE OneView.</p><p>OperationFailed - A prior operation was interrupted.</p><p>Unowned - The enclosure reports not being under management.</p><p>UnsupportedFirmware - The firmware version of the enclosure is not supported by this version of HPE OneView.</p><p>UpdatingFirmware - A firmware update is in progress.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].stateReason.first()`</p><p>- STR_REPLACE: `Missing 0`</p><p>- STR_REPLACE: `None 1`</p><p>- STR_REPLACE: `NotAdded 2`</p><p>- STR_REPLACE: `NotOwner 3`</p><p>- STR_REPLACE: `OperationFailed 4`</p><p>- STR_REPLACE: `Unowned 5`</p><p>- STR_REPLACE: `UnsupportedFirmware 6`</p><p>- STR_REPLACE: `UpdatingFirmware 7`</p><p>- IN_RANGE: `0 7 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 8`</p> |
-|HPE |Enclosure [{#NAME}]: Status |<p>Overall health status of the enclosure.</p><p>The enclosure status reflects the hardware health of the enclosure, all bays, and enclosure components (e.g. enclosure mid-plane, fans, power supplies, Synergy Frame Link Modules, and Synergy Composers). It explicitly does not include the status of other HPE OneView resources such as blades (server hardware), interconnects, and drive enclosures.</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behaviour.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Enclosure [{#NAME}]: Total allocated power |<p>The total amount of power allocated in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",power_total_allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].powerAllocatedWatts.first()`</p> |
-|HPE |Enclosure [{#NAME}]: Total available power |<p>The amount of unallocated power in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",power_total_available]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].powerAvailableWatts.first()`</p> |
-|HPE |Enclosure [{#NAME}]: Type |<p>The type of the enclosure, eg, "C7000" or "SY12000" or "SDX".</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#NAME}")].enclosureType.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
-|HPE |Ethernet network [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.ethernet.network["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["ethernet-networks"].members[?(@.name == "{#NAME}")].state.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Ethernet network [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.ethernet.network["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["ethernet-networks"].members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Fabric [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.fabric["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.fabrics.members[?(@.name == "{#NAME}")].state.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Fabric [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.fabric["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.fabrics.members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The common descriptive model of the fan.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the fan.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a fan is present:</p><p>Absent - The device slot is empty.</p><p>PresenceNoOp - The device slot is uninitialized.</p><p>PresenceUnknown - The device presence is unknown.</p><p>Present - The device slot has a device in it.</p><p>Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Required |<p>Indicates whether the enclosure configuration requires a fan to be present in the bay.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",required]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].deviceRequired.first()`</p><p>- BOOL_TO_DECIMAL</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The serial number of the fan.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number to be used when ordering an additional or replacement fan of this type.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: State |<p>Current state of the fan:</p><p>Degraded - Fan is degraded.</p><p>Failed - Fan has failed.</p><p>Misplaced - Fan is present, but not required, in this bay, and the overall fan configuration is not compliant with the enclosure fan placement rules.</p><p>Missing - Fan is required, but is not present.</p><p>OK - Fan bay has no issues.</p><p>Unknown - Unknown fan's state.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].state.first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 5`</p><p>- STR_REPLACE: `Degraded 0`</p><p>- STR_REPLACE: `Failed 1`</p><p>- STR_REPLACE: `Misplaced 2`</p><p>- STR_REPLACE: `Missing 3`</p><p>- STR_REPLACE: `OK 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 5`</p> |
-|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>Overall health status of the fan:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behavior.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |FC network [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.fc.network["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["fc-networks"].members[?(@.name == "{#NAME}")].state.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |FC network [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.fc.network["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["fc-networks"].members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Hypervisor manager [{#NAME}]: State |<p>Current state of the resource. Valid values include Connected, Disconnected, Configuring and Error.</p> |DEPENDENT |hpe.synergy.hypervisor_manager["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["hypervisor-managers"].members[?(@.displayName == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `Connected 0`</p><p>- STR_REPLACE: `Disconnected 1`</p><p>- STR_REPLACE: `Configuring 2`</p><p>- STR_REPLACE: `Error 3`</p><p>- IN_RANGE: `0 3 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
-|HPE |Hypervisor manager [{#NAME}]: State reason |<p>Indicates the reason the resource in its current state.</p> |DEPENDENT |hpe.synergy.hypervisor_manager["{#NAME}",state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["hypervisor-managers"].members[?(@.displayName == "{#NAME}")].stateReason.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Hypervisor manager [{#NAME}]: Status |<p>Current status of this resource:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behavior.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.hypervisor_manager["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["hypervisor-managers"].members[?(@.displayName == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Interconnect [{#NAME}]: Hardware health |<p>Interconnect hardware health status.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",hw.health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].interconnectHardwareHealth.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Interconnect [{#NAME}]: Model |<p>Interconnect model.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Interconnect [{#NAME}]: Part number |<p>Interconnect part number.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Interconnect [{#NAME}]: Port count |<p>Number of ports on the interconnect.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",port_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].portCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Interconnect [{#NAME}]: Serial number |<p>Interconnect serial number.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Interconnect [{#NAME}]: Spare part number |<p>Interconnect spare part number.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].sparePartNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Interconnect [{#NAME}]: State |<p>Current state of the resource</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].state.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Interconnect [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behavior.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects.members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Logical enclosure [{#NAME}]: State |<p>Current resource state of the logical enclosure:</p><p>Consistent - This is the expected state of the logical enclosure. The logical enclosure configuration is consistent with the enclosure group and the configuration of the hardware resources is consistent with the logical enclosure configuration.</p><p>Creating - The logical enclosure is being created.</p><p>DeleteFailed - The prior attempt to delete the logical enclosure failed. Retry the delete operation potentially with the force option. No other logical enclosure operations are allowed in this state.</p><p>Deleting - The logical enclosure is being deleted.</p><p>Inconsistent - The configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as appropriate to bring the configuration back into consistency.</p><p>Updating - Configuration changes are being applied to the hardware configuration.</p> |DEPENDENT |hpe.synergy.logical_enclosure["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["logical-enclosures"].members[?(@.name == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `Inconsistent 0`</p><p>- STR_REPLACE: `Creating 1`</p><p>- STR_REPLACE: `DeleteFailed 2`</p><p>- STR_REPLACE: `Deleting 3`</p><p>- STR_REPLACE: `Consistent 4`</p><p>- STR_REPLACE: `Updating 5`</p><p>- IN_RANGE: `0 5 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p> |
-|HPE |Logical enclosure [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.logical_enclosure["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["logical-enclosures"].members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Devices count |<p>The number of blades in the partition.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",device_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].deviceCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Health |<p>Indicates the health of the partition and the health of its owned resources (blades and IO bays) as reported by firmware. If a problem is detected with one of the resources, the health of the partition is reported as Degraded. If all of the resources in the partition are operating correctly the health of the partition is reported as OK.</p><p>NparDegrade - One or more resources in the partition are unhealthy.</p><p>NparHealthInvalid - Partition health is invalid.</p><p>NparHealthMax - Delimiter defined by firmware.</p><p>NparOk - All the resources in partition are healthy.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].partitionHealth.first()`</p><p>- STR_REPLACE: `NparDegrade 0`</p><p>- STR_REPLACE: `NparHealthInvalid 1`</p><p>- STR_REPLACE: `NparHealthMax 2`</p><p>- STR_REPLACE: `NparOk 3`</p><p>- IN_RANGE: `0 3 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
-|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Memory |<p>Total memory of the partition.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",memory]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].memoryMb.first()`</p><p>- MULTIPLIER: `1048576`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Processors Count |<p>The number of processors in the partition.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",processor_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].processorCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Status |<p>Indicates whether the partition has booted and its current power state:</p><p>ParStatusActive - Partition is active when a 'poweron' operation is initiated on the partition and the firmware boot process is started.</p><p>ParStatusInactive - Partition is in inactive state after it has been created or shut down.</p><p>ParStatusInvalid - Partition status is invalid.</p><p>ParStatusManualRepair - Partition is under manual repair.</p><p>ParStatusMax - Delimiter defined by OA firmware.</p><p>ParStatusUndefined - Partition status is undefined.</p><p>ParStatusUnknown - Partition might report an 'Unknown' state after an OA restart. This state is possible when the firmware is not able to identify the correct partition state due to internal firmware errors at OA startup. The state is persistent and can only be cleared by force powering off the partition from the OA. A partition in this state will not accept any partition operation except parstatus and force poweroff. Any active OS instances continue to run unhindered even when the partition is in an Unknown state.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].partitionStatus.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `ParStatusActive 0`</p><p>- STR_REPLACE: `ParStatusInactive 1`</p><p>- STR_REPLACE: `ParStatusInvalid 2`</p><p>- STR_REPLACE: `ParStatusManualRepair 3`</p><p>- STR_REPLACE: `ParStatusMax 4`</p><p>- STR_REPLACE: `ParStatusUndefined 5`</p><p>- STR_REPLACE: `ParStatusUnknown 6`</p><p>- IN_RANGE: `0 6 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p> |
-|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The common descriptive model of the power supply.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Output capacity |<p>The power supply output capacity.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",output_capacity]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].outputCapacityWatts.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the power supply.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a power supply is present.</p><p>Absent - The device slot is empty.</p><p>PresenceNoOp - The device slot is uninitialized.</p><p>PresenceUnknown - The device presence is unknown.</p><p>Present - The device slot has a device in it.</p><p>Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The unique serial number of the power supply.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number to be used when ordering an additional or replacement power supply of this type.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>Overall health status of the power supply:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behavior.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Rack [{#NAME}]: State |<p>The current state of the resource. Valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.</p> |DEPENDENT |hpe.synergy.rack["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.racks.members[?(@.name == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `Adding 0`</p><p>- STR_REPLACE: `AddError 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `CredentialError 3`</p><p>- STR_REPLACE: `Refreshing 4`</p><p>- STR_REPLACE: `RefreshError 5`</p><p>- STR_REPLACE: `Removing 6`</p><p>- STR_REPLACE: `RemoveError 7`</p><p>- STR_REPLACE: `Unmanaged 8`</p><p>- IN_RANGE: `0 8 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 9`</p> |
-|HPE |Rack [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.rack["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.racks.members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Maintenance state |<p>Server Hardware maintenance flag - Disruptive maintenance operations like firmware update can cause many server hardware alerts to be generated in a short period of time. Ex: Network connectivity lost or Server reset detected. When this field is set, predefined alerts for this particular device are suppressed. This field is set only when firmware update is ongoing. The alerts are processed normally once firmware update operation completes. Possible values are Maintenance and Normal.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",maintenance_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].maintenanceState.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- STR_REPLACE: `Maintenance 0`</p><p>- STR_REPLACE: `Normal 1`</p><p>- IN_RANGE: `0 1 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Maintenance state reason |<p>This field is set to Firmware update when server is put to maintenance.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",maintenance_state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].maintenanceStateReason.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Memory |<p>Amount of memory installed on this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",memory]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].memoryMb.first()`</p><p>- MULTIPLIER: `1048576`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Migration state |<p>The state of an ongoing VCM migration:</p><p>Migrating - The enclosure is in the process of migrating from VCM.</p><p>NotApplicable - The enclosure did not require or has already completed migration.</p><p>Unknown - The migration state is unknown.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",migration_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].migrationState.first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- STR_REPLACE: `Migrating 0`</p><p>- STR_REPLACE: `NotApplicable 1`</p><p>- STR_REPLACE: `Unknown 2`</p><p>- IN_RANGE: `0 2 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Model |<p>The full server hardware model string.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Part number |<p>The part number for this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Power state |<p>Current power state of the server hardware. Values are Unknown, On, Off, PoweringOn, PoweringOff or Resetting.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",power_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].powerState.first()`</p><p>- STR_REPLACE: `PoweringOff 0`</p><p>- STR_REPLACE: `PoweringOn 1`</p><p>- STR_REPLACE: `Resetting 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Off 4`</p><p>- STR_REPLACE: `On 5`</p><p>- IN_RANGE: `0 5 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processor cores count |<p>The number of cores available per processor.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",cores_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorCoreCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processors count |<p>The number of processors installed on this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorCount.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processor speed |<p>Speed of the CPUs.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",speed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorSpeedMhz.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processor type |<p>Type of CPU installed on this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorType.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Serial number |<p>The serial number of the server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: State |<p>The current resource state of the server hardware. Allowable values are:</p><p>Unknown - Not initialized,</p><p>Adding - Server being added,</p><p>NoProfileApplied - Server successfully added,</p><p>Monitored - Server being monitored,</p><p>Unmanaged - Discovered a supported server,</p><p>Removing - Server being removed,</p><p>RemoveFailed - Unsuccessful server removal,</p><p>Removed - Server successfully removed,</p><p>ApplyingProfile - Profile being applied to server,</p><p>ProfileApplied - Profile successfully applied,</p><p>RemovingProfile - Profile being removed,</p><p>ProfileError - Unsuccessful profile apply or removal,</p><p>Unsupported - Server model or version not currently supported by the appliance,</p><p>UpdatingFirmware - Server firmware update in progress.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].state.first()`</p><p>- STR_REPLACE: `Unknown 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `NoProfileApplied 2`</p><p>- STR_REPLACE: `Monitored 3`</p><p>- STR_REPLACE: `Unmanaged 4`</p><p>- STR_REPLACE: `Removing 5`</p><p>- STR_REPLACE: `RemoveFailed 6`</p><p>- STR_REPLACE: `Removed 7`</p><p>- STR_REPLACE: `ApplyingProfile 8`</p><p>- STR_REPLACE: `ProfileApplied 9`</p><p>- STR_REPLACE: `RemovingProfile 10`</p><p>- STR_REPLACE: `ProfileError 11`</p><p>- STR_REPLACE: `Unsupported 12`</p><p>- STR_REPLACE: `UpdatingFirmware 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 0`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: State reason |<p>The reason for the current resource state of the server hardware. This only applies if the state is 'Unmanaged', otherwise it is set to 'NotApplicable'. Allowable values are:</p><p>Unsupported - Server model or version not currently supported by the appliance,</p><p>UpdatingFirmware - Server firmware update in progress,</p><p>NotApplicable - When PhysicalServerState is anything besides 'Unmanaged',</p><p>NotOwner - No claim on server,</p><p>Inventory - Server added by PDU,</p><p>Unconfigured - Discovery data incomplete or iLO configuration failure,</p><p>UnsupportedFirmware - iLO firmware version below minimum support level,</p><p>Interrupted - When PhysicalServerState is a result of an operation that was terminated before completing,</p><p>CommunicationError - Appliance cannot communicate with iLO or OA.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].stateReason.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational or that a server profile has not been assigned.</p><p>Warning - needs attention soon.</p><p>Critical - needs attention soon.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"].members[?(@.name == "{#LOCATION}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Storage pool [{#NAME}]: Capacity allocated |<p>Capacity allocated from the storage pool in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"].members[?(@.name == "{#NAME}")].allocatedCapacity.first()`</p> |
-|HPE |Storage pool [{#NAME}]: Capacity free |<p>Free capacity available from the storage pool in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"].members[?(@.name == "{#NAME}")].freeCapacity.first()`</p> |
-|HPE |Storage pool [{#NAME}]: Capacity allocated to snapshots |<p>The pool capacity allocated to snapshots in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",snapshot]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"].members[?(@.name == "{#NAME}")].deviceSpecificAttributes.allocatedCapacity.snapshotAllocatedCapacity.first()`</p> |
-|HPE |Storage pool [{#NAME}]: State |<p>Current state of the resource:</p><p>AddFailed - An attempt to add the resource failed</p><p>Adding - The resource is in the process of being added</p><p>Configured - The resource is configured</p><p>Connected - The appliance has connected to the resource</p><p>Copying - The resource is in the process of being copied</p><p>CreateFailed - An attempt to create the resource failed</p><p>Creating - The resource is in the process of being created</p><p>DeleteFailed - An attempt to delete the resource failed</p><p>Deleting - The resource is in the process of being deleted</p><p>Discovered - The resource has been discovered by the appliance, but it is not managed by the appliance</p><p>Managed - The resource is managed by the appliance</p><p>Normal - The resource is in a normal state</p><p>UpdateFailed - An attempt to update the resource failed</p><p>Updating - The resource is in the process of being updated</p> |DEPENDENT |hpe.synergy.storage.pools["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"].members[?(@.name == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `AddFailed 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `Connected 3`</p><p>- STR_REPLACE: `Copying 4`</p><p>- STR_REPLACE: `CreateFailed 5`</p><p>- STR_REPLACE: `Creating 6`</p><p>- STR_REPLACE: `DeleteFailed 7`</p><p>- STR_REPLACE: `Deleting 8`</p><p>- STR_REPLACE: `Discovered 9`</p><p>- STR_REPLACE: `Managed 10`</p><p>- STR_REPLACE: `Normal 11`</p><p>- STR_REPLACE: `UpdateFailed 12`</p><p>- STR_REPLACE: `Updating 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 14`</p> |
-|HPE |Storage pool [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.storage.pools["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"].members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Storage pool [{#NAME}]: Capacity total |<p>Total capacity of the storage pool in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"].members[?(@.name == "{#NAME}")].totalCapacity.first()`</p> |
-|HPE |Storage system [{#NAME}]: Capacity allocated |<p>Capacity allocated in bytes.</p> |DEPENDENT |hpe.synergy.storage.system.capacity["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-systems"].members[?(@.name == "{#NAME}")].allocatedCapacity.first()`</p> |
-|HPE |Storage system [{#NAME}]: Capacity free |<p>Free capacity of the storage system in bytes.</p> |DEPENDENT |hpe.synergy.storage.system.capacity["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-systems"].members[?(@.name == "{#NAME}")].freeCapacity.first()`</p> |
-|HPE |Storage system [{#NAME}]: State |<p>Current state of the resource:</p><p>AddFailed - An attempt to add the resource failed</p><p>Adding - The resource is in the process of being added</p><p>Configured - The resource is configured</p><p>Connected - The appliance has connected to the resource</p><p>Copying - The resource is in the process of being copied</p><p>CreateFailed - An attempt to create the resource failed</p><p>Creating - The resource is in the process of being created</p><p>DeleteFailed - An attempt to delete the resource failed</p><p>Deleting - The resource is in the process of being deleted</p><p>Discovered - The resource has been discovered by the appliance, but it is not managed by the appliance</p><p>Managed - The resource is managed by the appliance</p><p>Normal - The resource is in a normal state</p><p>UpdateFailed - An attempt to update the resource failed</p><p>Updating - The resource is in the process of being updated</p> |DEPENDENT |hpe.synergy.storage.system["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-systems"].members[?(@.name == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `AddFailed 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `Connected 3`</p><p>- STR_REPLACE: `Copying 4`</p><p>- STR_REPLACE: `CreateFailed 5`</p><p>- STR_REPLACE: `Creating 6`</p><p>- STR_REPLACE: `DeleteFailed 7`</p><p>- STR_REPLACE: `Deleting 8`</p><p>- STR_REPLACE: `Discovered 9`</p><p>- STR_REPLACE: `Managed 10`</p><p>- STR_REPLACE: `Normal 11`</p><p>- STR_REPLACE: `UpdateFailed 12`</p><p>- STR_REPLACE: `Updating 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 14`</p> |
-|HPE |Storage system [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.storage.system["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-systems"].members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Storage system [{#NAME}]: Capacity total |<p>Total capacity of the storage system in bytes.</p> |DEPENDENT |hpe.synergy.storage.system.capacity["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-systems"].members[?(@.name == "{#NAME}")].totalCapacity.first()`</p> |
-|HPE |Storage volume [{#NAME}]: Capacity allocated |<p>Capacity allocated in bytes.</p> |DEPENDENT |hpe.synergy.storage.volumes.capacity["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-volumes"].members[?(@.name == "{#NAME}")].allocatedCapacity.first()`</p> |
-|HPE |Storage volume [{#NAME}]: Capacity provisioned |<p>Total provisioned capacity of volume in bytes.</p> |DEPENDENT |hpe.synergy.storage.volumes.capacity["{#NAME}",provisioned]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-volumes"].members[?(@.name == "{#NAME}")].provisionedCapacity.first()`</p> |
-|HPE |Storage volume [{#NAME}]: State |<p>Current state of the resource:</p><p>AddFailed - An attempt to add the resource failed</p><p>Adding - The resource is in the process of being added</p><p>Configured - The resource is configured</p><p>Connected - The appliance has connected to the resource</p><p>Copying - The resource is in the process of being copied</p><p>CreateFailed - An attempt to create the resource failed</p><p>Creating - The resource is in the process of being created</p><p>DeleteFailed - An attempt to delete the resource failed</p><p>Deleting - The resource is in the process of being deleted</p><p>Discovered - The resource has been discovered by the appliance, but it is not managed by the appliance</p><p>Managed - The resource is managed by the appliance</p><p>Normal - The resource is in a normal state</p><p>UpdateFailed - An attempt to update the resource failed</p><p>Updating - The resource is in the process of being updated</p> |DEPENDENT |hpe.synergy.storage.volumes["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-volumes"].members[?(@.name == "{#NAME}")].state.first()`</p><p>- STR_REPLACE: `AddFailed 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `Connected 3`</p><p>- STR_REPLACE: `Copying 4`</p><p>- STR_REPLACE: `CreateFailed 5`</p><p>- STR_REPLACE: `Creating 6`</p><p>- STR_REPLACE: `DeleteFailed 7`</p><p>- STR_REPLACE: `Deleting 8`</p><p>- STR_REPLACE: `Discovered 9`</p><p>- STR_REPLACE: `Managed 10`</p><p>- STR_REPLACE: `Normal 11`</p><p>- STR_REPLACE: `UpdateFailed 12`</p><p>- STR_REPLACE: `Updating 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 14`</p> |
-|HPE |Storage volume [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.storage.volumes["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-volumes"].members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Firmware version |<p>The firmware version of the manager.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",fw_version]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].fwVersion.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port state |<p>The state of the LINK port:</p><p>Disabled - The port is disabled.</p><p>Linked - The port is linked.</p><p>Unlinked - The port is unlinked.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].linkPortState.first()`</p><p>- STR_REPLACE: `Disabled 0`</p><p>- STR_REPLACE: `Linked 1`</p><p>- STR_REPLACE: `Unlinked 2`</p><p>- IN_RANGE: `0 2 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port status |<p>The status of the LINK port:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behavior.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].linkPortStatus.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port state |<p>The state of the MGMT port:</p><p>Active - The port is in active mode.</p><p>Disabled - The port is in disabled mode.</p><p>I3s - The port is configured for OS deployment network traffic.</p><p>Other - The port is in other mode.</p><p>Standby - The port is in standby mode.</p><p>Unknown - The port mode is not known.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].mgmtPortState.first()`</p><p>- STR_REPLACE: `Active 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `I3s 2`</p><p>- STR_REPLACE: `Other 3`</p><p>- STR_REPLACE: `Standby 4`</p><p>- STR_REPLACE: `Unknown 5`</p><p>- IN_RANGE: `0 5 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 5`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port status |<p>The status of the MGMT port:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behavior.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].mgmtPortStatus.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The model of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a manager is present in the bay:</p><p>Absent - The device slot is empty.</p><p>PresenceNoOp - The device slot is uninitialized.</p><p>PresenceUnknown - The device presence is unknown.</p><p>Present - The device slot has a device in it.</p><p>Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The serial number of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
-|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>The health status of the link module:</p><p>Critical - Needs immediate attention.</p><p>Disabled - The resource is currently not operational.</p><p>OK - Indicates normal/informational behavior.</p><p>Unknown - The health status is not yet known or cannot be determined.</p><p>Warning - Needs attention soon.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
-|HPE |Uplink set [{#NAME}]: State |<p>Current state of the resource.</p> |DEPENDENT |hpe.synergy.uplink_set["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["uplink-sets"].members[?(@.name == "{#NAME}")].state.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
-|HPE |Uplink set [{#NAME}]: Status |<p>Overall health status of the resource. The following are the valid values for the status of the resource:</p><p>OK - indicates normal/informational behavior.</p><p>Disabled - indicates that a resource is not operational.</p><p>Warning - needs attention soon.</p><p>Critical - needs immediate attention.</p><p>Unknown - should be avoided, but there may be rare occasions where status is Unknown.</p> |DEPENDENT |hpe.synergy.uplink_set["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.["uplink-sets"].members[?(@.name == "{#NAME}")].status.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |HPE Synergy: Get data |<p>The JSON with the result from requests to API.</p> |SCRIPT |hpe.synergy.get.data<p>**Expression**:</p>`The text is too long. Please see the template.` |
+|HPE |HPE Synergy: Get errors |<p>A list of errors from API requests.</p> |DEPENDENT |hpe.synergy.get.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.errors`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |HPE Synergy: Get enclosures data |<p>A list of enclosures.</p> |DEPENDENT |hpe.synergy.get.enclosures<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosures`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get datacenters data |<p>Data of the datacenters.</p> |DEPENDENT |hpe.synergy.get.datacenters<p>**Preprocessing**:</p><p>- JSONPATH: `$.datacenters`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get ethernet networks data |<p>Data of the ethernet networks.</p> |DEPENDENT |hpe.synergy.get.ethernet_networks<p>**Preprocessing**:</p><p>- JSONPATH: `$.["ethernet-networks"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get fabrics data |<p>Data of the fabrics.</p> |DEPENDENT |hpe.synergy.get.fabrics<p>**Preprocessing**:</p><p>- JSONPATH: `$.fabrics`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get FC networks data |<p>Data of the FC networks.</p> |DEPENDENT |hpe.synergy.get.fc_networks<p>**Preprocessing**:</p><p>- JSONPATH: `$.["fc-networks"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get hypervisor managers data |<p>Data of the hypervisor managers.</p> |DEPENDENT |hpe.synergy.get.hypervisor_managers<p>**Preprocessing**:</p><p>- JSONPATH: `$.["hypervisor-managers"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get interconnects data |<p>Data of the interconnects.</p> |DEPENDENT |hpe.synergy.get.interconnects<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnects`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get logical enclosures data |<p>Data of the logical enclosures.</p> |DEPENDENT |hpe.synergy.get.logical_enclosures<p>**Preprocessing**:</p><p>- JSONPATH: `$.["logical-enclosures"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get racks data |<p>Data of the racks.</p> |DEPENDENT |hpe.synergy.get.racks<p>**Preprocessing**:</p><p>- JSONPATH: `$.racks`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get server hardware data |<p>Data of the server hardware.</p> |DEPENDENT |hpe.synergy.get.server_hardware<p>**Preprocessing**:</p><p>- JSONPATH: `$.["server-hardware"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get storage pools data |<p>Data of the storage pools.</p> |DEPENDENT |hpe.synergy.get.storage_pools<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-pools"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get storage systems data |<p>Data of the storage systems.</p> |DEPENDENT |hpe.synergy.get.storage_systems<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-systems"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get storage volumes data |<p>Data of the storage volumes.</p> |DEPENDENT |hpe.synergy.get.storage_volumes<p>**Preprocessing**:</p><p>- JSONPATH: `$.["storage-volumes"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Get uplink sets data |<p>Data of the uplink sets.</p> |DEPENDENT |hpe.synergy.get.uplink_sets<p>**Preprocessing**:</p><p>- JSONPATH: `$.["uplink-sets"]`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p> |
+|HPE |HPE Synergy: Service ping |<p>Checks if the service is running and accepting the TCP connections.</p> |SIMPLE |net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{HOST.CONN}","{$HPE.SYNERGY.API.PORT}"]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data |<p>Data of the appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The model name of the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Powered on |<p>*Yes*, if the appliance is powered on; *false*, otherwise.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",powered_on]<p>**Preprocessing**:</p><p>- JSONPATH: `$.poweredOn`</p><p>- BOOL_TO_DECIMAL</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Power state |<p>The power state of the appliance bay.</p><p>*EFuse* - the power state of the bay - it has been EFused.</p><p>*Reset* - the power state of the bay - it has been reset.</p><p>*SoftReset* - the power state of the bay - it has been softly reset.</p><p>*Unknown* - the power state of the bay is unknown.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",bay_power_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.bayPowerState`</p><p>- STR_REPLACE: `EFuse 0`</p><p>- STR_REPLACE: `SoftReset 1`</p><p>- STR_REPLACE: `Reset 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- IN_RANGE: `0 3 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether an appliance is present in the bay:</p><p>*Absent* - the device slot is empty;</p><p>*PresenceNoOp* - the device slot is uninitialized;</p><p>*PresenceUnknown* - the device presence is unknown;</p><p>*Present* - the device slot has a device in it;</p><p>*Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.devicePresence`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The serial number of the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number of the appliance.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.sparePartNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>The hardware status of the appliance:</p><p>*Critical* - requires immediate attention;</p><p>*Disabled* - the resource is currently not operational;</p><p>*OK* - indicates normal/informational behavior;</p><p>*Unknown* - the health status is not yet known or cannot be determined;</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data |<p>Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] data</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#ENCLOSURE_NAME}")].crossbars[?(@.bayNumber == "{#BAY_NUMBER}")].first()`</p> |
+|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: HW version |<p>The hardware version.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",hw_version]<p>**Preprocessing**:</p><p>- JSONPATH: `$.hwVersion`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number provided by the manufacturer.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>The presence in a bay:</p><p>*Absent* - the device slot is empty;</p><p>*PresenceNoOp* - the device slot is uninitialized;</p><p>*PresenceUnknown* - the device presence is unknown;</p><p>*Present* - the device slot has a device in it;</p><p>*Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.presence`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>A serial number.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>The overall health status of the crossbar:</p><p>*Critical* - requires immediate attention;</p><p>*Disabled* - the resource is currently not operational;</p><p>*OK* - indicates normal/informational behavior;</p><p>*Unknown* - the health status is not yet known or cannot be determined;</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Datacenter [{#NAME}]: Get data |<p>Data of the datacenter [{#NAME}].</p> |DEPENDENT |hpe.synergy.datacenter["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Datacenter [{#NAME}]: State |<p>The current state of the resource. The valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.</p> |DEPENDENT |hpe.synergy.datacenter["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `Adding 0`</p><p>- STR_REPLACE: `AddError 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `CredentialError 3`</p><p>- STR_REPLACE: `Refreshing 4`</p><p>- STR_REPLACE: `RefreshError 5`</p><p>- STR_REPLACE: `Removing 6`</p><p>- STR_REPLACE: `RemoveError 7`</p><p>- STR_REPLACE: `Unmanaged 8`</p><p>- IN_RANGE: `0 8 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 9`</p> |
+|HPE |Datacenter [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that a resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.datacenter["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data |<p>Data of the device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()`</p> |
+|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The model name of an unsupported device occupying the bay if available.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Power allocated |<p>The power allocated for the enclosed blade.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",power_allocation]<p>**Preprocessing**:</p><p>- JSONPATH: `$.powerAllocationWatts`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a device is present:</p><p>*Absent* - the device slot is empty;</p><p>*PresenceNoOp* - the device slot is uninitialized;</p><p>*PresenceUnknown* - the device presence is unknown;</p><p>*Present* - the device slot has a device in it;</p><p>*Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.devicePresence`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>If available, the serial number of any device occupying the bay.</p> |DEPENDENT |hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#NAME}]: Get data |<p>Data of the enclosure [{#NAME}].</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Enclosure [{#NAME}]: Appliance bays count |<p>The number of the appliance bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",appliance_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.applianceBayCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Enclosure [{#NAME}]: Device bays count |<p>The number of the device bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",device_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.deviceBayCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Enclosure [{#NAME}]: Device bays power |<p>The amount of power allocated for the blades in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",device_bay_watts]<p>**Preprocessing**:</p><p>- JSONPATH: `$.deviceBayWatts`</p> |
+|HPE |Enclosure [{#NAME}]: Fan bays count |<p>The number of the fan bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",fan_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.fanBayCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Enclosure [{#NAME}]: Firmware baseline |<p>The name of the current firmware baseline.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",fw_baseline_name]<p>**Preprocessing**:</p><p>- JSONPATH: `$.fwBaselineName`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#NAME}]: Interconnect bays count |<p>The number of the interconnect bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",interconnect_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnectBayCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Enclosure [{#NAME}]: Interconnect bays power |<p>The amount of power allocated for the interconnects in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",interconnect_bay_watts]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnectBayWatts`</p> |
+|HPE |Enclosure [{#NAME}]: Min power supplies |<p>The minimum number of the power supplies needed.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",min_ps]<p>**Preprocessing**:</p><p>- JSONPATH: `$.minimumPowerSupplies`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#NAME}]: Min power supplies for redundant power feed |<p>The minimum number of the power supplies needed to fulfill the redundant line feed power mode.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",min_ps_redundant]<p>**Preprocessing**:</p><p>- JSONPATH: `$.minimumPowerSuppliesForRedundantPowerFeed`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#NAME}]: Model |<p>The enclosure model name, for example, "BladeSystem c7000 Enclosure G2.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosureModel`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#NAME}]: Part number |<p>The part number of the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#NAME}]: Power allocated for fans and management devices |<p>The amount of the power allocated for the fans and management devices of the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",fans_mgmt_power]<p>**Preprocessing**:</p><p>- JSONPATH: `$.fansAndManagementDevicesWatts`</p> |
+|HPE |Enclosure [{#NAME}]: Power capacity |<p>The power capacity based on power mode.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",power_capacity]<p>**Preprocessing**:</p><p>- JSONPATH: `$.powerCapacityWatts`</p> |
+|HPE |Enclosure [{#NAME}]: Power supply bays count |<p>The number of the power supply bays in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",ps_bay_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.powerSupplyBayCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Enclosure [{#NAME}]: Serial number |<p>The serial number of the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Enclosure [{#NAME}]: State |<p>The current resource state of the enclosure:</p><p>*Adding* - the enclosure is being added;</p><p>*Configured* - the enclosure is configured and is a part of the logical enclosure. This is the usual state for an enclosure under full management;</p><p>*Configuring* - a transient state while the enclosure is being configured for a logical enclosure;</p><p>*Interrupted* - the previous operation on the enclosure did not complete. The operation should be re-attempted;</p><p>*Monitored* - the enclosure is being monitored. It is not a part of the logical enclosure and only hardware-control operations are available;</p><p>*Pending* - there are pending operations on the enclosure. Additional operations are denied;</p><p>*RemoveFailed* - the previous operation to remove the enclosure did not succeed. The operation should be re-attempted;</p><p>*Removing* - the enclosure is being removed;</p><p>*Unmanaged* - the enclosure has been discovered, but has not yet been added for the management or monitoring;</p><p>*Unsupported* - the enclosure model or version is not currently supported by HPE OneView. It cannot be configured or monitored.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `Adding 0`</p><p>- STR_REPLACE: `Configured 1`</p><p>- STR_REPLACE: `Configuring 2`</p><p>- STR_REPLACE: `Interrupted 3`</p><p>- STR_REPLACE: `Monitored 4`</p><p>- STR_REPLACE: `Pending 5`</p><p>- STR_REPLACE: `RemoveFailed 6`</p><p>- STR_REPLACE: `Removing 7`</p><p>- STR_REPLACE: `Unmanaged 8`</p><p>- STR_REPLACE: `Unsupported 9`</p><p>- IN_RANGE: `0 9 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 10`</p> |
+|HPE |Enclosure [{#NAME}]: State reason |<p>Indicates the reason why the resource in its current state:</p><p>*Missing* - the enclosure is no longer connected into the frame link topology;</p><p>*None* - no reason is available, or none applies;</p><p>*NotAdded* - the enclosure has not been added;</p><p>*NotOwner* - the enclosure reports being managed by something other than this HPE OneView;</p><p>*OperationFailed* - a prior operation was interrupted;</p><p>*Unowned* - the enclosure reports are not being under the management;</p><p>*UnsupportedFirmware* - the firmware version of the enclosure is not supported by this version of HPE OneView;</p><p>*UpdatingFirmware* - a firmware update is in progress.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.stateReason`</p><p>- STR_REPLACE: `Missing 0`</p><p>- STR_REPLACE: `None 1`</p><p>- STR_REPLACE: `NotAdded 2`</p><p>- STR_REPLACE: `NotOwner 3`</p><p>- STR_REPLACE: `OperationFailed 4`</p><p>- STR_REPLACE: `Unowned 5`</p><p>- STR_REPLACE: `UnsupportedFirmware 6`</p><p>- STR_REPLACE: `UpdatingFirmware 7`</p><p>- IN_RANGE: `0 7 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 8`</p> |
+|HPE |Enclosure [{#NAME}]: Status |<p>The overall health status of the enclosure.</p><p>The enclosure status reflects the hardware health of the enclosure, all the bays, and the enclosure components (e.g. the enclosure mid-plane, fans, power supplies, Synergy Frame Link Modules, and Synergy Composers). It explicitly does not include the status of the other HPE OneView resources such as the blades (server hardware), the interconnects, and the drive enclosures.</p><p>*Critical* - requires immediate attention.</p><p>*Disabled* - the resource is currently not operational.</p><p>*OK* - indicates normal/informational behavior.</p><p>*Unknown* - the health status is not yet known or cannot be determined.</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Enclosure [{#NAME}]: Total allocated power |<p>The total amount of the power allocated in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",power_total_allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.powerAllocatedWatts`</p> |
+|HPE |Enclosure [{#NAME}]: Total available power |<p>The amount of the unallocated power in the enclosure.</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",power_total_available]<p>**Preprocessing**:</p><p>- JSONPATH: `$.powerAvailableWatts`</p> |
+|HPE |Enclosure [{#NAME}]: Type |<p>The type of the enclosure, for example, "C7000" or "SY12000" or "SDX".</p> |DEPENDENT |hpe.synergy.enclosure["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.enclosureType`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> |
+|HPE |Ethernet network [{#NAME}]: Get data |<p>Data of the ethernet network [{#NAME}].</p> |DEPENDENT |hpe.synergy.ethernet.network["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Ethernet network [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.ethernet.network["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Ethernet network [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.ethernet.network["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Fabric [{#NAME}]: Get data |<p>Data of the fabric [{#NAME}].</p> |DEPENDENT |hpe.synergy.fabric["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Fabric [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.fabric["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Fabric [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.fabric["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data |<p>Data of the fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The common descriptive model of the fan.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the fan.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a fan is present:</p><p>*Absent* - the device slot is empty;</p><p>*PresenceNoOp* - the device slot is uninitialized;</p><p>*PresenceUnknown* - the device presence is unknown;</p><p>*Present* - the device slot has a device in it;</p><p>*Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.devicePresence`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Required |<p>Indicates whether the enclosure configuration requires a fan to be present in the bay.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",required]<p>**Preprocessing**:</p><p>- JSONPATH: `$.deviceRequired`</p><p>- BOOL_TO_DECIMAL</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The serial number of the fan.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number to be used when ordering an additional or replacement fan of this type.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.sparePartNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: State |<p>The current state of the fan:</p><p>*Degraded* - a fan is degraded;</p><p>*Failed* - a fan has failed;</p><p>*Misplaced* - a fan is present, but not required in this bay, and the overall fan configuration is not compliant with the enclosure fan placement rules;</p><p>*Missing* - a fan is required, but is not present;</p><p>*OK* - a fan bay has no issues;</p><p>*Unknown* - the state of a fan is unknown.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 5`</p><p>- STR_REPLACE: `Degraded 0`</p><p>- STR_REPLACE: `Failed 1`</p><p>- STR_REPLACE: `Misplaced 2`</p><p>- STR_REPLACE: `Missing 3`</p><p>- STR_REPLACE: `OK 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 5`</p> |
+|HPE |Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>The overall health status of the fan:</p><p>*Critical* - requires immediate attention;</p><p>*Disabled* - the resource is currently not operational;</p><p>*OK* - indicates normal/informational behavior;</p><p>*Unknown* - the health status is not yet known or cannot be determined;</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |FC network [{#NAME}]: Get data |<p>Data of the FC network [{#NAME}].</p> |DEPENDENT |hpe.synergy.fc.network["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |FC network [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.fc.network["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |FC network [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.fc.network["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Hypervisor manager [{#NAME}]: Get data |<p>Data of the hypervisor manager [{#NAME}].</p> |DEPENDENT |hpe.synergy.hypervisor_manager["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.displayName == "{#NAME}")].first()`</p> |
+|HPE |Hypervisor manager [{#NAME}]: State |<p>The current state of the resource. The valid values include Connected, Disconnected, Configuring and Error.</p> |DEPENDENT |hpe.synergy.hypervisor_manager["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `Connected 0`</p><p>- STR_REPLACE: `Disconnected 1`</p><p>- STR_REPLACE: `Configuring 2`</p><p>- STR_REPLACE: `Error 3`</p><p>- IN_RANGE: `0 3 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
+|HPE |Hypervisor manager [{#NAME}]: State reason |<p>Indicates the reason why the resource is in its current state.</p> |DEPENDENT |hpe.synergy.hypervisor_manager["{#NAME}",state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.stateReason`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Hypervisor manager [{#NAME}]: Status |<p>The current status of this resource:</p><p>*Critical* - requires immediate attention;</p><p>*Disabled* - the resource is currently not operational;</p><p>*OK* - indicates normal/informational behavior;</p><p>*Unknown* - the health status is not yet known or cannot be determined;</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.hypervisor_manager["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Interconnect [{#NAME}]: Get data |<p>Data of the interconnect [{#NAME}].</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Interconnect [{#NAME}]: Hardware health |<p>The health status of the interconnect hardware.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",hw.health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.interconnectHardwareHealth`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Interconnect [{#NAME}]: Model |<p>The interconnect model.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Interconnect [{#NAME}]: Part number |<p>The part number of the interconnect.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Interconnect [{#NAME}]: Port count |<p>The number of ports on the interconnect.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",port_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.portCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Interconnect [{#NAME}]: Serial number |<p>The serial number of the interconnect.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Interconnect [{#NAME}]: Spare part number |<p>The spare part number of the interconnect.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.sparePartNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Interconnect [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Interconnect [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.interconnect["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Logical enclosure [{#NAME}]: Get data |<p>Data of the logical enclosure [{#NAME}].</p> |DEPENDENT |hpe.synergy.logical_enclosure["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Logical enclosure [{#NAME}]: State |<p>The current resource state of the logical enclosure:</p><p>*Consistent* - this is the expected state of the logical enclosure. The logical enclosure configuration is consistent with the enclosure group, and the configuration of the hardware resources is consistent with the logical enclosure configuration;</p><p>*Creating* - the logical enclosure is being created;</p><p>*DeleteFailed* - the prior attempt to delete the logical enclosure failed. Retry the delete operation potentially with the force option. No other logical enclosure operations are allowed in this state;</p><p>*Deleting* - the logical enclosure is being deleted;</p><p>*Inconsistent* - the configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as an appropriate to bring the configuration back into consistency;</p><p>*Updating* - configuration changes are being applied to the hardware configuration.</p> |DEPENDENT |hpe.synergy.logical_enclosure["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `Inconsistent 0`</p><p>- STR_REPLACE: `Creating 1`</p><p>- STR_REPLACE: `DeleteFailed 2`</p><p>- STR_REPLACE: `Deleting 3`</p><p>- STR_REPLACE: `Consistent 4`</p><p>- STR_REPLACE: `Updating 5`</p><p>- IN_RANGE: `0 5 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p> |
+|HPE |Logical enclosure [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.logical_enclosure["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Get data |<p>Data of the partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}].</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].first()`</p> |
+|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Devices count |<p>The number of blades in the partition.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",device_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.deviceCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Health |<p>Indicates the health of the partition and the health of its owned resources (blades and IO bays) as reported by the firmware. If a problem is detected with one of the resources, the health of the partition is reported as Degraded. If all the resources in the partition are operating correctly, the health of the partition is reported as OK.</p><p>*NparDegrade* - one or more resources in the partition are unhealthy.</p><p>*NparHealthInvalid* - a partition health is invalid.</p><p>*NparHealthMax* - a delimiter defined by the firmware.</p><p>*NparOk* - all the resources in the partition are healthy.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partitionHealth`</p><p>- STR_REPLACE: `NparDegrade 0`</p><p>- STR_REPLACE: `NparHealthInvalid 1`</p><p>- STR_REPLACE: `NparHealthMax 2`</p><p>- STR_REPLACE: `NparOk 3`</p><p>- IN_RANGE: `0 3 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p> |
+|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Memory |<p>The total memory of the partition.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",memory]<p>**Preprocessing**:</p><p>- JSONPATH: `$.memoryMb`</p><p>- MULTIPLIER: `1048576`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Processors Count |<p>The number of processors in the partition.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",processor_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.processorCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|HPE |Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Status |<p>Indicates whether the partition has been booted and also indicates its current power state:</p><p>*ParStatusActive* - a partition is active when a 'poweron' operation is initiated on the partition and the firmware boot process is started;</p><p>*ParStatusInactive* - a partition is in an inactive state after it has been created or shut down;</p><p>*ParStatusInvalid* - a partition status is invalid;</p><p>*ParStatusManualRepair* - a partition under manual repair;</p><p>*ParStatusMax* - a delimiter defined by the OA firmware;</p><p>*ParStatusUndefined* - partition status is undefined;</p><p>*ParStatusUnknown* - a partition might report an Unknown state after an OA restart. This state is possible when the firmware is not able to identify the correct partition state due to the internal firmware errors at an OA startup. The state is persistent and can only be cleared by force powering off of the partition from the OA. A partition in this state will not accept any partition operation except parstatus and force poweroff. Any active OS instances continue to run unhindered even when the partition is in an unknown state.</p> |DEPENDENT |hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partitionStatus`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `ParStatusActive 0`</p><p>- STR_REPLACE: `ParStatusInactive 1`</p><p>- STR_REPLACE: `ParStatusInvalid 2`</p><p>- STR_REPLACE: `ParStatusManualRepair 3`</p><p>- STR_REPLACE: `ParStatusMax 4`</p><p>- STR_REPLACE: `ParStatusUndefined 5`</p><p>- STR_REPLACE: `ParStatusUnknown 6`</p><p>- IN_RANGE: `0 6 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 6`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data |<p>Data of the power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The common descriptive model of the power supply.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Output capacity |<p>The output capacity of the power supply.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",output_capacity]<p>**Preprocessing**:</p><p>- JSONPATH: `$.outputCapacityWatts`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the power supply.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a power supply is present:</p><p>*Absent* - the device slot is empty;</p><p>*PresenceNoOp* - the device slot is uninitialized;</p><p>*PresenceUnknown* - the device presence is unknown;</p><p>*Present* - the device slot has a device in it;</p><p>*Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.devicePresence`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The unique serial number of the power supply.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number to be used when ordering an additional or replacement power supply of this type.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.sparePartNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Rack [{#NAME}]: Get data |<p>Data of the rack [{#NAME}].</p> |DEPENDENT |hpe.synergy.rack["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Rack [{#NAME}]: State |<p>The current state of the resource. the valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.</p> |DEPENDENT |hpe.synergy.rack["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `Adding 0`</p><p>- STR_REPLACE: `AddError 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `CredentialError 3`</p><p>- STR_REPLACE: `Refreshing 4`</p><p>- STR_REPLACE: `RefreshError 5`</p><p>- STR_REPLACE: `Removing 6`</p><p>- STR_REPLACE: `RemoveError 7`</p><p>- STR_REPLACE: `Unmanaged 8`</p><p>- IN_RANGE: `0 8 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 9`</p> |
+|HPE |Rack [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.rack["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Get data |<p>Data of the server [{#SERVER_NAME}:{#LOCATION}].</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#LOCATION}")].first()`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Maintenance state |<p>The maintenance flag of the Server Hardware - disruptive maintenance operations, such as firmware update, can cause many server hardware alerts to be generated in a short period of time. Example: network connectivity is lost or the server reset is detected. When this field is set, predefined alerts for this particular device are suppressed. This field is set only when firmware update is ongoing. The alerts are processed normally once firmware update operation completes. Possible values are Maintenance and Normal.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",maintenance_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.maintenanceState`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- STR_REPLACE: `Maintenance 0`</p><p>- STR_REPLACE: `Normal 1`</p><p>- IN_RANGE: `0 1 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Maintenance state reason |<p>This field is set to Firmware update when the server is put under maintenance.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",maintenance_state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.maintenanceStateReason`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Memory |<p>The amount of memory installed on this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",memory]<p>**Preprocessing**:</p><p>- JSONPATH: `$.memoryMb`</p><p>- MULTIPLIER: `1048576`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Migration state |<p>The state of an ongoing virtual connect manager (VCM) migration:</p><p>*Migrating* - the enclosure is in the process of migrating from VCM;</p><p>*NotApplicable* - the enclosure did not require or has already completed the migration;</p><p>*Unknown* - the migration state is unknown.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",migration_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.migrationState`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- STR_REPLACE: `Migrating 0`</p><p>- STR_REPLACE: `NotApplicable 1`</p><p>- STR_REPLACE: `Unknown 2`</p><p>- IN_RANGE: `0 2 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Model |<p>The model string of the full server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Part number |<p>The part number for this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Power state |<p>The current power state of the server hardware. The values are Unknown, On, Off, PoweringOn, PoweringOff or Resetting.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",power_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.powerState`</p><p>- STR_REPLACE: `PoweringOff 0`</p><p>- STR_REPLACE: `PoweringOn 1`</p><p>- STR_REPLACE: `Resetting 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Off 4`</p><p>- STR_REPLACE: `On 5`</p><p>- IN_RANGE: `0 5 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processor cores count |<p>The number of cores available per processor.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",cores_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.processorCoreCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processors count |<p>The number of processors installed on this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.processorCount`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processor speed |<p>The speed of the CPUs.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",speed]<p>**Preprocessing**:</p><p>- JSONPATH: `$.processorSpeedMhz`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Processor type |<p>The type of the CPU installed on this server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware.processor["{#LOCATION}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.processorType`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Serial number |<p>The serial number of the server hardware.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: State |<p>The current resource state of the server hardware. The allowable values are:</p><p>*Unknown* - not initialized;</p><p>*Adding* - a server is being added;</p><p>*NoProfileApplied* - a server successfully added;</p><p>*Monitored* - a server is being monitored;</p><p>*Unmanaged* - a discovered and supported server;</p><p>*Removing* - a server is being removed;</p><p>*RemoveFailed* - an unsuccessful server removal;</p><p>*Removed* - a server is successfully removed;</p><p>*ApplyingProfile* - a server is successfully removed;</p><p>*ProfileApplied* - a profile is successfully applied;</p><p>*RemovingProfile* - a profile is being removed;</p><p>*ProfileError* - an Unsuccessful profile is applied or removed;</p><p>*Unsupported* - a server model or version is not currently supported by the appliance;</p><p>*UpdatingFirmware* - a server firmware update is in progress.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `Unknown 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `NoProfileApplied 2`</p><p>- STR_REPLACE: `Monitored 3`</p><p>- STR_REPLACE: `Unmanaged 4`</p><p>- STR_REPLACE: `Removing 5`</p><p>- STR_REPLACE: `RemoveFailed 6`</p><p>- STR_REPLACE: `Removed 7`</p><p>- STR_REPLACE: `ApplyingProfile 8`</p><p>- STR_REPLACE: `ProfileApplied 9`</p><p>- STR_REPLACE: `RemovingProfile 10`</p><p>- STR_REPLACE: `ProfileError 11`</p><p>- STR_REPLACE: `Unsupported 12`</p><p>- STR_REPLACE: `UpdatingFirmware 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 0`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: State reason |<p>The reason for the current resource state of the server hardware. This only applies if the state is Unmanaged, otherwise it is set to NotApplicable. The allowable values are:</p><p>*Unsupported* - a server model or version is not currently supported by the appliance;</p><p>*UpdatingFirmware* - a server firmware update is in progress;</p><p>*NotApplicable* - when PhysicalServerState is anything besides Unmanaged;</p><p>*NotOwner* - no claim on the server;</p><p>*Inventory* - a server is added by the PDU;</p><p>*Unconfigured* - the discovery data is incomplete or an iLO configuration has failed;</p><p>*UnsupportedFirmware* - an iLO firmware version is below the minimum support level;</p><p>*Interrupted* - when PhysicalServerState is a result of an operation that was terminated before completing;</p><p>*CommunicationError* - an appliance cannot communicate with an iLO or an OA.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",state_reason]<p>**Preprocessing**:</p><p>- JSONPATH: `$.stateReason`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Server [{#SERVER_NAME}:{#LOCATION}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.server_hardware["{#LOCATION}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Storage pool [{#NAME}]: Get data |<p>Data of the storage pool [{#NAME}].</p> |DEPENDENT |hpe.synergy.storage.pools["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Storage pool [{#NAME}]: Capacity allocated |<p>The capacity allocated from the storage pool in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.allocatedCapacity`</p> |
+|HPE |Storage pool [{#NAME}]: Capacity free |<p>The free capacity available from the storage pool in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.freeCapacity`</p> |
+|HPE |Storage pool [{#NAME}]: Capacity allocated to snapshots |<p>The pool capacity allocated to the snapshots in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",snapshot]<p>**Preprocessing**:</p><p>- JSONPATH: `$.deviceSpecificAttributes.allocatedCapacity.snapshotAllocatedCapacity`</p> |
+|HPE |Storage pool [{#NAME}]: State |<p>The current state of the resource:</p><p>*AddFailed* - an attempt to add the resource failed;</p><p>*Adding* - the resource is in the process of being added;</p><p>*Configured* - the resource is configured;</p><p>*Connected* - the appliance has connected to the resource;</p><p>*Copying* - the resource is in the process of being copied;</p><p>*CreateFailed* - an attempt to create the resource failed;</p><p>*Creating* - the resource is in the process of being created;</p><p>*DeleteFailed* - an attempt to delete the resource failed;</p><p>*Deleting* - the resource is in the process of being deleted;</p><p>*Discovered* - the resource has been discovered by the appliance, but it is not managed by the appliance;</p><p>*Managed* - the resource is managed by the appliance;</p><p>*Normal* - the resource is in a normal state;</p><p>*UpdateFailed* - an attempt to update the resource failed;</p><p>*Updating* - the resource is in the process of being updated.</p> |DEPENDENT |hpe.synergy.storage.pools["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `AddFailed 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `Connected 3`</p><p>- STR_REPLACE: `Copying 4`</p><p>- STR_REPLACE: `CreateFailed 5`</p><p>- STR_REPLACE: `Creating 6`</p><p>- STR_REPLACE: `DeleteFailed 7`</p><p>- STR_REPLACE: `Deleting 8`</p><p>- STR_REPLACE: `Discovered 9`</p><p>- STR_REPLACE: `Managed 10`</p><p>- STR_REPLACE: `Normal 11`</p><p>- STR_REPLACE: `UpdateFailed 12`</p><p>- STR_REPLACE: `Updating 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 14`</p> |
+|HPE |Storage pool [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.storage.pools["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Storage pool [{#NAME}]: Capacity total |<p>The total capacity of the storage pool in bytes.</p> |DEPENDENT |hpe.synergy.storage.pools.capacity["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalCapacity`</p> |
+|HPE |Storage system [{#NAME}]: Get data |<p>Data of the storage system [{#NAME}].</p> |DEPENDENT |hpe.synergy.storage.system["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Storage system [{#NAME}]: Capacity allocated |<p>The capacity allocated in bytes.</p> |DEPENDENT |hpe.synergy.storage.system.capacity["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.allocatedCapacity`</p> |
+|HPE |Storage system [{#NAME}]: Capacity free |<p>The free capacity of the storage system in bytes.</p> |DEPENDENT |hpe.synergy.storage.system.capacity["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.freeCapacity`</p> |
+|HPE |Storage system [{#NAME}]: State |<p>The current state of the resource:</p><p>*AddFailed* - an attempt to add the resource failed;</p><p>*Adding* - the resource is in the process of being added;</p><p>*Configured* - the resource is configured;</p><p>*Connected* - the appliance has connected to the resource;</p><p>*Copying* - the resource is in the process of being copied;</p><p>*CreateFailed* - an attempt to create the resource failed;</p><p>*Creating* - the resource is in the process of being created;</p><p>*DeleteFailed* - an attempt to delete the resource failed;</p><p>*Deleting* - the resource is in the process of being deleted;</p><p>*Discovered* - the resource has been discovered by the appliance, but it is not managed by the appliance;</p><p>*Managed* - the resource is managed by the appliance;</p><p>*Normal* - the resource is in a normal state;</p><p>*UpdateFailed* - an attempt to update the resource failed;</p><p>*Updating* - the resource is in the process of being updated.</p> |DEPENDENT |hpe.synergy.storage.system["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `AddFailed 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `Connected 3`</p><p>- STR_REPLACE: `Copying 4`</p><p>- STR_REPLACE: `CreateFailed 5`</p><p>- STR_REPLACE: `Creating 6`</p><p>- STR_REPLACE: `DeleteFailed 7`</p><p>- STR_REPLACE: `Deleting 8`</p><p>- STR_REPLACE: `Discovered 9`</p><p>- STR_REPLACE: `Managed 10`</p><p>- STR_REPLACE: `Normal 11`</p><p>- STR_REPLACE: `UpdateFailed 12`</p><p>- STR_REPLACE: `Updating 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 14`</p> |
+|HPE |Storage system [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.storage.system["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Storage system [{#NAME}]: Capacity total |<p>The total capacity of the storage system in bytes.</p> |DEPENDENT |hpe.synergy.storage.system.capacity["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.totalCapacity`</p> |
+|HPE |Storage volume [{#NAME}]: Get data |<p>Data of the storage volume [{#NAME}].</p> |DEPENDENT |hpe.synergy.storage.volumes["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Storage volume [{#NAME}]: Capacity allocated |<p>The capacity allocated in bytes.</p> |DEPENDENT |hpe.synergy.storage.volumes.capacity["{#NAME}",allocated]<p>**Preprocessing**:</p><p>- JSONPATH: `$.allocatedCapacity`</p> |
+|HPE |Storage volume [{#NAME}]: Capacity provisioned |<p>The total provisioned capacity of the volume in bytes.</p> |DEPENDENT |hpe.synergy.storage.volumes.capacity["{#NAME}",provisioned]<p>**Preprocessing**:</p><p>- JSONPATH: `$.provisionedCapacity`</p> |
+|HPE |Storage volume [{#NAME}]: State |<p>The current state of the resource:</p><p>*AddFailed* - an attempt to add the resource failed;</p><p>*Adding* - the resource is in the process of being added;</p><p>*Configured* - the resource is configured;</p><p>*Connected* - the appliance has connected to the resource;</p><p>*Copying* - the resource is in the process of being copied;</p><p>*CreateFailed* - an attempt to create the resource failed;</p><p>*Creating* - the resource is in the process of being created;</p><p>*DeleteFailed* - an attempt to delete the resource failed;</p><p>*Deleting* - the resource is in the process of being deleted;</p><p>*Discovered* - the resource has been discovered by the appliance, but it is not managed by the appliance;</p><p>*Managed* - the resource is managed by the appliance;</p><p>*Normal* - the resource is in a normal state;</p><p>*UpdateFailed* - an attempt to update the resource failed;</p><p>*Updating* - the resource is in the process of being updated.</p> |DEPENDENT |hpe.synergy.storage.volumes["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- STR_REPLACE: `AddFailed 0`</p><p>- STR_REPLACE: `Adding 1`</p><p>- STR_REPLACE: `Configured 2`</p><p>- STR_REPLACE: `Connected 3`</p><p>- STR_REPLACE: `Copying 4`</p><p>- STR_REPLACE: `CreateFailed 5`</p><p>- STR_REPLACE: `Creating 6`</p><p>- STR_REPLACE: `DeleteFailed 7`</p><p>- STR_REPLACE: `Deleting 8`</p><p>- STR_REPLACE: `Discovered 9`</p><p>- STR_REPLACE: `Managed 10`</p><p>- STR_REPLACE: `Normal 11`</p><p>- STR_REPLACE: `UpdateFailed 12`</p><p>- STR_REPLACE: `Updating 13`</p><p>- IN_RANGE: `0 13 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 14`</p> |
+|HPE |Storage volume [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.storage.volumes["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data |<p>Data of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Firmware version |<p>The firmware version of the manager.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",fw_version]<p>**Preprocessing**:</p><p>- JSONPATH: `$.fwVersion`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port state |<p>The state of the LINK port:</p><p>*Disabled* - the port is disabled;</p><p>*Linked* - the port is linked;</p><p>*Unlinked* - the port is unlinked.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.linkPortState`</p><p>- STR_REPLACE: `Disabled 0`</p><p>- STR_REPLACE: `Linked 1`</p><p>- STR_REPLACE: `Unlinked 2`</p><p>- IN_RANGE: `0 2 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port status |<p>The status of the LINK port:</p><p>*Critical* - requires immediate attention;</p><p>*Disabled* - the resource is currently not operational;</p><p>*OK* - indicates normal/informational behavior;</p><p>*Unknown* - the health status is not yet known or cannot be determined;</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.linkPortStatus`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port state |<p>The state of the MGMT port:</p><p>*Active* - the port is in active mode;</p><p>*Disabled* - the port is in disabled mode;</p><p>*I3s* - the port is configured for the deployment of an OS network traffic.</p><p>*Other* - the port is in other mode;</p><p>*Standby* - the port is in standby mode;</p><p>*Unknown* - the mode of the port is not known.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.mgmtPortState`</p><p>- STR_REPLACE: `Active 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `I3s 2`</p><p>- STR_REPLACE: `Other 3`</p><p>- STR_REPLACE: `Standby 4`</p><p>- STR_REPLACE: `Unknown 5`</p><p>- IN_RANGE: `0 5 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 5`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port status |<p>The status of the MGMT port:</p><p>*Critical* - requires immediate attention;</p><p>*Disabled* - the resource is currently not operational;</p><p>*OK* - indicates normal/informational behavior;</p><p>*Unknown* - the health status is not yet known or cannot be determined;</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.mgmtPortStatus`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model |<p>The model of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",model]<p>**Preprocessing**:</p><p>- JSONPATH: `$.model`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Part number |<p>The part number of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.partNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Presence |<p>Indicates whether a manager is present in the bay:</p><p>*Absent* - the device slot is empty;</p><p>*PresenceNoOp* - the device slot is uninitialized;</p><p>*PresenceUnknown* - the device presence is unknown;</p><p>*Present* - the device slot has a device in it;</p><p>*Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence]<p>**Preprocessing**:</p><p>- JSONPATH: `$.devicePresence`</p><p>- STR_REPLACE: `Absent 0`</p><p>- STR_REPLACE: `PresenceNoOp 1`</p><p>- STR_REPLACE: `PresenceUnknown 2`</p><p>- STR_REPLACE: `Present 3`</p><p>- STR_REPLACE: `Subsumed 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 2`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Serial number |<p>The serial number of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.serialNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Spare part number |<p>The spare part number of the link module.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",spare_part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.sparePartNumber`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|HPE |Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Status |<p>The health status of the link module:</p><p>*Critical* - requires immediate attention;</p><p>*Disabled* - the resource is currently not operational;</p><p>*OK* - indicates normal/informational behavior;</p><p>*Unknown* - the health status is not yet known or cannot be determined;</p><p>*Warning* - requires attention soon.</p> |DEPENDENT |hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
+|HPE |Uplink set [{#NAME}]: Get data |<p>Data of the uplink set [{#NAME}].</p> |DEPENDENT |hpe.synergy.uplink_set["{#NAME}",data]<p>**Preprocessing**:</p><p>- JSONPATH: `$.members[?(@.name == "{#NAME}")].first()`</p> |
+|HPE |Uplink set [{#NAME}]: State |<p>The current state of the resource.</p> |DEPENDENT |hpe.synergy.uplink_set["{#NAME}",state]<p>**Preprocessing**:</p><p>- JSONPATH: `$.state`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|HPE |Uplink set [{#NAME}]: Status |<p>The overall health status of the resource. The following are the valid values for the status of the resource:</p><p>*OK* - indicates normal/informational behavior;</p><p>*Disabled* - indicates that the resource is not operational;</p><p>*Warning* - requires attention soon;</p><p>*Critical* - requires immediate attention;</p><p>*Unknown* - should be avoided, but there may be rare occasions when the status is unknown.</p> |DEPENDENT |hpe.synergy.uplink_set["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.status`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `10m`</p><p>- STR_REPLACE: `Critical 0`</p><p>- STR_REPLACE: `Disabled 1`</p><p>- STR_REPLACE: `OK 2`</p><p>- STR_REPLACE: `Unknown 3`</p><p>- STR_REPLACE: `Warning 4`</p><p>- IN_RANGE: `0 4 `</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 3`</p> |
## Triggers
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
-|HPE Synergy: There are errors in requests to API |<p>Zabbix has received errors in requests to API.</p> |`length(last(/HPE Synergy by HTTP/hpe.synergy.data.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- HPE Synergy: Service is unavailable</p> |
+|HPE Synergy: There are errors in requests to API |<p>Zabbix has received errors from API.</p> |`length(last(/HPE Synergy by HTTP/hpe.synergy.get.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- HPE Synergy: Service is unavailable</p> |
|HPE Synergy: Service is unavailable |<p>-</p> |`max(/HPE Synergy by HTTP/net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{HOST.CONN}","{$HPE.SYNERGY.API.PORT}"],5m)=0` |HIGH |<p>Manual close: YES</p> |
-|Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>Appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
-|Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>Appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
-|Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>Appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
+|Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>The appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
+|Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>The appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
+|Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>The appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational</p> |`last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
|Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is subsumed |<p>The device slot is configured to be part of another device slot.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence])=4` |AVERAGE | |
-|Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
-|Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
-|Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
-|Datacenter [{#NAME}]: Add error |<p>Datacenter [{#NAME}] add failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=1` |AVERAGE | |
-|Datacenter [{#NAME}]: Has credential error |<p>Datacenter [{#NAME}] has credential error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=3` |AVERAGE | |
-|Datacenter [{#NAME}]: Has refresh error |<p>Datacenter [{#NAME}] has refresh error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=5` |AVERAGE | |
-|Datacenter [{#NAME}]: Has remove error |<p>Datacenter [{#NAME}] has remove error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=7` |AVERAGE | |
-|Datacenter [{#NAME}]: Has critical status |<p>Datacenter [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=0` |HIGH | |
-|Datacenter [{#NAME}]: Has warning status |<p>Datacenter [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=4` |WARNING | |
-|Datacenter [{#NAME}]: Is disabled |<p>Datacenter [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=1` |INFO | |
+|Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>The crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
+|Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>The crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
+|Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>The crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
+|Datacenter [{#NAME}]: Add error |<p>The adding of the datacenter [{#NAME}] has failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=1` |AVERAGE | |
+|Datacenter [{#NAME}]: Has credential error |<p>The datacenter [{#NAME}] has a credential error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=3` |AVERAGE | |
+|Datacenter [{#NAME}]: Has refresh error |<p>The datacenter [{#NAME}] has a refresh error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=5` |AVERAGE | |
+|Datacenter [{#NAME}]: Has remove error |<p>The datacenter [{#NAME}] has a remove error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=7` |AVERAGE | |
+|Datacenter [{#NAME}]: Has critical status |<p>The datacenter [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=0` |HIGH | |
+|Datacenter [{#NAME}]: Has warning status |<p>The datacenter [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=4` |WARNING | |
+|Datacenter [{#NAME}]: Is disabled |<p>the datacenter [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=1` |INFO | |
|Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is subsumed |<p>The device slot is configured to be part of another device slot.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence])=4` |AVERAGE | |
|Enclosure [{#NAME}]: Is interrupted |<p>The previous operation on the enclosure did not complete. The operation should be re-attempted.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state])=3 and last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state_reason])>-1` |WARNING | |
|Enclosure [{#NAME}]: Is unsupported |<p>The enclosure model or version is not currently supported by HPE OneView. It cannot be configured or monitored.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state])=9 and last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state_reason])>-1` |AVERAGE | |
|Enclosure [{#NAME}]: Remove failed |<p>The previous operation to remove the enclosure did not succeed. The operation should be re-attempted.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state])=6 and last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state_reason])>-1` |WARNING | |
|Enclosure [{#NAME}]: Is missing |<p>The enclosure is no longer connected into the frame link topology.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state_reason])=0` |AVERAGE | |
-|Enclosure [{#NAME}]: Is unowned |<p>The enclosure reports not being under management.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state_reason])=5` |AVERAGE | |
-|Enclosure [{#NAME}]: Has critical status |<p>Enclosure [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=0` |HIGH | |
-|Enclosure [{#NAME}]: Has warning status |<p>Enclosure [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=4` |WARNING | |
-|Enclosure [{#NAME}]: Is disabled |<p>Enclosure [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=1` |INFO | |
-|Ethernet network [{#NAME}]: Has critical status |<p>Ethernet network [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=0` |HIGH | |
-|Ethernet network [{#NAME}]: Has warning status |<p>Ethernet network [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=4` |WARNING | |
-|Ethernet network [{#NAME}]: Is disabled |<p>Ethernet network [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=1` |INFO | |
-|Fabric [{#NAME}]: Has critical status |<p>Fabric [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=0` |HIGH | |
-|Fabric [{#NAME}]: Has warning status |<p>Fabric [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=4` |WARNING | |
-|Fabric [{#NAME}]: Is disabled |<p>Fabric [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=1` |INFO | |
-|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is degraded |<p>Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in degraded state.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=0` |AVERAGE | |
-|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is failed |<p>Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in failed state.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=1` |HIGH | |
-|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is misplaced |<p>Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is misplaced.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=2` |WARNING | |
-|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is missing |<p>Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is missing.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=3` |AVERAGE | |
-|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
-|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
-|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
-|FC network [{#NAME}]: Has critical status |<p>FC network [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=0` |HIGH | |
-|FC network [{#NAME}]: Has warning status |<p>FC network [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=4` |WARNING | |
-|FC network [{#NAME}]: Is disabled |<p>FC network [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=1` |INFO | |
-|Hypervisor manager [{#NAME}]: Is in error state |<p>Hypervisor manager [{#NAME}] has error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",state])=3 and length(last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",state_reason]))>0` |HIGH | |
-|Hypervisor manager [{#NAME}]: Has critical status |<p>Hypervisor manager [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=0` |HIGH | |
-|Hypervisor manager [{#NAME}]: Has warning status |<p>Hypervisor manager [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=4` |WARNING | |
-|Hypervisor manager [{#NAME}]: Is disabled |<p>Hypervisor manager [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=1` |INFO | |
-|Interconnect [{#NAME}]: Has critical status |<p>Interconnect [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=0` |HIGH | |
-|Interconnect [{#NAME}]: Has warning status |<p>Interconnect [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=4` |WARNING | |
-|Interconnect [{#NAME}]: Is disabled |<p>Interconnect [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=1` |INFO | |
+|Enclosure [{#NAME}]: Is unowned |<p>The enclosure reports are not being under the management.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state_reason])=5` |AVERAGE | |
+|Enclosure [{#NAME}]: Has critical status |<p>The status of the enclosure [{#NAME}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=0` |HIGH | |
+|Enclosure [{#NAME}]: Has warning status |<p>The status of the enclosure [{#NAME}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=4` |WARNING | |
+|Enclosure [{#NAME}]: Is disabled |<p>The enclosure [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=1` |INFO | |
+|Ethernet network [{#NAME}]: Has critical status |<p>The ethernet network [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=0` |HIGH | |
+|Ethernet network [{#NAME}]: Has warning status |<p>The ethernet network [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=4` |WARNING | |
+|Ethernet network [{#NAME}]: Is disabled |<p>The ethernet network [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=1` |INFO | |
+|Fabric [{#NAME}]: Has critical status |<p>The status of the fabric [{#NAME}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=0` |HIGH | |
+|Fabric [{#NAME}]: Has warning status |<p>The status of the fabric [{#NAME}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=4` |WARNING | |
+|Fabric [{#NAME}]: Is disabled |<p>The status of the fabric [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=1` |INFO | |
+|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is degraded |<p>The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in degraded state.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=0` |AVERAGE | |
+|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is failed |<p>The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in failed state.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=1` |HIGH | |
+|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is misplaced |<p>The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is misplaced.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=2` |WARNING | |
+|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is missing |<p>The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is missing.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=3` |AVERAGE | |
+|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
+|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
+|Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
+|FC network [{#NAME}]: Has critical status |<p>The FC network [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=0` |HIGH | |
+|FC network [{#NAME}]: Has warning status |<p>The FC network [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=4` |WARNING | |
+|FC network [{#NAME}]: Is disabled |<p>The FC network [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=1` |INFO | |
+|Hypervisor manager [{#NAME}]: Is in error state |<p>The hypervisor manager [{#NAME}] has an error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",state])=3 and length(last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",state_reason]))>0` |HIGH | |
+|Hypervisor manager [{#NAME}]: Has critical status |<p>The hypervisor manager [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=0` |HIGH | |
+|Hypervisor manager [{#NAME}]: Has warning status |<p>The hypervisor manager [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=4` |WARNING | |
+|Hypervisor manager [{#NAME}]: Is disabled |<p>The hypervisor manager [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=1` |INFO | |
+|Interconnect [{#NAME}]: Has critical status |<p>The interconnect [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=0` |HIGH | |
+|Interconnect [{#NAME}]: Has warning status |<p>The interconnect [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=4` |WARNING | |
+|Interconnect [{#NAME}]: Is disabled |<p>The interconnect [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=1` |INFO | |
|Logical enclosure [{#NAME}]: Delete failed |<p>Indicator that the deletion of a logical enclosure failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",state])=2` |AVERAGE | |
-|Logical enclosure [{#NAME}]: Is inconsistent |<p>The configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as appropriate to bring the configuration back into consistency.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",state])=0` |AVERAGE | |
-|Logical enclosure [{#NAME}]: Has critical status |<p>Logical enclosure [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=0` |HIGH | |
-|Logical enclosure [{#NAME}]: Has warning status |<p>Logical enclosure [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=4` |WARNING | |
-|Logical enclosure [{#NAME}]: Is disabled |<p>Logical enclosure [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=1` |INFO | |
-|Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Health is invalid |<p>Partition health is invalid.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",health])=1` |AVERAGE | |
+|Logical enclosure [{#NAME}]: Is inconsistent |<p>The configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as an appropriate to bring the configuration back into consistency.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",state])=0` |AVERAGE | |
+|Logical enclosure [{#NAME}]: Has critical status |<p>The status of the logical enclosure [{#NAME}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=0` |HIGH | |
+|Logical enclosure [{#NAME}]: Has warning status |<p>The status of the logical enclosure [{#NAME}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=4` |WARNING | |
+|Logical enclosure [{#NAME}]: Is disabled |<p>The logical enclosure [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=1` |INFO | |
+|Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Health is invalid |<p>The partition health is invalid.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",health])=1` |AVERAGE | |
|Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Health is degraded |<p>One or more resources in the partition are unhealthy.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",health])=0` |HIGH | |
-|Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Is invalid |<p>Partition status is invalid.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",status])=2` |AVERAGE | |
-|Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
-|Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
-|Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
-|Rack [{#NAME}]: Add error |<p>Rack [{#NAME}] add failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=1` |AVERAGE | |
-|Rack [{#NAME}]: Has credential error |<p>Rack [{#NAME}] has credential error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=3` |AVERAGE | |
-|Rack [{#NAME}]: Has refresh error |<p>Rack [{#NAME}] has refresh error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=5` |AVERAGE | |
-|Rack [{#NAME}]: Has remove error |<p>Rack [{#NAME}] has remove error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=7` |AVERAGE | |
-|Rack [{#NAME}]: Has critical status |<p>Rack [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=0` |HIGH | |
-|Rack [{#NAME}]: Has warning status |<p>Rack [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=4` |WARNING | |
-|Rack [{#NAME}]: Is disabled |<p>Rack [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=1` |INFO | |
-|Server [{#SERVER_NAME}:{#LOCATION}]: Is in maintenance mode |<p>Disruptive maintenance operations like firmware update can cause many server hardware alerts to be generated in a short period of time. Ex: Network connectivity lost or Server reset detected.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",maintenance_state])=0 and length(last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",maintenance_state_reason]))>0` |INFO | |
-|Server [{#SERVER_NAME}:{#LOCATION}]: Has profile error |<p>Unsuccessful profile apply or removal.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=11` |AVERAGE | |
-|Server [{#SERVER_NAME}:{#LOCATION}]: Is not initialized |<p>Server not initialized.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=0` |WARNING | |
-|Server [{#SERVER_NAME}:{#LOCATION}]: Is unsupported |<p>Server model or version not currently supported by the appliance.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=12` |AVERAGE | |
+|Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Is invalid |<p>The partition status is invalid.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",status])=2` |AVERAGE | |
+|Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>The status of the power supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
+|Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>The status of the power supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
+|Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>The status of Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
+|Rack [{#NAME}]: Add error |<p>Adding the rack [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=1` |AVERAGE | |
+|Rack [{#NAME}]: Has credential error |<p>The rack [{#NAME}] has credential error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=3` |AVERAGE | |
+|Rack [{#NAME}]: Has refresh error |<p>The rack [{#NAME}] has refresh error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=5` |AVERAGE | |
+|Rack [{#NAME}]: Has remove error |<p>The rack [{#NAME}] has remove error.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=7` |AVERAGE | |
+|Rack [{#NAME}]: Has critical status |<p>The rack [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=0` |HIGH | |
+|Rack [{#NAME}]: Has warning status |<p>The rack [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=4` |WARNING | |
+|Rack [{#NAME}]: Is disabled |<p>The rack [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=1` |INFO | |
+|Server [{#SERVER_NAME}:{#LOCATION}]: Is in maintenance mode |<p>The disruptive maintenance operations like firmware update can cause many server hardware alerts to be generated in a short period of time. Example: Network connectivity is lost or the server reset is detected.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",maintenance_state])=0 and length(last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",maintenance_state_reason]))>0` |INFO | |
+|Server [{#SERVER_NAME}:{#LOCATION}]: Has profile error |<p>The unsuccessful profile application or removal.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=11` |AVERAGE | |
+|Server [{#SERVER_NAME}:{#LOCATION}]: Is not initialized |<p>The server is not initialized.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=0` |WARNING | |
+|Server [{#SERVER_NAME}:{#LOCATION}]: Is unsupported |<p>The server model or version is not currently supported by the appliance.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=12` |AVERAGE | |
|Server [{#SERVER_NAME}:{#LOCATION}]: Remove failed |<p>The previous operation to remove the server hardware did not succeed. The operation should be re-attempted.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=6` |AVERAGE | |
|Server [{#SERVER_NAME}:{#LOCATION}]: Is unmanaged |<p>Discovered a supported server.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=4 and length(last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state_reason]))>0` |AVERAGE | |
-|Server [{#SERVER_NAME}:{#LOCATION}]: Has critical status |<p>Server [{#SERVER_NAME}:{#LOCATION}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=0` |HIGH | |
-|Server [{#SERVER_NAME}:{#LOCATION}]: Has warning status |<p>Server [{#SERVER_NAME}:{#LOCATION}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=4` |WARNING | |
-|Server [{#SERVER_NAME}:{#LOCATION}]: Is disabled |<p>Server [{#SERVER_NAME}:{#LOCATION}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=1` |INFO | |
-|Storage pool [{#NAME}]: Add error |<p>Storage pool [{#NAME}] add failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=0` |AVERAGE | |
-|Storage pool [{#NAME}]: Create failed |<p>Storage pool [{#NAME}] create failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=5` |AVERAGE | |
-|Storage pool [{#NAME}]: Delete failed |<p>Storage pool [{#NAME}] delete failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=7` |AVERAGE | |
-|Storage pool [{#NAME}]: Update failed |<p>Storage pool [{#NAME}] update failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=12` |AVERAGE | |
-|Storage pool [{#NAME}]: Has critical status |<p>Storage pool [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=0` |HIGH | |
-|Storage pool [{#NAME}]: Has warning status |<p>Storage pool [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=4` |WARNING | |
-|Storage pool [{#NAME}]: Is disabled |<p>Storage pool [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=1` |INFO | |
-|Storage system [{#NAME}]: Add error |<p>Storage system [{#NAME}] add failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=0` |AVERAGE | |
-|Storage system [{#NAME}]: Create failed |<p>Storage system [{#NAME}] create failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=5` |AVERAGE | |
-|Storage system [{#NAME}]: Delete failed |<p>Storage system [{#NAME}] delete failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=7` |AVERAGE | |
-|Storage system [{#NAME}]: Update failed |<p>Storage system [{#NAME}] update failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=12` |AVERAGE | |
-|Storage system [{#NAME}]: Has critical status |<p>Storage system [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=0` |HIGH | |
-|Storage system [{#NAME}]: Has warning status |<p>Storage system [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=4` |WARNING | |
-|Storage system [{#NAME}]: Is disabled |<p>Storage system [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=1` |INFO | |
-|Storage volume [{#NAME}]: Add error |<p>Storage volume [{#NAME}] add failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=0` |AVERAGE | |
-|Storage volume [{#NAME}]: Create failed |<p>Storage volume [{#NAME}] create failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=5` |AVERAGE | |
-|Storage volume [{#NAME}]: Delete failed |<p>Storage volume [{#NAME}] delete failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=7` |AVERAGE | |
-|Storage volume [{#NAME}]: Update failed |<p>Storage volume [{#NAME}] update failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=12` |AVERAGE | |
-|Storage volume [{#NAME}]: Has critical status |<p>Storage volume [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=0` |HIGH | |
-|Storage volume [{#NAME}]: Has warning status |<p>Storage volume [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=4` |WARNING | |
-|Storage volume [{#NAME}]: Is disabled |<p>Storage volume [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=1` |INFO | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port has critical status |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] link port status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=0` |HIGH | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port has warning status |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] link port status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=4` |WARNING | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port is disabled |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] link port currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=1` |INFO | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port has critical status |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] mgmt port status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=0` |HIGH | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port has warning status |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] MGMT port status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=4` |WARNING | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port is disabled |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] MGMT port currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=1` |INFO | |
+|Server [{#SERVER_NAME}:{#LOCATION}]: Has critical status |<p>The status of the server [{#SERVER_NAME}:{#LOCATION}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=0` |HIGH | |
+|Server [{#SERVER_NAME}:{#LOCATION}]: Has warning status |<p>The status of the server [{#SERVER_NAME}:{#LOCATION}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=4` |WARNING | |
+|Server [{#SERVER_NAME}:{#LOCATION}]: Is disabled |<p>The server [{#SERVER_NAME}:{#LOCATION}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=1` |INFO | |
+|Storage pool [{#NAME}]: Add error |<p>Adding of the storage pool [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=0` |AVERAGE | |
+|Storage pool [{#NAME}]: Create failed |<p>Creating of the storage pool [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=5` |AVERAGE | |
+|Storage pool [{#NAME}]: Delete failed |<p>Deletion of the storage pool [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=7` |AVERAGE | |
+|Storage pool [{#NAME}]: Update failed |<p>Updating of the storage pool [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=12` |AVERAGE | |
+|Storage pool [{#NAME}]: Has critical status |<p>The status of the storage pool [{#NAME}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=0` |HIGH | |
+|Storage pool [{#NAME}]: Has warning status |<p>The status of the storage pool [{#NAME}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=4` |WARNING | |
+|Storage pool [{#NAME}]: Is disabled |<p>The storage pool [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=1` |INFO | |
+|Storage system [{#NAME}]: Add error |<p>Adding the storage system [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=0` |AVERAGE | |
+|Storage system [{#NAME}]: Create failed |<p>Creating of the storage system [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=5` |AVERAGE | |
+|Storage system [{#NAME}]: Delete failed |<p>Deletion of the storage system [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=7` |AVERAGE | |
+|Storage system [{#NAME}]: Update failed |<p>Updating of the storage system [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=12` |AVERAGE | |
+|Storage system [{#NAME}]: Has critical status |<p>The status of the storage system [{#NAME}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=0` |HIGH | |
+|Storage system [{#NAME}]: Has warning status |<p>The status of the storage system [{#NAME}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=4` |WARNING | |
+|Storage system [{#NAME}]: Is disabled |<p>The storage system [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=1` |INFO | |
+|Storage volume [{#NAME}]: Add error |<p>Adding the storage volume [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=0` |AVERAGE | |
+|Storage volume [{#NAME}]: Create failed |<p>Creating of the storage volume [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=5` |AVERAGE | |
+|Storage volume [{#NAME}]: Delete failed |<p>Deletion of the storage volume [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=7` |AVERAGE | |
+|Storage volume [{#NAME}]: Update failed |<p>Updating of the storage volume [{#NAME}] failed.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=12` |AVERAGE | |
+|Storage volume [{#NAME}]: Has critical status |<p>The status of the storage volume [{#NAME}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=0` |HIGH | |
+|Storage volume [{#NAME}]: Has warning status |<p>The status of the storage volume [{#NAME}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=4` |WARNING | |
+|Storage volume [{#NAME}]: Is disabled |<p>The storage volume [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=1` |INFO | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port has critical status |<p>The link port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=0` |HIGH | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port has warning status |<p>The link port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=4` |WARNING | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port is disabled |<p>The link port of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=1` |INFO | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port has critical status |<p>The MGMT port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=0` |HIGH | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port has warning status |<p>The MGMT port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=4` |WARNING | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port is disabled |<p>The MGMT port of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=1` |INFO | |
|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is subsumed |<p>The device slot is configured to be part of another device slot.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",presence])=4` |AVERAGE | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
-|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
-|Uplink set [{#NAME}]: Has critical status |<p>Uplink set [{#NAME}] status is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=0` |HIGH | |
-|Uplink set [{#NAME}]: Has warning status |<p>Uplink set [{#NAME}] status is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=4` |WARNING | |
-|Uplink set [{#NAME}]: Is disabled |<p>Uplink set [{#NAME}] currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=1` |INFO | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status |<p>The status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0` |HIGH | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status |<p>The status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4` |WARNING | |
+|Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled |<p>The manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1` |INFO | |
+|Uplink set [{#NAME}]: Has critical status |<p>The status of the uplink set [{#NAME}] is critical. Needs immediate attention.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=0` |HIGH | |
+|Uplink set [{#NAME}]: Has warning status |<p>The status of the uplink set [{#NAME}] is warning. Needs attention soon.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=4` |WARNING | |
+|Uplink set [{#NAME}]: Is disabled |<p>The uplink set [{#NAME}] is currently not operational.</p> |`last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=1` |INFO | |
## Feedback
Please report any issues with the template at https://support.zabbix.com
-You can also provide feedback, discuss the template or ask for help with it at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/).
+You can also provide feedback, discuss the template or ask for help at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/).
diff --git a/templates/server/hpe_synergy_http/template_server_hpe_synergy_http.yaml b/templates/server/hpe_synergy_http/template_server_hpe_synergy_http.yaml
index a013c20a2dc..8cf2691ed64 100644
--- a/templates/server/hpe_synergy_http/template_server_hpe_synergy_http.yaml
+++ b/templates/server/hpe_synergy_http/template_server_hpe_synergy_http.yaml
@@ -1,6 +1,6 @@
zabbix_export:
version: '6.0'
- date: '2022-07-05T06:29:44Z'
+ date: '2022-10-12T07:39:32Z'
groups:
-
uuid: e960332b3f6c46a1956486d4f3f99fce
@@ -11,7 +11,7 @@ zabbix_export:
template: 'HPE Synergy by HTTP'
name: 'HPE Synergy by HTTP'
description: |
- The template to monitor HPE Synergy by HTTP.
+ This template is designed to monitor HPE Synergy by HTTP.
It works without any external scripts and uses the script item.
Setup:
@@ -26,72 +26,10 @@ zabbix_export:
name: 'Templates/Server hardware'
items:
-
- uuid: 6a12ea452d444c8ca5aec2698709d979
- name: 'HPE Synergy: Get enclosures'
- type: DEPENDENT
- key: hpe.synergy.data.enclosures
- delay: '0'
- history: 0d
- trends: '0'
- value_type: TEXT
- description: 'A list of enclosures.'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - '$.enclosures.members.[0]'
- master_item:
- key: hpe.synergy.data.get
- tags:
- -
- tag: component
- value: raw
- -
- uuid: c0049d63dffe4cdaafa806796051e06b
- name: 'HPE Synergy: Get errors'
- type: DEPENDENT
- key: hpe.synergy.data.errors
- delay: '0'
- history: 7d
- trends: '0'
- value_type: TEXT
- description: 'A list of errors from API requests.'
- preprocessing:
- -
- type: JSONPATH
- parameters:
- - $.errors
- -
- type: DISCARD_UNCHANGED_HEARTBEAT
- parameters:
- - 1h
- master_item:
- key: hpe.synergy.data.get
- tags:
- -
- tag: component
- value: raw
- triggers:
- -
- uuid: dba8cff13328403dae2cbda8f106b384
- expression: 'length(last(/HPE Synergy by HTTP/hpe.synergy.data.errors))>0'
- name: 'HPE Synergy: There are errors in requests to API'
- opdata: '{ITEM.LASTVALUE1}'
- priority: AVERAGE
- description: 'Zabbix has received errors in requests to API.'
- dependencies:
- -
- name: 'HPE Synergy: Service is unavailable'
- expression: 'max(/HPE Synergy by HTTP/net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{HOST.CONN}","{$HPE.SYNERGY.API.PORT}"],5m)=0'
- tags:
- -
- tag: scope
- value: availability
- -
uuid: 2f9816e8a60149f4aafdf7ffb0632224
name: 'HPE Synergy: Get data'
type: SCRIPT
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.data
history: 0d
trends: '0'
value_type: TEXT
@@ -303,7 +241,7 @@ zabbix_export:
}
return JSON.stringify(data);
- description: 'The JSON with result of API requests.'
+ description: 'The JSON with the result from requests to API.'
timeout: '{$HPE.SYNERGY.DATA.TIMEOUT}'
parameters:
-
@@ -320,12 +258,361 @@ zabbix_export:
tag: component
value: raw
-
+ uuid: 03389ced2251456a98f56418f1fbc6c5
+ name: 'HPE Synergy: Get datacenters data'
+ type: DEPENDENT
+ key: hpe.synergy.get.datacenters
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the datacenters.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.datacenters
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 6a12ea452d444c8ca5aec2698709d979
+ name: 'HPE Synergy: Get enclosures data'
+ type: DEPENDENT
+ key: hpe.synergy.get.enclosures
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'A list of enclosures.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.enclosures
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: c0049d63dffe4cdaafa806796051e06b
+ name: 'HPE Synergy: Get errors'
+ type: DEPENDENT
+ key: hpe.synergy.get.errors
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: TEXT
+ description: 'A list of errors from API requests.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.errors
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ triggers:
+ -
+ uuid: dba8cff13328403dae2cbda8f106b384
+ expression: 'length(last(/HPE Synergy by HTTP/hpe.synergy.get.errors))>0'
+ name: 'HPE Synergy: There are errors in requests to API'
+ opdata: '{ITEM.LASTVALUE1}'
+ priority: AVERAGE
+ description: 'Zabbix has received errors from API.'
+ dependencies:
+ -
+ name: 'HPE Synergy: Service is unavailable'
+ expression: 'max(/HPE Synergy by HTTP/net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{HOST.CONN}","{$HPE.SYNERGY.API.PORT}"],5m)=0'
+ tags:
+ -
+ tag: scope
+ value: availability
+ -
+ uuid: 11b7e2c9c3ba4c71a2a5b165eea2c105
+ name: 'HPE Synergy: Get ethernet networks data'
+ type: DEPENDENT
+ key: hpe.synergy.get.ethernet_networks
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the ethernet networks.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["ethernet-networks"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: d6d0a7fb1f0e47a792cd5197e2aa99b2
+ name: 'HPE Synergy: Get fabrics data'
+ type: DEPENDENT
+ key: hpe.synergy.get.fabrics
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the fabrics.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.fabrics
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 789012febb2c44af8cf01b83315f6e99
+ name: 'HPE Synergy: Get FC networks data'
+ type: DEPENDENT
+ key: hpe.synergy.get.fc_networks
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the FC networks.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["fc-networks"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 1b903d33f7ef481687db5f94a94123f5
+ name: 'HPE Synergy: Get hypervisor managers data'
+ type: DEPENDENT
+ key: hpe.synergy.get.hypervisor_managers
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the hypervisor managers.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["hypervisor-managers"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 9724a596f61241f297f5fa8fbd538ea0
+ name: 'HPE Synergy: Get interconnects data'
+ type: DEPENDENT
+ key: hpe.synergy.get.interconnects
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the interconnects.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.interconnects
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: bff37f5e7576433e85991ca474aae7c8
+ name: 'HPE Synergy: Get logical enclosures data'
+ type: DEPENDENT
+ key: hpe.synergy.get.logical_enclosures
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the logical enclosures.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["logical-enclosures"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 5f44e9a2434e4773ab9d8c5664535a91
+ name: 'HPE Synergy: Get racks data'
+ type: DEPENDENT
+ key: hpe.synergy.get.racks
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the racks.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.racks
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 066eacd86e784308a0b3ed53c7fd2482
+ name: 'HPE Synergy: Get server hardware data'
+ type: DEPENDENT
+ key: hpe.synergy.get.server_hardware
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the server hardware.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["server-hardware"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 249afb5967c146799340487196206e01
+ name: 'HPE Synergy: Get storage pools data'
+ type: DEPENDENT
+ key: hpe.synergy.get.storage_pools
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the storage pools.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["storage-pools"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: bab0584a38fb4e9ba3270c2882e9cef1
+ name: 'HPE Synergy: Get storage systems data'
+ type: DEPENDENT
+ key: hpe.synergy.get.storage_systems
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the storage systems.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["storage-systems"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: f232ebaf34eb474d9596cfe573e7b3fb
+ name: 'HPE Synergy: Get storage volumes data'
+ type: DEPENDENT
+ key: hpe.synergy.get.storage_volumes
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the storage volumes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["storage-volumes"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: d8e6a2b490ab472cb15814c19ed71e16
+ name: 'HPE Synergy: Get uplink sets data'
+ type: DEPENDENT
+ key: hpe.synergy.get.uplink_sets
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the uplink sets.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.["uplink-sets"]'
+ error_handler: DISCARD_VALUE
+ master_item:
+ key: hpe.synergy.get.data
+ tags:
+ -
+ tag: component
+ value: raw
+ -
uuid: 86da94cecaa1424e9a22479d556d7b12
name: 'HPE Synergy: Service ping'
type: SIMPLE
key: 'net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{HOST.CONN}","{$HPE.SYNERGY.API.PORT}"]'
history: 7d
- description: 'Checks if the service is running and accepting TCP connections.'
+ description: 'Checks if the service is running and accepting the TCP connections.'
valuemap:
name: 'Service state'
preprocessing:
@@ -370,17 +657,17 @@ zabbix_export:
description: |
The power state of the appliance bay.
- EFuse - The power state of the bay is that it has been EFused.
- Reset - The power state of the bay is that it has been reset.
- SoftReset - The power state of the bay is that it has been soft reset.
- Unknown - The power state of the bay is unknown.
+ *EFuse* - the power state of the bay - it has been EFused.
+ *Reset* - the power state of the bay - it has been reset.
+ *SoftReset* - the power state of the bay - it has been softly reset.
+ *Unknown* - the power state of the bay is unknown.
valuemap:
name: 'Power state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].bayPowerState.first()'
+ - $.bayPowerState
-
type: STR_REPLACE
parameters:
@@ -409,7 +696,34 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
+ tags:
+ -
+ tag: bay-number
+ value: '{#BAY_NUMBER}'
+ -
+ tag: component
+ value: appliance
+ -
+ tag: enclosure
+ value: '{#ENCLOSURE_NAME}'
+ -
+ uuid: 76d81ddf977f4d3481af82f8a9031b50
+ name: 'Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
tags:
-
tag: bay-number
@@ -418,6 +732,9 @@ zabbix_export:
tag: component
value: appliance
-
+ tag: component
+ value: raw
+ -
tag: enclosure
value: '{#ENCLOSURE_NAME}'
-
@@ -429,18 +746,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'The model name for the appliance.'
+ description: 'The model name of the appliance.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -465,13 +782,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -489,14 +806,14 @@ zabbix_export:
key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",powered_on]'
delay: '0'
history: 7d
- description: 'Yes if the appliance is powered on; false otherwise.'
+ description: '*Yes*, if the appliance is powered on; *false*, otherwise.'
valuemap:
name: Boolean
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].poweredOn.first()'
+ - $.poweredOn
-
type: BOOL_TO_DECIMAL
parameters:
@@ -506,7 +823,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -527,18 +844,18 @@ zabbix_export:
description: |
Indicates whether an appliance is present in the bay:
- Absent - The device slot is empty.
- PresenceNoOp - The device slot is uninitialized.
- PresenceUnknown - The device presence is unknown.
- Present - The device slot has a device in it.
- Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.
+ *Absent* - the device slot is empty;
+ *PresenceNoOp* - the device slot is uninitialized;
+ *PresenceUnknown* - the device presence is unknown;
+ *Present* - the device slot has a device in it;
+ *Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.
valuemap:
name: 'Device presence'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()'
+ - $.devicePresence
-
type: STR_REPLACE
parameters:
@@ -576,7 +893,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -601,13 +918,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -632,13 +949,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()'
+ - $.sparePartNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -659,18 +976,18 @@ zabbix_export:
description: |
The hardware status of the appliance:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behaviour.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention;
+ *Disabled* - the resource is currently not operational;
+ *OK* - indicates normal/informational behavior;
+ *Unknown* - the health status is not yet known or cannot be determined;
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].applianceBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -708,7 +1025,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -725,7 +1042,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0'
name: 'Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status'
priority: HIGH
- description: 'Appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
+ description: 'The appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -735,7 +1052,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4'
name: 'Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status'
priority: WARNING
- description: 'Appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
+ description: 'The appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -745,13 +1062,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.appliance["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1'
name: 'Appliance bay [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled'
priority: INFO
- description: 'Appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.'
+ description: 'The appliance [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.enclosures
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#BAY_NUMBER}'
@@ -763,7 +1080,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.applianceBays
+ - '$.members.[0].applianceBays'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -774,9 +1091,39 @@ zabbix_export:
type: DEPENDENT
key: hpe.synergy.crossbars.discovery
delay: '0'
- description: 'SDX cross fabric module connects to all compute devices installed in the system enclosure and brings in the capability of hard partitioning. Crossbar details are relevant only for enclosures with type "SDX".'
+ description: 'SDX cross fabric module connects to all computing devices installed in the system enclosure and brings in the capability of hard partitioning. Crossbar details are relevant only for enclosures with type "SDX".'
item_prototypes:
-
+ uuid: cedc8d60b7c647efbd148d020432861d
+ name: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] data'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#ENCLOSURE_NAME}")].crossbars[?(@.bayNumber == "{#BAY_NUMBER}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
+ tags:
+ -
+ tag: bay-number
+ value: '{#BAY_NUMBER}'
+ -
+ tag: component
+ value: crossbar
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#ENCLOSURE_NAME}'
+ -
uuid: c64e3a01454f473b888e57496ec642d3
name: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: HW version'
type: DEPENDENT
@@ -785,18 +1132,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Hardware version.'
+ description: 'The hardware version.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].hwVersion.first()'
+ - $.hwVersion
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -821,13 +1168,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -846,20 +1193,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Presence in a bay:
+ The presence in a bay:
- Absent - The device slot is empty.
- PresenceNoOp - The device slot is uninitialized.
- PresenceUnknown - The device presence is unknown.
- Present - The device slot has a device in it.
- Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.
+ *Absent* - the device slot is empty;
+ *PresenceNoOp* - the device slot is uninitialized;
+ *PresenceUnknown* - the device presence is unknown;
+ *Present* - the device slot has a device in it;
+ *Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.
valuemap:
name: 'Device presence'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].presence.first()'
+ - $.presence
-
type: STR_REPLACE
parameters:
@@ -897,7 +1244,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -928,18 +1275,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Serial number.'
+ description: 'A serial number.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -958,20 +1305,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the crossbar:
+ The overall health status of the crossbar:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behaviour.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention;
+ *Disabled* - the resource is currently not operational;
+ *OK* - indicates normal/informational behavior;
+ *Unknown* - the health status is not yet known or cannot be determined;
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].crossBars[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1009,7 +1356,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -1026,7 +1373,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0'
name: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status'
priority: HIGH
- description: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
+ description: 'The crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -1036,7 +1383,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4'
name: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status'
priority: WARNING
- description: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
+ description: 'The crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -1046,13 +1393,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.crossbar["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1'
name: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled'
priority: INFO
- description: 'Crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.'
+ description: 'The crossbar [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.enclosures
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#BAY_NUMBER}'
@@ -1064,7 +1411,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.crossBars
+ - '$.members.[0].crossBars'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1078,20 +1425,47 @@ zabbix_export:
description: 'A list of the datacenters.'
item_prototypes:
-
+ uuid: 08830efa6eb64d7291eaa15bbfc0b851
+ name: 'Datacenter [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.datacenter["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the datacenter [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.datacenters
+ tags:
+ -
+ tag: component
+ value: datacenter
+ -
+ tag: component
+ value: raw
+ -
+ tag: datacenter
+ value: '{#NAME}'
+ -
uuid: d37c1e2376ba4da5822041ad8ff37c8a
name: 'Datacenter [{#NAME}]: State'
type: DEPENDENT
key: 'hpe.synergy.datacenter["{#NAME}",state]'
delay: '0'
history: 7d
- description: 'The current state of the resource. Valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.'
+ description: 'The current state of the resource. The valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.'
valuemap:
name: 'Rack state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.datacenters.members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -1145,7 +1519,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '9'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.datacenter["{#NAME}",data]'
tags:
-
tag: component
@@ -1159,7 +1533,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=1'
name: 'Datacenter [{#NAME}]: Add error'
priority: AVERAGE
- description: 'Datacenter [{#NAME}] add failed.'
+ description: 'The adding of the datacenter [{#NAME}] has failed.'
tags:
-
tag: scope
@@ -1169,7 +1543,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=3'
name: 'Datacenter [{#NAME}]: Has credential error'
priority: AVERAGE
- description: 'Datacenter [{#NAME}] has credential error.'
+ description: 'The datacenter [{#NAME}] has a credential error.'
tags:
-
tag: scope
@@ -1179,7 +1553,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=5'
name: 'Datacenter [{#NAME}]: Has refresh error'
priority: AVERAGE
- description: 'Datacenter [{#NAME}] has refresh error.'
+ description: 'The datacenter [{#NAME}] has a refresh error.'
tags:
-
tag: scope
@@ -1189,7 +1563,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",state])=7'
name: 'Datacenter [{#NAME}]: Has remove error'
priority: AVERAGE
- description: 'Datacenter [{#NAME}] has remove error.'
+ description: 'The datacenter [{#NAME}] has a remove error.'
tags:
-
tag: scope
@@ -1202,20 +1576,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that a resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.datacenters.members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1253,7 +1627,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.datacenter["{#NAME}",data]'
tags:
-
tag: component
@@ -1267,7 +1641,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=0'
name: 'Datacenter [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Datacenter [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The datacenter [{#NAME}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -1277,7 +1651,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=4'
name: 'Datacenter [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Datacenter [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The datacenter [{#NAME}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -1287,13 +1661,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.datacenter["{#NAME}",status])=1'
name: 'Datacenter [{#NAME}]: Is disabled'
priority: INFO
- description: 'Datacenter [{#NAME}] currently not operational.'
+ description: 'the datacenter [{#NAME}] currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.datacenters
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -1302,7 +1676,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.datacenters.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1316,6 +1690,36 @@ zabbix_export:
description: 'A list of device bays in the enclosure.'
item_prototypes:
-
+ uuid: 5c7b1315b123482e908229882b6e57c1
+ name: 'Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
+ tags:
+ -
+ tag: bay-number
+ value: '{#BAY_NUMBER}'
+ -
+ tag: component
+ value: device
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#ENCLOSURE_NAME}'
+ -
uuid: 38ecff044b1d4ff88f8e99b21998181a
name: 'Device [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model'
type: DEPENDENT
@@ -1324,18 +1728,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Model name of an unsupported device occupying the bay, if available.'
+ description: 'The model name of an unsupported device occupying the bay if available.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -1359,13 +1763,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].powerAllocationWatts.first()'
+ - $.powerAllocationWatts
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -1386,18 +1790,18 @@ zabbix_export:
description: |
Indicates whether a device is present:
- Absent - The device slot is empty.
- PresenceNoOp - The device slot is uninitialized.
- PresenceUnknown - The device presence is unknown.
- Present - The device slot has a device in it.
- Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.
+ *Absent* - the device slot is empty;
+ *PresenceNoOp* - the device slot is uninitialized;
+ *PresenceUnknown* - the device presence is unknown;
+ *Present* - the device slot has a device in it;
+ *Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.
valuemap:
name: 'Device presence'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()'
+ - $.devicePresence
-
type: STR_REPLACE
parameters:
@@ -1435,7 +1839,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -1471,14 +1875,14 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].deviceBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()'
+ - $.serialNumber
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.device["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -1490,7 +1894,7 @@ zabbix_export:
tag: enclosure
value: '{#ENCLOSURE_NAME}'
master_item:
- key: hpe.synergy.data.enclosures
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#BAY_NUMBER}'
@@ -1502,7 +1906,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.deviceBays
+ - '$.members.[0].deviceBays'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -1522,18 +1926,18 @@ zabbix_export:
key: 'hpe.synergy.enclosure["{#NAME}",appliance_bay_count]'
delay: '0'
history: 7d
- description: 'The number of appliance bays in the enclosure.'
+ description: 'The number of the appliance bays in the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].applianceBayCount.first()'
+ - $.applianceBayCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1545,24 +1949,51 @@ zabbix_export:
tag: enclosure
value: '{#NAME}'
-
+ uuid: 2bdee9f0f6fa49928b4cef48b9900859
+ name: 'Enclosure [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the enclosure [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
+ tags:
+ -
+ tag: component
+ value: enclosure
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#NAME}'
+ -
uuid: e0cc3af5e941491ebbb6227f2ece06a7
name: 'Enclosure [{#NAME}]: Device bays count'
type: DEPENDENT
key: 'hpe.synergy.enclosure["{#NAME}",device_bay_count]'
delay: '0'
history: 7d
- description: 'The number of device bays in the enclosure.'
+ description: 'The number of the device bays in the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].deviceBayCount.first()'
+ - $.deviceBayCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1586,9 +2017,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].deviceBayWatts.first()'
+ - $.deviceBayWatts
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1607,14 +2038,14 @@ zabbix_export:
delay: '0'
history: 7d
units: W
- description: 'The amount of power allocated for the fans and management devices of the enclosure.'
+ description: 'The amount of the power allocated for the fans and management devices of the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].fansAndManagementDevicesWatts.first()'
+ - $.fansAndManagementDevicesWatts
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1638,18 +2069,18 @@ zabbix_export:
key: 'hpe.synergy.enclosure["{#NAME}",fan_bay_count]'
delay: '0'
history: 7d
- description: 'The number of fan bays in the enclosure.'
+ description: 'The number of the fan bays in the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].fanBayCount.first()'
+ - $.fanBayCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1674,13 +2105,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].fwBaselineName.first()'
+ - $.fwBaselineName
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1695,18 +2126,18 @@ zabbix_export:
key: 'hpe.synergy.enclosure["{#NAME}",interconnect_bay_count]'
delay: '0'
history: 7d
- description: 'The number of interconnect bays in the enclosure.'
+ description: 'The number of the interconnect bays in the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].interconnectBayCount.first()'
+ - $.interconnectBayCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1730,9 +2161,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].interconnectBayWatts.first()'
+ - $.interconnectBayWatts
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1750,18 +2181,18 @@ zabbix_export:
key: 'hpe.synergy.enclosure["{#NAME}",min_ps]'
delay: '0'
history: 7d
- description: 'The minimum number of power supplies needed.'
+ description: 'The minimum number of the power supplies needed.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].minimumPowerSupplies.first()'
+ - $.minimumPowerSupplies
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1779,18 +2210,18 @@ zabbix_export:
key: 'hpe.synergy.enclosure["{#NAME}",min_ps_redundant]'
delay: '0'
history: 7d
- description: 'The minimum number of power supplies needed to fulfill the redundant line feed power mode.'
+ description: 'The minimum number of the power supplies needed to fulfill the redundant line feed power mode.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].minimumPowerSuppliesForRedundantPowerFeed.first()'
+ - $.minimumPowerSuppliesForRedundantPowerFeed
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1810,18 +2241,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'The enclosure model name, eg, "BladeSystem c7000 Enclosure G2".'
+ description: 'The enclosure model name, for example, "BladeSystem c7000 Enclosure G2.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].enclosureModel.first()'
+ - $.enclosureModel
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1843,13 +2274,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1870,9 +2301,9 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].powerCapacityWatts.first()'
+ - $.powerCapacityWatts
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1891,14 +2322,14 @@ zabbix_export:
delay: '0'
history: 7d
units: W
- description: 'The total amount of power allocated in the enclosure.'
+ description: 'The total amount of the power allocated in the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].powerAllocatedWatts.first()'
+ - $.powerAllocatedWatts
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1917,14 +2348,14 @@ zabbix_export:
delay: '0'
history: 7d
units: W
- description: 'The amount of unallocated power in the enclosure.'
+ description: 'The amount of the unallocated power in the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].powerAvailableWatts.first()'
+ - $.powerAvailableWatts
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1942,18 +2373,18 @@ zabbix_export:
key: 'hpe.synergy.enclosure["{#NAME}",ps_bay_count]'
delay: '0'
history: 7d
- description: 'The number of power supply bays in the enclosure.'
+ description: 'The number of the power supply bays in the enclosure.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].powerSupplyBayCount.first()'
+ - $.powerSupplyBayCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -1978,13 +2409,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -2000,25 +2431,25 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Current resource state of the enclosure:
+ The current resource state of the enclosure:
- Adding - The enclosure is being added.
- Configured - The enclosure is configured and part of a logical enclosure. This is the usual state for an enclosure under full management.
- Configuring - A transient state while the enclosure is being configured for a logical enclosure.
- Interrupted - The previous operation on the enclosure did not complete. The operation should be re-attempted.
- Monitored - The enclosure is being monitored. It is not part of a logical enclosure and only hardware-control operations are available.
- Pending - There are pending operations on the enclosure. Additional operations are denied.
- RemoveFailed - The previous operation to remove the enclosure did not succeed. The operation should be re-attempted.
- Removing - The enclosure is being removed.
- Unmanaged - The enclosure has been discovered, but has not yet been added for management or monitoring.
- Unsupported - The enclosure model or version is not currently supported by HPE OneView. It cannot be configured or monitored.
+ *Adding* - the enclosure is being added;
+ *Configured* - the enclosure is configured and is a part of the logical enclosure. This is the usual state for an enclosure under full management;
+ *Configuring* - a transient state while the enclosure is being configured for a logical enclosure;
+ *Interrupted* - the previous operation on the enclosure did not complete. The operation should be re-attempted;
+ *Monitored* - the enclosure is being monitored. It is not a part of the logical enclosure and only hardware-control operations are available;
+ *Pending* - there are pending operations on the enclosure. Additional operations are denied;
+ *RemoveFailed* - the previous operation to remove the enclosure did not succeed. The operation should be re-attempted;
+ *Removing* - the enclosure is being removed;
+ *Unmanaged* - the enclosure has been discovered, but has not yet been added for the management or monitoring;
+ *Unsupported* - the enclosure model or version is not currently supported by HPE OneView. It cannot be configured or monitored.
valuemap:
name: 'Enclosure state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -2077,7 +2508,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '10'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -2093,23 +2524,23 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Indicates the reason the resource in its current state:
+ Indicates the reason why the resource in its current state:
- Missing - The enclosure is no longer connected into the frame link topology.
- None - No reason is available, or none applies.
- NotAdded - The enclosure has not been added.
- NotOwner - The enclosure reports being managed by something other than this HPE OneView.
- OperationFailed - A prior operation was interrupted.
- Unowned - The enclosure reports not being under management.
- UnsupportedFirmware - The firmware version of the enclosure is not supported by this version of HPE OneView.
- UpdatingFirmware - A firmware update is in progress.
+ *Missing* - the enclosure is no longer connected into the frame link topology;
+ *None* - no reason is available, or none applies;
+ *NotAdded* - the enclosure has not been added;
+ *NotOwner* - the enclosure reports being managed by something other than this HPE OneView;
+ *OperationFailed* - a prior operation was interrupted;
+ *Unowned* - the enclosure reports are not being under the management;
+ *UnsupportedFirmware* - the firmware version of the enclosure is not supported by this version of HPE OneView;
+ *UpdatingFirmware* - a firmware update is in progress.
valuemap:
name: 'State reason'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].stateReason.first()'
+ - $.stateReason
-
type: STR_REPLACE
parameters:
@@ -2158,7 +2589,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '8'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -2182,7 +2613,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",state_reason])=5'
name: 'Enclosure [{#NAME}]: Is unowned'
priority: AVERAGE
- description: 'The enclosure reports not being under management.'
+ description: 'The enclosure reports are not being under the management.'
tags:
-
tag: scope
@@ -2195,21 +2626,21 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the enclosure.
- The enclosure status reflects the hardware health of the enclosure, all bays, and enclosure components (e.g. enclosure mid-plane, fans, power supplies, Synergy Frame Link Modules, and Synergy Composers). It explicitly does not include the status of other HPE OneView resources such as blades (server hardware), interconnects, and drive enclosures.
+ The overall health status of the enclosure.
+ The enclosure status reflects the hardware health of the enclosure, all the bays, and the enclosure components (e.g. the enclosure mid-plane, fans, power supplies, Synergy Frame Link Modules, and Synergy Composers). It explicitly does not include the status of the other HPE OneView resources such as the blades (server hardware), the interconnects, and the drive enclosures.
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behaviour.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention.
+ *Disabled* - the resource is currently not operational.
+ *OK* - indicates normal/informational behavior.
+ *Unknown* - the health status is not yet known or cannot be determined.
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2247,7 +2678,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -2261,7 +2692,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=0'
name: 'Enclosure [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Enclosure [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The status of the enclosure [{#NAME}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -2271,7 +2702,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=4'
name: 'Enclosure [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Enclosure [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The status of the enclosure [{#NAME}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -2281,7 +2712,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.enclosure["{#NAME}",status])=1'
name: 'Enclosure [{#NAME}]: Is disabled'
priority: INFO
- description: 'Enclosure [{#NAME}] currently not operational.'
+ description: 'The enclosure [{#NAME}] is currently not operational.'
tags:
-
tag: scope
@@ -2295,18 +2726,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'The type of the enclosure, eg, "C7000" or "SY12000" or "SDX".'
+ description: 'The type of the enclosure, for example, "C7000" or "SY12000" or "SDX".'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#NAME}")].enclosureType.first()'
+ - $.enclosureType
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 6h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -2389,7 +2820,7 @@ zabbix_export:
host: 'HPE Synergy by HTTP'
key: 'hpe.synergy.enclosure["{#NAME}",interconnect_bay_watts]'
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -2398,7 +2829,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.enclosures.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2412,6 +2843,33 @@ zabbix_export:
description: 'A list of the ethernet networks.'
item_prototypes:
-
+ uuid: 0176e96b210b4a778b0b4b9b6fabdf3b
+ name: 'Ethernet network [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.ethernet.network["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the ethernet network [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.ethernet_networks
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: component
+ value: raw
+ -
+ tag: network
+ value: '{#NAME}'
+ -
uuid: 9b69d74467d6440eb98fc6c69c2f6779
name: 'Ethernet network [{#NAME}]: State'
type: DEPENDENT
@@ -2425,13 +2883,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["ethernet-networks"].members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.ethernet.network["{#NAME}",data]'
tags:
-
tag: component
@@ -2447,20 +2905,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["ethernet-networks"].members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2498,7 +2956,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.ethernet.network["{#NAME}",data]'
tags:
-
tag: component
@@ -2512,7 +2970,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=0'
name: 'Ethernet network [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Ethernet network [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The ethernet network [{#NAME}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -2522,7 +2980,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=4'
name: 'Ethernet network [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Ethernet network [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The ethernet network [{#NAME}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -2532,13 +2990,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.ethernet.network["{#NAME}",status])=1'
name: 'Ethernet network [{#NAME}]: Is disabled'
priority: INFO
- description: 'Ethernet network [{#NAME}] currently not operational.'
+ description: 'The ethernet network [{#NAME}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.ethernet_networks
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -2547,7 +3005,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["ethernet-networks"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2561,6 +3019,33 @@ zabbix_export:
description: 'A list of the fabrics.'
item_prototypes:
-
+ uuid: 26e6e32676d74347abd8dbf92c649113
+ name: 'Fabric [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.fabric["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the fabric [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.fabrics
+ tags:
+ -
+ tag: component
+ value: fabric
+ -
+ tag: component
+ value: raw
+ -
+ tag: fabric
+ value: '{#NAME}'
+ -
uuid: 9f38d17239ee45d4a22e8f08dde37910
name: 'Fabric [{#NAME}]: State'
type: DEPENDENT
@@ -2574,13 +3059,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.fabrics.members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fabric["{#NAME}",data]'
tags:
-
tag: component
@@ -2596,20 +3081,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.fabrics.members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2647,7 +3132,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fabric["{#NAME}",data]'
tags:
-
tag: component
@@ -2661,7 +3146,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=0'
name: 'Fabric [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Fabric [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The status of the fabric [{#NAME}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -2671,7 +3156,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=4'
name: 'Fabric [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Fabric [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The status of the fabric [{#NAME}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -2681,13 +3166,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fabric["{#NAME}",status])=1'
name: 'Fabric [{#NAME}]: Is disabled'
priority: INFO
- description: 'Fabric [{#NAME}] currently not operational.'
+ description: 'The status of the fabric [{#NAME}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.fabrics
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -2696,7 +3181,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.fabrics.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -2710,6 +3195,36 @@ zabbix_export:
description: 'A list of the fan bays in the enclosure.'
item_prototypes:
-
+ uuid: 1ee7ddcfd9734abbaef8dc345f9eb85d
+ name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
+ tags:
+ -
+ tag: bay-number
+ value: '{#BAY_NUMBER}'
+ -
+ tag: component
+ value: fan
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#ENCLOSURE_NAME}'
+ -
uuid: 8449918637ab4f98932ca75d859546b2
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model'
type: DEPENDENT
@@ -2723,13 +3238,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -2754,13 +3269,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -2781,18 +3296,18 @@ zabbix_export:
description: |
Indicates whether a fan is present:
- Absent - The device slot is empty.
- PresenceNoOp - The device slot is uninitialized.
- PresenceUnknown - The device presence is unknown.
- Present - The device slot has a device in it.
- Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.
+ *Absent* - the device slot is empty;
+ *PresenceNoOp* - the device slot is uninitialized;
+ *PresenceUnknown* - the device presence is unknown;
+ *Present* - the device slot has a device in it;
+ *Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.
valuemap:
name: 'Device presence'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()'
+ - $.devicePresence
-
type: STR_REPLACE
parameters:
@@ -2830,7 +3345,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -2855,7 +3370,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].deviceRequired.first()'
+ - $.deviceRequired
-
type: BOOL_TO_DECIMAL
parameters:
@@ -2865,7 +3380,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -2890,13 +3405,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -2921,13 +3436,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()'
+ - $.sparePartNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -2946,21 +3461,21 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Current state of the fan:
+ The current state of the fan:
- Degraded - Fan is degraded.
- Failed - Fan has failed.
- Misplaced - Fan is present, but not required, in this bay, and the overall fan configuration is not compliant with the enclosure fan placement rules.
- Missing - Fan is required, but is not present.
- OK - Fan bay has no issues.
- Unknown - Unknown fan's state.
+ *Degraded* - a fan is degraded;
+ *Failed* - a fan has failed;
+ *Misplaced* - a fan is present, but not required in this bay, and the overall fan configuration is not compliant with the enclosure fan placement rules;
+ *Missing* - a fan is required, but is not present;
+ *OK* - a fan bay has no issues;
+ *Unknown* - the state of a fan is unknown.
valuemap:
name: 'Resource state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].state.first()'
+ - $.state
error_handler: CUSTOM_VALUE
error_handler_params: '5'
-
@@ -2996,7 +3511,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '5'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3013,7 +3528,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=0'
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is degraded'
priority: AVERAGE
- description: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in degraded state.'
+ description: 'The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in degraded state.'
tags:
-
tag: scope
@@ -3023,7 +3538,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=1'
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is failed'
priority: HIGH
- description: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in failed state.'
+ description: 'The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is in failed state.'
tags:
-
tag: scope
@@ -3033,7 +3548,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=2'
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is misplaced'
priority: WARNING
- description: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is misplaced.'
+ description: 'The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is misplaced.'
tags:
-
tag: scope
@@ -3043,7 +3558,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",state])=3'
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is missing'
priority: AVERAGE
- description: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is missing.'
+ description: 'The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is missing.'
tags:
-
tag: scope
@@ -3056,20 +3571,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the fan:
+ The overall health status of the fan:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behavior.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention;
+ *Disabled* - the resource is currently not operational;
+ *OK* - indicates normal/informational behavior;
+ *Unknown* - the health status is not yet known or cannot be determined;
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].fanBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3107,7 +3622,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3124,7 +3639,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0'
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status'
priority: HIGH
- description: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
+ description: 'The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -3134,7 +3649,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4'
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status'
priority: WARNING
- description: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
+ description: 'The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -3144,13 +3659,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fan["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1'
name: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled'
priority: INFO
- description: 'Fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.'
+ description: 'The fan [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.enclosures
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#BAY_NUMBER}'
@@ -3162,7 +3677,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.fanBays
+ - '$.members.[0].fanBays'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3176,6 +3691,33 @@ zabbix_export:
description: 'A list of the FC networks.'
item_prototypes:
-
+ uuid: 75ca293f7deb4d7faa669f141478f1d7
+ name: 'FC network [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.fc.network["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the FC network [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.fc_networks
+ tags:
+ -
+ tag: component
+ value: fc-network
+ -
+ tag: component
+ value: raw
+ -
+ tag: fc-network
+ value: '{#NAME}'
+ -
uuid: 1defd79827204bbcaffe79cd7a9df059
name: 'FC network [{#NAME}]: State'
type: DEPENDENT
@@ -3189,13 +3731,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["fc-networks"].members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fc.network["{#NAME}",data]'
tags:
-
tag: component
@@ -3211,20 +3753,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["fc-networks"].members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3262,7 +3804,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.fc.network["{#NAME}",data]'
tags:
-
tag: component
@@ -3276,7 +3818,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=0'
name: 'FC network [{#NAME}]: Has critical status'
priority: HIGH
- description: 'FC network [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The FC network [{#NAME}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -3286,7 +3828,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=4'
name: 'FC network [{#NAME}]: Has warning status'
priority: WARNING
- description: 'FC network [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The FC network [{#NAME}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -3296,13 +3838,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.fc.network["{#NAME}",status])=1'
name: 'FC network [{#NAME}]: Is disabled'
priority: INFO
- description: 'FC network [{#NAME}] currently not operational.'
+ description: 'The FC network [{#NAME}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.fc_networks
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -3311,7 +3853,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["fc-networks"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3325,6 +3867,36 @@ zabbix_export:
description: 'A list of the Synergy Frame Link Module bays.'
item_prototypes:
-
+ uuid: 53c899a616a24fc4990363d3f2942417
+ name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
+ tags:
+ -
+ tag: bay-number
+ value: '{#BAY_NUMBER}'
+ -
+ tag: component
+ value: manager
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#ENCLOSURE_NAME}'
+ -
uuid: 64e7f977edf34338aa74e8acc88d98fd
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Firmware version'
type: DEPENDENT
@@ -3338,13 +3910,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].fwVersion.first()'
+ - $.fwVersion
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3365,16 +3937,16 @@ zabbix_export:
description: |
The state of the LINK port:
- Disabled - The port is disabled.
- Linked - The port is linked.
- Unlinked - The port is unlinked.
+ *Disabled* - the port is disabled;
+ *Linked* - the port is linked;
+ *Unlinked* - the port is unlinked.
valuemap:
name: 'Link port state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].linkPortState.first()'
+ - $.linkPortState
-
type: STR_REPLACE
parameters:
@@ -3402,7 +3974,7 @@ zabbix_export:
parameters:
- 10m
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3423,18 +3995,18 @@ zabbix_export:
description: |
The status of the LINK port:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behavior.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention;
+ *Disabled* - the resource is currently not operational;
+ *OK* - indicates normal/informational behavior;
+ *Unknown* - the health status is not yet known or cannot be determined;
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].linkPortStatus.first()'
+ - $.linkPortStatus
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3472,7 +4044,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3489,7 +4061,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=0'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port has critical status'
priority: HIGH
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] link port status is critical. Needs immediate attention.'
+ description: 'The link port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -3502,7 +4074,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=4'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port has warning status'
priority: WARNING
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] link port status is warning. Needs attention soon.'
+ description: 'The link port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -3515,7 +4087,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",link_port_status])=1'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Link port is disabled'
priority: INFO
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] link port currently not operational.'
+ description: 'The link port of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.'
tags:
-
tag: scope
@@ -3530,19 +4102,19 @@ zabbix_export:
description: |
The state of the MGMT port:
- Active - The port is in active mode.
- Disabled - The port is in disabled mode.
- I3s - The port is configured for OS deployment network traffic.
- Other - The port is in other mode.
- Standby - The port is in standby mode.
- Unknown - The port mode is not known.
+ *Active* - the port is in active mode;
+ *Disabled* - the port is in disabled mode;
+ *I3s* - the port is configured for the deployment of an OS network traffic.
+ *Other* - the port is in other mode;
+ *Standby* - the port is in standby mode;
+ *Unknown* - the mode of the port is not known.
valuemap:
name: 'MGMT port state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].mgmtPortState.first()'
+ - $.mgmtPortState
-
type: STR_REPLACE
parameters:
@@ -3585,7 +4157,7 @@ zabbix_export:
parameters:
- 10m
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3606,18 +4178,18 @@ zabbix_export:
description: |
The status of the MGMT port:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behavior.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention;
+ *Disabled* - the resource is currently not operational;
+ *OK* - indicates normal/informational behavior;
+ *Unknown* - the health status is not yet known or cannot be determined;
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].mgmtPortStatus.first()'
+ - $.mgmtPortStatus
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3655,7 +4227,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3672,7 +4244,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=0'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port has critical status'
priority: HIGH
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] mgmt port status is critical. Needs immediate attention.'
+ description: 'The MGMT port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -3682,7 +4254,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=4'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port has warning status'
priority: WARNING
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] MGMT port status is warning. Needs attention soon.'
+ description: 'The MGMT port status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -3692,7 +4264,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",mgmt_port_status])=1'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: MGMT port is disabled'
priority: INFO
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] MGMT port currently not operational.'
+ description: 'The MGMT port of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.'
tags:
-
tag: scope
@@ -3711,13 +4283,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3742,13 +4314,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3769,18 +4341,18 @@ zabbix_export:
description: |
Indicates whether a manager is present in the bay:
- Absent - The device slot is empty.
- PresenceNoOp - The device slot is uninitialized.
- PresenceUnknown - The device presence is unknown.
- Present - The device slot has a device in it.
- Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.
+ *Absent* - the device slot is empty;
+ *PresenceNoOp* - the device slot is uninitialized;
+ *PresenceUnknown* - the device presence is unknown;
+ *Present* - the device slot has a device in it;
+ *Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.
valuemap:
name: 'Device presence'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()'
+ - $.devicePresence
-
type: STR_REPLACE
parameters:
@@ -3818,7 +4390,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3854,13 +4426,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3885,13 +4457,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()'
+ - $.sparePartNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3912,18 +4484,18 @@ zabbix_export:
description: |
The health status of the link module:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behavior.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention;
+ *Disabled* - the resource is currently not operational;
+ *OK* - indicates normal/informational behavior;
+ *Unknown* - the health status is not yet known or cannot be determined;
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].managerBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -3961,7 +4533,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -3978,7 +4550,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status'
priority: HIGH
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
+ description: 'The status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -3988,7 +4560,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status'
priority: WARNING
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
+ description: 'The status of the manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -3998,13 +4570,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.manager["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1'
name: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled'
priority: INFO
- description: 'Manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.'
+ description: 'The manager [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.'
tags:
-
tag: scope
value: notice
master_item:
- key: hpe.synergy.data.enclosures
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#BAY_NUMBER}'
@@ -4016,7 +4588,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.managerBays
+ - '$.members.[0].managerBays'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4030,20 +4602,47 @@ zabbix_export:
description: 'A list of the hypervisor managers.'
item_prototypes:
-
+ uuid: c6ba70270a424762bb8baf9531f44ed9
+ name: 'Hypervisor manager [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.hypervisor_manager["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the hypervisor manager [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.displayName == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.hypervisor_managers
+ tags:
+ -
+ tag: component
+ value: hypervisor-manager
+ -
+ tag: component
+ value: raw
+ -
+ tag: hypervisor-manager
+ value: '{#NAME}'
+ -
uuid: a60a72ddc0de4a9c9b0b7be53542089c
name: 'Hypervisor manager [{#NAME}]: State'
type: DEPENDENT
key: 'hpe.synergy.hypervisor_manager["{#NAME}",state]'
delay: '0'
history: 7d
- description: 'Current state of the resource. Valid values include Connected, Disconnected, Configuring and Error.'
+ description: 'The current state of the resource. The valid values include Connected, Disconnected, Configuring and Error.'
valuemap:
name: 'Hypervisor manager state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["hypervisor-managers"].members[?(@.displayName == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -4072,7 +4671,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '4'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.hypervisor_manager["{#NAME}",data]'
tags:
-
tag: component
@@ -4089,18 +4688,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Indicates the reason the resource in its current state.'
+ description: 'Indicates the reason why the resource is in its current state.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["hypervisor-managers"].members[?(@.displayName == "{#NAME}")].stateReason.first()'
+ - $.stateReason
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.hypervisor_manager["{#NAME}",data]'
tags:
-
tag: component
@@ -4116,20 +4715,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Current status of this resource:
+ The current status of this resource:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behavior.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *Critical* - requires immediate attention;
+ *Disabled* - the resource is currently not operational;
+ *OK* - indicates normal/informational behavior;
+ *Unknown* - the health status is not yet known or cannot be determined;
+ *Warning* - requires attention soon.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["hypervisor-managers"].members[?(@.displayName == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4167,7 +4766,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.hypervisor_manager["{#NAME}",data]'
tags:
-
tag: component
@@ -4181,7 +4780,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=0'
name: 'Hypervisor manager [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Hypervisor manager [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The hypervisor manager [{#NAME}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -4191,7 +4790,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=4'
name: 'Hypervisor manager [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Hypervisor manager [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The hypervisor manager [{#NAME}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -4201,7 +4800,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.hypervisor_manager["{#NAME}",status])=1'
name: 'Hypervisor manager [{#NAME}]: Is disabled'
priority: INFO
- description: 'Hypervisor manager [{#NAME}] currently not operational.'
+ description: 'The hypervisor manager [{#NAME}] is currently not operational.'
tags:
-
tag: scope
@@ -4213,13 +4812,13 @@ zabbix_export:
name: 'Hypervisor manager [{#NAME}]: Is in error state'
opdata: 'Reason: {ITEM.LASTVALUE2}'
priority: HIGH
- description: 'Hypervisor manager [{#NAME}] has error.'
+ description: 'The hypervisor manager [{#NAME}] has an error.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.hypervisor_managers
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -4228,7 +4827,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["hypervisor-managers"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4239,9 +4838,36 @@ zabbix_export:
type: DEPENDENT
key: hpe.synergy.interconnects.discovery
delay: '0'
- description: 'Interconnects are centrally managed by their containing logical interconnect. The interconnect provides a physical view of detailed downlink and uplink port state and configuration, including the current link state, speed, port role (uplink, downlink, or stacking), current pluggable media, power state, and immediate connected neighbor.'
+ description: 'Interconnects are centrally managed by their containing logical interconnect. The interconnect provides a physical view of a detailed downlink and uplink port state and configuration, including the current link state, speed, port role (uplink, downlink, or stacking), current pluggable media, power state, and immediate connected neighbor.'
item_prototypes:
-
+ uuid: 5c504f8c744244febae87002cd520cbd
+ name: 'Interconnect [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the interconnect [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.interconnects
+ tags:
+ -
+ tag: component
+ value: interconnect
+ -
+ tag: component
+ value: raw
+ -
+ tag: interconnect
+ value: '{#NAME}'
+ -
uuid: dc4822f158da4577a47ec4cf920b9b90
name: 'Interconnect [{#NAME}]: Hardware health'
type: DEPENDENT
@@ -4250,18 +4876,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Interconnect hardware health status.'
+ description: 'The health status of the interconnect hardware.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].interconnectHardwareHealth.first()'
+ - $.interconnectHardwareHealth
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4281,18 +4907,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Interconnect model.'
+ description: 'The interconnect model.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4309,18 +4935,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Interconnect part number.'
+ description: 'The part number of the interconnect.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4335,18 +4961,18 @@ zabbix_export:
key: 'hpe.synergy.interconnect["{#NAME}",port_count]'
delay: '0'
history: 7d
- description: 'Number of ports on the interconnect.'
+ description: 'The number of ports on the interconnect.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].portCount.first()'
+ - $.portCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4363,18 +4989,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Interconnect serial number.'
+ description: 'The serial number of the interconnect.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4391,18 +5017,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Interconnect spare part number.'
+ description: 'The spare part number of the interconnect.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].sparePartNumber.first()'
+ - $.sparePartNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4419,18 +5045,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Current state of the resource'
+ description: 'The current state of the resource.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4446,20 +5072,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behavior.
- Unknown - The health status is not yet known or cannot be determined.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.interconnects.members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4497,7 +5123,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.interconnect["{#NAME}",data]'
tags:
-
tag: component
@@ -4511,7 +5137,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=0'
name: 'Interconnect [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Interconnect [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The interconnect [{#NAME}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -4521,7 +5147,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=4'
name: 'Interconnect [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Interconnect [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The interconnect [{#NAME}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -4531,13 +5157,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.interconnect["{#NAME}",status])=1'
name: 'Interconnect [{#NAME}]: Is disabled'
priority: INFO
- description: 'Interconnect [{#NAME}] currently not operational.'
+ description: 'The interconnect [{#NAME}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.interconnects
lld_macro_paths:
-
lld_macro: '{#ENCLOSURE_NAME}'
@@ -4549,7 +5175,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.interconnects.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4563,6 +5189,33 @@ zabbix_export:
description: 'A list of the logical enclosures.'
item_prototypes:
-
+ uuid: 96e5588599854754b9c7513c6786d9a6
+ name: 'Logical enclosure [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.logical_enclosure["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the logical enclosure [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.logical_enclosures
+ tags:
+ -
+ tag: component
+ value: logical-enclosure
+ -
+ tag: component
+ value: raw
+ -
+ tag: logical-enclosure
+ value: '{#NAME}'
+ -
uuid: 785f3a94e8614810b7ccc84be779ad1d
name: 'Logical enclosure [{#NAME}]: State'
type: DEPENDENT
@@ -4570,21 +5223,21 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Current resource state of the logical enclosure:
+ The current resource state of the logical enclosure:
- Consistent - This is the expected state of the logical enclosure. The logical enclosure configuration is consistent with the enclosure group and the configuration of the hardware resources is consistent with the logical enclosure configuration.
- Creating - The logical enclosure is being created.
- DeleteFailed - The prior attempt to delete the logical enclosure failed. Retry the delete operation potentially with the force option. No other logical enclosure operations are allowed in this state.
- Deleting - The logical enclosure is being deleted.
- Inconsistent - The configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as appropriate to bring the configuration back into consistency.
- Updating - Configuration changes are being applied to the hardware configuration.
+ *Consistent* - this is the expected state of the logical enclosure. The logical enclosure configuration is consistent with the enclosure group, and the configuration of the hardware resources is consistent with the logical enclosure configuration;
+ *Creating* - the logical enclosure is being created;
+ *DeleteFailed* - the prior attempt to delete the logical enclosure failed. Retry the delete operation potentially with the force option. No other logical enclosure operations are allowed in this state;
+ *Deleting* - the logical enclosure is being deleted;
+ *Inconsistent* - the configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as an appropriate to bring the configuration back into consistency;
+ *Updating* - configuration changes are being applied to the hardware configuration.
valuemap:
name: 'Logical enclosure state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["logical-enclosures"].members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -4623,7 +5276,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '6'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.logical_enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -4647,7 +5300,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",state])=0'
name: 'Logical enclosure [{#NAME}]: Is inconsistent'
priority: AVERAGE
- description: 'The configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as appropriate to bring the configuration back into consistency.'
+ description: 'The configuration of the logical enclosure differs from that of the enclosure group, or the configuration of the hardware resources is inconsistent with the logical enclosure configuration. Perform an Update from group, Reapply configuration, or Update firmware action as an appropriate to bring the configuration back into consistency.'
tags:
-
tag: scope
@@ -4660,20 +5313,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["logical-enclosures"].members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4711,7 +5364,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.logical_enclosure["{#NAME}",data]'
tags:
-
tag: component
@@ -4725,7 +5378,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=0'
name: 'Logical enclosure [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Logical enclosure [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The status of the logical enclosure [{#NAME}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -4735,7 +5388,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=4'
name: 'Logical enclosure [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Logical enclosure [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The status of the logical enclosure [{#NAME}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -4745,13 +5398,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.logical_enclosure["{#NAME}",status])=1'
name: 'Logical enclosure [{#NAME}]: Is disabled'
priority: INFO
- description: 'Logical enclosure [{#NAME}] currently not operational.'
+ description: 'The logical enclosure [{#NAME}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.logical_enclosures
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -4760,7 +5413,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["logical-enclosures"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -4774,6 +5427,36 @@ zabbix_export:
description: 'Electrically isolated hardware partition (nPar). Partition details are relevant only for enclosures with type "SDX".'
item_prototypes:
-
+ uuid: 440aa83c441d490491b12ef31675428e
+ name: 'Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
+ tags:
+ -
+ tag: component
+ value: partition
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#ENCLOSURE_NAME}'
+ -
+ tag: partition
+ value: '{#PARTITION_ID}'
+ -
uuid: 8ee334ce899341a8b1292dd84d7b0af4
name: 'Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Devices count'
type: DEPENDENT
@@ -4785,13 +5468,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].deviceCount.first()'
+ - $.deviceCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 10m
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: component
@@ -4810,19 +5493,19 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Indicates the health of the partition and the health of its owned resources (blades and IO bays) as reported by firmware. If a problem is detected with one of the resources, the health of the partition is reported as Degraded. If all of the resources in the partition are operating correctly the health of the partition is reported as OK.
+ Indicates the health of the partition and the health of its owned resources (blades and IO bays) as reported by the firmware. If a problem is detected with one of the resources, the health of the partition is reported as Degraded. If all the resources in the partition are operating correctly, the health of the partition is reported as OK.
- NparDegrade - One or more resources in the partition are unhealthy.
- NparHealthInvalid - Partition health is invalid.
- NparHealthMax - Delimiter defined by firmware.
- NparOk - All the resources in partition are healthy.
+ *NparDegrade* - one or more resources in the partition are unhealthy.
+ *NparHealthInvalid* - a partition health is invalid.
+ *NparHealthMax* - a delimiter defined by the firmware.
+ *NparOk* - all the resources in the partition are healthy.
valuemap:
name: 'Partition health'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].partitionHealth.first()'
+ - $.partitionHealth
-
type: STR_REPLACE
parameters:
@@ -4851,7 +5534,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '4'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: component
@@ -4881,7 +5564,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",health])=1'
name: 'Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Health is invalid'
priority: AVERAGE
- description: 'Partition health is invalid.'
+ description: 'The partition health is invalid.'
tags:
-
tag: scope
@@ -4894,12 +5577,12 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total memory of the partition.'
+ description: 'The total memory of the partition.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].memoryMb.first()'
+ - $.memoryMb
-
type: MULTIPLIER
parameters:
@@ -4909,7 +5592,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: component
@@ -4935,13 +5618,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].processorCount.first()'
+ - $.processorCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 10m
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: component
@@ -4963,22 +5646,22 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Indicates whether the partition has booted and its current power state:
+ Indicates whether the partition has been booted and also indicates its current power state:
- ParStatusActive - Partition is active when a 'poweron' operation is initiated on the partition and the firmware boot process is started.
- ParStatusInactive - Partition is in inactive state after it has been created or shut down.
- ParStatusInvalid - Partition status is invalid.
- ParStatusManualRepair - Partition is under manual repair.
- ParStatusMax - Delimiter defined by OA firmware.
- ParStatusUndefined - Partition status is undefined.
- ParStatusUnknown - Partition might report an 'Unknown' state after an OA restart. This state is possible when the firmware is not able to identify the correct partition state due to internal firmware errors at OA startup. The state is persistent and can only be cleared by force powering off the partition from the OA. A partition in this state will not accept any partition operation except parstatus and force poweroff. Any active OS instances continue to run unhindered even when the partition is in an Unknown state.
+ *ParStatusActive* - a partition is active when a 'poweron' operation is initiated on the partition and the firmware boot process is started;
+ *ParStatusInactive* - a partition is in an inactive state after it has been created or shut down;
+ *ParStatusInvalid* - a partition status is invalid;
+ *ParStatusManualRepair* - a partition under manual repair;
+ *ParStatusMax* - a delimiter defined by the OA firmware;
+ *ParStatusUndefined* - partition status is undefined;
+ *ParStatusUnknown* - a partition might report an Unknown state after an OA restart. This state is possible when the firmware is not able to identify the correct partition state due to the internal firmware errors at an OA startup. The state is persistent and can only be cleared by force powering off of the partition from the OA. A partition in this state will not accept any partition operation except parstatus and force poweroff. Any active OS instances continue to run unhindered even when the partition is in an unknown state.
valuemap:
name: 'Partition status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].partitions[?(@.partitionID == "{#PARTITION_ID}")].partitionStatus.first()'
+ - $.partitionStatus
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -5026,7 +5709,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '6'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: component
@@ -5043,13 +5726,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.partition["{#PARTITION_ID}","{#ENCLOSURE_NAME}",status])=2'
name: 'Partition [{#ENCLOSURE_NAME}:{#PARTITION_ID}]: Is invalid'
priority: AVERAGE
- description: 'Partition status is invalid.'
+ description: 'The partition status is invalid.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.enclosures
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#ENCLOSURE_NAME}'
@@ -5061,7 +5744,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.partitions
+ - '$.members.[0].partitions'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -5075,6 +5758,36 @@ zabbix_export:
description: 'List of power supply bays in the enclosure.'
item_prototypes:
-
+ uuid: 92d8618ee81742f6bb1cfdd63b51f3ea
+ name: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].first()'
+ master_item:
+ key: hpe.synergy.get.enclosures
+ tags:
+ -
+ tag: bay-number
+ value: '{#BAY_NUMBER}'
+ -
+ tag: component
+ value: power
+ -
+ tag: component
+ value: raw
+ -
+ tag: enclosure
+ value: '{#ENCLOSURE_NAME}'
+ -
uuid: e748215b1d4a404ca0269909d321cdc6
name: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Model'
type: DEPENDENT
@@ -5088,13 +5801,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -5113,18 +5826,18 @@ zabbix_export:
delay: '0'
history: 7d
units: W
- description: 'The power supply output capacity.'
+ description: 'The output capacity of the power supply.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].outputCapacityWatts.first()'
+ - $.outputCapacityWatts
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -5149,13 +5862,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -5174,20 +5887,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Indicates whether a power supply is present.
+ Indicates whether a power supply is present:
- Absent - The device slot is empty.
- PresenceNoOp - The device slot is uninitialized.
- PresenceUnknown - The device presence is unknown.
- Present - The device slot has a device in it.
- Subsumed - The device slot is configured to be part of another device slot. Not applicable for fan or power supply bays.
+ *Absent* - the device slot is empty;
+ *PresenceNoOp* - the device slot is uninitialized;
+ *PresenceUnknown* - the device presence is unknown;
+ *Present* - the device slot has a device in it;
+ *Subsumed* - the device slot is configured to be part of another device slot. Not applicable for the fan or power supply bays.
valuemap:
name: 'Device presence'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].devicePresence.first()'
+ - $.devicePresence
-
type: STR_REPLACE
parameters:
@@ -5225,7 +5938,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -5250,13 +5963,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -5281,13 +5994,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].sparePartNumber.first()'
+ - $.sparePartNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -5306,20 +6019,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the power supply:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- Critical - Needs immediate attention.
- Disabled - The resource is currently not operational.
- OK - Indicates normal/informational behavior.
- Unknown - The health status is not yet known or cannot be determined.
- Warning - Needs attention soon.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.enclosures.members[?(@.name == "{#ENCLOSURE_NAME}")].powerSupplyBays[?(@.bayNumber == "{#BAY_NUMBER}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -5357,7 +6070,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",data]'
tags:
-
tag: bay-number
@@ -5374,7 +6087,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=0'
name: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has critical status'
priority: HIGH
- description: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is critical. Needs immediate attention.'
+ description: 'The status of the power supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -5384,7 +6097,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=4'
name: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Has warning status'
priority: WARNING
- description: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] status is warning. Needs attention soon.'
+ description: 'The status of the power supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -5394,13 +6107,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.power_supply["{#BAY_NUMBER}","{#ENCLOSURE_NAME}",status])=1'
name: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}]: Is disabled'
priority: INFO
- description: 'Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] currently not operational.'
+ description: 'The status of Power Supply [{#ENCLOSURE_NAME}:{#BAY_NUMBER}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.enclosures
+ key: hpe.synergy.get.enclosures
lld_macro_paths:
-
lld_macro: '{#BAY_NUMBER}'
@@ -5412,7 +6125,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.powerSupplyBays
+ - '$.members.[0].powerSupplyBays'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -5426,20 +6139,47 @@ zabbix_export:
description: 'A list of the racks.'
item_prototypes:
-
+ uuid: 8a68ba795abd445bb6832f8fb6fa5416
+ name: 'Rack [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.rack["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the rack [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.racks
+ tags:
+ -
+ tag: component
+ value: rack
+ -
+ tag: component
+ value: raw
+ -
+ tag: rack
+ value: '{#NAME}'
+ -
uuid: 921fa76608e4437d961af2409dddde0b
name: 'Rack [{#NAME}]: State'
type: DEPENDENT
key: 'hpe.synergy.rack["{#NAME}",state]'
delay: '0'
history: 7d
- description: 'The current state of the resource. Valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.'
+ description: 'The current state of the resource. the valid values include Adding, AddError, Configured, CredentialError, Refreshing, RefreshError, Removing, RemoveError, and Unmanaged.'
valuemap:
name: 'Rack state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.racks.members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -5493,7 +6233,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '9'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.rack["{#NAME}",data]'
tags:
-
tag: component
@@ -5507,7 +6247,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=1'
name: 'Rack [{#NAME}]: Add error'
priority: AVERAGE
- description: 'Rack [{#NAME}] add failed.'
+ description: 'Adding the rack [{#NAME}] failed.'
tags:
-
tag: scope
@@ -5520,7 +6260,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=3'
name: 'Rack [{#NAME}]: Has credential error'
priority: AVERAGE
- description: 'Rack [{#NAME}] has credential error.'
+ description: 'The rack [{#NAME}] has credential error.'
tags:
-
tag: scope
@@ -5530,7 +6270,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=5'
name: 'Rack [{#NAME}]: Has refresh error'
priority: AVERAGE
- description: 'Rack [{#NAME}] has refresh error.'
+ description: 'The rack [{#NAME}] has refresh error.'
tags:
-
tag: scope
@@ -5540,7 +6280,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",state])=7'
name: 'Rack [{#NAME}]: Has remove error'
priority: AVERAGE
- description: 'Rack [{#NAME}] has remove error.'
+ description: 'The rack [{#NAME}] has remove error.'
tags:
-
tag: scope
@@ -5553,20 +6293,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.racks.members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -5604,7 +6344,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.rack["{#NAME}",data]'
tags:
-
tag: component
@@ -5618,7 +6358,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=0'
name: 'Rack [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Rack [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The rack [{#NAME}] status is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -5628,7 +6368,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=4'
name: 'Rack [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Rack [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The rack [{#NAME}] status is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -5638,13 +6378,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.rack["{#NAME}",status])=1'
name: 'Rack [{#NAME}]: Is disabled'
priority: INFO
- description: 'Rack [{#NAME}] currently not operational.'
+ description: 'The rack [{#NAME}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.racks
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -5653,7 +6393,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - $.racks.members
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -5678,13 +6418,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorCoreCount.first()'
+ - $.processorCoreCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5710,13 +6450,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorCount.first()'
+ - $.processorCount
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5738,18 +6478,18 @@ zabbix_export:
delay: '0'
history: 7d
units: '!MHz'
- description: 'Speed of the CPUs.'
+ description: 'The speed of the CPUs.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorSpeedMhz.first()'
+ - $.processorSpeedMhz
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5772,18 +6512,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Type of CPU installed on this server hardware.'
+ description: 'The type of the CPU installed on this server hardware.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].processorType.first()'
+ - $.processorType
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5798,20 +6538,50 @@ zabbix_export:
tag: server
value: '{#SERVER_NAME}'
-
+ uuid: ee38861bdb044352a8937fe0d13d2e45
+ name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the server [{#SERVER_NAME}:{#LOCATION}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#LOCATION}")].first()'
+ master_item:
+ key: hpe.synergy.get.server_hardware
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: server
+ -
+ tag: location
+ value: '{#LOCATION}'
+ -
+ tag: server
+ value: '{#SERVER_NAME}'
+ -
uuid: 67d50f909325417b9c47241cda44aa6b
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Maintenance state'
type: DEPENDENT
key: 'hpe.synergy.server_hardware["{#LOCATION}",maintenance_state]'
delay: '0'
history: 7d
- description: 'Server Hardware maintenance flag - Disruptive maintenance operations like firmware update can cause many server hardware alerts to be generated in a short period of time. Ex: Network connectivity lost or Server reset detected. When this field is set, predefined alerts for this particular device are suppressed. This field is set only when firmware update is ongoing. The alerts are processed normally once firmware update operation completes. Possible values are Maintenance and Normal.'
+ description: 'The maintenance flag of the Server Hardware - disruptive maintenance operations, such as firmware update, can cause many server hardware alerts to be generated in a short period of time. Example: network connectivity is lost or the server reset is detected. When this field is set, predefined alerts for this particular device are suppressed. This field is set only when firmware update is ongoing. The alerts are processed normally once firmware update operation completes. Possible values are Maintenance and Normal.'
valuemap:
name: 'Maintenance state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].maintenanceState.first()'
+ - $.maintenanceState
error_handler: DISCARD_VALUE
-
type: STR_REPLACE
@@ -5831,7 +6601,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '2'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5851,19 +6621,19 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'This field is set to Firmware update when server is put to maintenance.'
+ description: 'This field is set to Firmware update when the server is put under maintenance.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].maintenanceStateReason.first()'
+ - $.maintenanceStateReason
error_handler: DISCARD_VALUE
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5882,12 +6652,12 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Amount of memory installed on this server hardware.'
+ description: 'The amount of memory installed on this server hardware.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].memoryMb.first()'
+ - $.memoryMb
-
type: MULTIPLIER
parameters:
@@ -5897,7 +6667,7 @@ zabbix_export:
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5919,18 +6689,18 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- The state of an ongoing VCM migration:
+ The state of an ongoing virtual connect manager (VCM) migration:
- Migrating - The enclosure is in the process of migrating from VCM.
- NotApplicable - The enclosure did not require or has already completed migration.
- Unknown - The migration state is unknown.
+ *Migrating* - the enclosure is in the process of migrating from VCM;
+ *NotApplicable* - the enclosure did not require or has already completed the migration;
+ *Unknown* - the migration state is unknown.
valuemap:
name: 'Migration state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].migrationState.first()'
+ - $.migrationState
error_handler: DISCARD_VALUE
-
type: STR_REPLACE
@@ -5955,7 +6725,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '2'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -5975,18 +6745,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'The full server hardware model string.'
+ description: 'The model string of the full server hardware.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].model.first()'
+ - $.model
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -6011,13 +6781,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].partNumber.first()'
+ - $.partNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -6035,14 +6805,14 @@ zabbix_export:
key: 'hpe.synergy.server_hardware["{#LOCATION}",power_state]'
delay: '0'
history: 7d
- description: 'Current power state of the server hardware. Values are Unknown, On, Off, PoweringOn, PoweringOff or Resetting.'
+ description: 'The current power state of the server hardware. The values are Unknown, On, Off, PoweringOn, PoweringOff or Resetting.'
valuemap:
name: 'Physical server power state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].powerState.first()'
+ - $.powerState
-
type: STR_REPLACE
parameters:
@@ -6081,7 +6851,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -6109,13 +6879,13 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].serialNumber.first()'
+ - $.serialNumber
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -6134,29 +6904,29 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- The current resource state of the server hardware. Allowable values are:
+ The current resource state of the server hardware. The allowable values are:
- Unknown - Not initialized,
- Adding - Server being added,
- NoProfileApplied - Server successfully added,
- Monitored - Server being monitored,
- Unmanaged - Discovered a supported server,
- Removing - Server being removed,
- RemoveFailed - Unsuccessful server removal,
- Removed - Server successfully removed,
- ApplyingProfile - Profile being applied to server,
- ProfileApplied - Profile successfully applied,
- RemovingProfile - Profile being removed,
- ProfileError - Unsuccessful profile apply or removal,
- Unsupported - Server model or version not currently supported by the appliance,
- UpdatingFirmware - Server firmware update in progress.
+ *Unknown* - not initialized;
+ *Adding* - a server is being added;
+ *NoProfileApplied* - a server successfully added;
+ *Monitored* - a server is being monitored;
+ *Unmanaged* - a discovered and supported server;
+ *Removing* - a server is being removed;
+ *RemoveFailed* - an unsuccessful server removal;
+ *Removed* - a server is successfully removed;
+ *ApplyingProfile* - a server is successfully removed;
+ *ProfileApplied* - a profile is successfully applied;
+ *RemovingProfile* - a profile is being removed;
+ *ProfileError* - an Unsuccessful profile is applied or removed;
+ *Unsupported* - a server model or version is not currently supported by the appliance;
+ *UpdatingFirmware* - a server firmware update is in progress.
valuemap:
name: 'Server hardware state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -6235,7 +7005,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '0'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -6252,7 +7022,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=11'
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Has profile error'
priority: AVERAGE
- description: 'Unsuccessful profile apply or removal.'
+ description: 'The unsuccessful profile application or removal.'
tags:
-
tag: scope
@@ -6262,7 +7032,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=0'
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Is not initialized'
priority: WARNING
- description: 'Server not initialized.'
+ description: 'The server is not initialized.'
tags:
-
tag: scope
@@ -6272,7 +7042,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",state])=12'
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Is unsupported'
priority: AVERAGE
- description: 'Server model or version not currently supported by the appliance.'
+ description: 'The server model or version is not currently supported by the appliance.'
tags:
-
tag: scope
@@ -6297,28 +7067,28 @@ zabbix_export:
trends: '0'
value_type: CHAR
description: |
- The reason for the current resource state of the server hardware. This only applies if the state is 'Unmanaged', otherwise it is set to 'NotApplicable'. Allowable values are:
+ The reason for the current resource state of the server hardware. This only applies if the state is Unmanaged, otherwise it is set to NotApplicable. The allowable values are:
- Unsupported - Server model or version not currently supported by the appliance,
- UpdatingFirmware - Server firmware update in progress,
- NotApplicable - When PhysicalServerState is anything besides 'Unmanaged',
- NotOwner - No claim on server,
- Inventory - Server added by PDU,
- Unconfigured - Discovery data incomplete or iLO configuration failure,
- UnsupportedFirmware - iLO firmware version below minimum support level,
- Interrupted - When PhysicalServerState is a result of an operation that was terminated before completing,
- CommunicationError - Appliance cannot communicate with iLO or OA.
+ *Unsupported* - a server model or version is not currently supported by the appliance;
+ *UpdatingFirmware* - a server firmware update is in progress;
+ *NotApplicable* - when PhysicalServerState is anything besides Unmanaged;
+ *NotOwner* - no claim on the server;
+ *Inventory* - a server is added by the PDU;
+ *Unconfigured* - the discovery data is incomplete or an iLO configuration has failed;
+ *UnsupportedFirmware* - an iLO firmware version is below the minimum support level;
+ *Interrupted* - when PhysicalServerState is a result of an operation that was terminated before completing;
+ *CommunicationError* - an appliance cannot communicate with an iLO or an OA.
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].stateReason.first()'
+ - $.stateReason
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -6337,20 +7107,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational or that a server profile has not been assigned.
- Warning - needs attention soon.
- Critical - needs attention soon.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members[?(@.name == "{#LOCATION}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -6388,7 +7158,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.server_hardware["{#LOCATION}",data]'
tags:
-
tag: component
@@ -6405,7 +7175,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=0'
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Has critical status'
priority: HIGH
- description: 'Server [{#SERVER_NAME}:{#LOCATION}] status is critical. Needs immediate attention.'
+ description: 'The status of the server [{#SERVER_NAME}:{#LOCATION}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -6415,7 +7185,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=4'
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Has warning status'
priority: WARNING
- description: 'Server [{#SERVER_NAME}:{#LOCATION}] status is warning. Needs attention soon.'
+ description: 'The status of the server [{#SERVER_NAME}:{#LOCATION}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -6425,7 +7195,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.server_hardware["{#LOCATION}",status])=1'
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Is disabled'
priority: INFO
- description: 'Server [{#SERVER_NAME}:{#LOCATION}] currently not operational.'
+ description: 'The server [{#SERVER_NAME}:{#LOCATION}] is currently not operational.'
tags:
-
tag: scope
@@ -6437,7 +7207,7 @@ zabbix_export:
name: 'Server [{#SERVER_NAME}:{#LOCATION}]: Is in maintenance mode'
opdata: 'Reason: {ITEM.LASTVALUE2}'
priority: INFO
- description: 'Disruptive maintenance operations like firmware update can cause many server hardware alerts to be generated in a short period of time. Ex: Network connectivity lost or Server reset detected.'
+ description: 'The disruptive maintenance operations like firmware update can cause many server hardware alerts to be generated in a short period of time. Example: Network connectivity is lost or the server reset is detected.'
tags:
-
tag: scope
@@ -6454,7 +7224,7 @@ zabbix_export:
tag: scope
value: notice
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.server_hardware
lld_macro_paths:
-
lld_macro: '{#LOCATION}'
@@ -6466,7 +7236,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["server-hardware"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -6487,14 +7257,14 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Capacity allocated from the storage pool in bytes.'
+ description: 'The capacity allocated from the storage pool in bytes.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-pools"].members[?(@.name == "{#NAME}")].allocatedCapacity.first()'
+ - $.allocatedCapacity
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -6510,14 +7280,14 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Free capacity available from the storage pool in bytes.'
+ description: 'The free capacity available from the storage pool in bytes.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-pools"].members[?(@.name == "{#NAME}")].freeCapacity.first()'
+ - $.freeCapacity
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -6533,14 +7303,14 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'The pool capacity allocated to snapshots in bytes.'
+ description: 'The pool capacity allocated to the snapshots in bytes.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-pools"].members[?(@.name == "{#NAME}")].deviceSpecificAttributes.allocatedCapacity.snapshotAllocatedCapacity.first()'
+ - $.deviceSpecificAttributes.allocatedCapacity.snapshotAllocatedCapacity
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -6556,17 +7326,44 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total capacity of the storage pool in bytes.'
+ description: 'The total capacity of the storage pool in bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.totalCapacity
+ master_item:
+ key: 'hpe.synergy.storage.pools["{#NAME}",data]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: pool
+ value: '{#NAME}'
+ -
+ uuid: ee254d7b254641c7a5f762cbdd2dabf2
+ name: 'Storage pool [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.storage.pools["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the storage pool [{#NAME}].'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-pools"].members[?(@.name == "{#NAME}")].totalCapacity.first()'
+ - '$.members[?(@.name == "{#NAME}")].first()'
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.storage_pools
tags:
-
tag: component
+ value: raw
+ -
+ tag: component
value: storage
-
tag: pool
@@ -6579,29 +7376,29 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Current state of the resource:
+ The current state of the resource:
- AddFailed - An attempt to add the resource failed
- Adding - The resource is in the process of being added
- Configured - The resource is configured
- Connected - The appliance has connected to the resource
- Copying - The resource is in the process of being copied
- CreateFailed - An attempt to create the resource failed
- Creating - The resource is in the process of being created
- DeleteFailed - An attempt to delete the resource failed
- Deleting - The resource is in the process of being deleted
- Discovered - The resource has been discovered by the appliance, but it is not managed by the appliance
- Managed - The resource is managed by the appliance
- Normal - The resource is in a normal state
- UpdateFailed - An attempt to update the resource failed
- Updating - The resource is in the process of being updated
+ *AddFailed* - an attempt to add the resource failed;
+ *Adding* - the resource is in the process of being added;
+ *Configured* - the resource is configured;
+ *Connected* - the appliance has connected to the resource;
+ *Copying* - the resource is in the process of being copied;
+ *CreateFailed* - an attempt to create the resource failed;
+ *Creating* - the resource is in the process of being created;
+ *DeleteFailed* - an attempt to delete the resource failed;
+ *Deleting* - the resource is in the process of being deleted;
+ *Discovered* - the resource has been discovered by the appliance, but it is not managed by the appliance;
+ *Managed* - the resource is managed by the appliance;
+ *Normal* - the resource is in a normal state;
+ *UpdateFailed* - an attempt to update the resource failed;
+ *Updating* - the resource is in the process of being updated.
valuemap:
name: 'Storage volume state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-pools"].members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -6680,7 +7477,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '14'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -6694,7 +7491,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=0'
name: 'Storage pool [{#NAME}]: Add error'
priority: AVERAGE
- description: 'Storage pool [{#NAME}] add failed.'
+ description: 'Adding of the storage pool [{#NAME}] failed.'
tags:
-
tag: scope
@@ -6707,7 +7504,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=5'
name: 'Storage pool [{#NAME}]: Create failed'
priority: AVERAGE
- description: 'Storage pool [{#NAME}] create failed.'
+ description: 'Creating of the storage pool [{#NAME}] failed.'
tags:
-
tag: scope
@@ -6720,7 +7517,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=7'
name: 'Storage pool [{#NAME}]: Delete failed'
priority: AVERAGE
- description: 'Storage pool [{#NAME}] delete failed.'
+ description: 'Deletion of the storage pool [{#NAME}] failed.'
tags:
-
tag: scope
@@ -6730,7 +7527,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",state])=12'
name: 'Storage pool [{#NAME}]: Update failed'
priority: AVERAGE
- description: 'Storage pool [{#NAME}] update failed.'
+ description: 'Updating of the storage pool [{#NAME}] failed.'
tags:
-
tag: scope
@@ -6743,20 +7540,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-pools"].members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -6794,7 +7591,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.pools["{#NAME}",data]'
tags:
-
tag: component
@@ -6808,7 +7605,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=0'
name: 'Storage pool [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Storage pool [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The status of the storage pool [{#NAME}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -6821,7 +7618,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=4'
name: 'Storage pool [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Storage pool [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The status of the storage pool [{#NAME}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -6834,7 +7631,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.pools["{#NAME}",status])=1'
name: 'Storage pool [{#NAME}]: Is disabled'
priority: INFO
- description: 'Storage pool [{#NAME}] currently not operational.'
+ description: 'The storage pool [{#NAME}] is currently not operational.'
tags:
-
tag: scope
@@ -6862,7 +7659,7 @@ zabbix_export:
host: 'HPE Synergy by HTTP'
key: 'hpe.synergy.storage.pools.capacity["{#NAME}",snapshot]'
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.storage_pools
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -6871,7 +7668,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["storage-pools"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -6892,14 +7689,14 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Capacity allocated in bytes.'
+ description: 'The capacity allocated in bytes.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-systems"].members[?(@.name == "{#NAME}")].allocatedCapacity.first()'
+ - $.allocatedCapacity
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.system["{#NAME}",data]'
tags:
-
tag: component
@@ -6915,14 +7712,14 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Free capacity of the storage system in bytes.'
+ description: 'The free capacity of the storage system in bytes.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-systems"].members[?(@.name == "{#NAME}")].freeCapacity.first()'
+ - $.freeCapacity
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.system["{#NAME}",data]'
tags:
-
tag: component
@@ -6938,17 +7735,44 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total capacity of the storage system in bytes.'
+ description: 'The total capacity of the storage system in bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.totalCapacity
+ master_item:
+ key: 'hpe.synergy.storage.system["{#NAME}",data]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: system
+ value: '{#NAME}'
+ -
+ uuid: 2f9bf8f7699945488201922c76f51675
+ name: 'Storage system [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.storage.system["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the storage system [{#NAME}].'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-systems"].members[?(@.name == "{#NAME}")].totalCapacity.first()'
+ - '$.members[?(@.name == "{#NAME}")].first()'
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.storage_systems
tags:
-
tag: component
+ value: raw
+ -
+ tag: component
value: storage
-
tag: system
@@ -6961,29 +7785,29 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Current state of the resource:
+ The current state of the resource:
- AddFailed - An attempt to add the resource failed
- Adding - The resource is in the process of being added
- Configured - The resource is configured
- Connected - The appliance has connected to the resource
- Copying - The resource is in the process of being copied
- CreateFailed - An attempt to create the resource failed
- Creating - The resource is in the process of being created
- DeleteFailed - An attempt to delete the resource failed
- Deleting - The resource is in the process of being deleted
- Discovered - The resource has been discovered by the appliance, but it is not managed by the appliance
- Managed - The resource is managed by the appliance
- Normal - The resource is in a normal state
- UpdateFailed - An attempt to update the resource failed
- Updating - The resource is in the process of being updated
+ *AddFailed* - an attempt to add the resource failed;
+ *Adding* - the resource is in the process of being added;
+ *Configured* - the resource is configured;
+ *Connected* - the appliance has connected to the resource;
+ *Copying* - the resource is in the process of being copied;
+ *CreateFailed* - an attempt to create the resource failed;
+ *Creating* - the resource is in the process of being created;
+ *DeleteFailed* - an attempt to delete the resource failed;
+ *Deleting* - the resource is in the process of being deleted;
+ *Discovered* - the resource has been discovered by the appliance, but it is not managed by the appliance;
+ *Managed* - the resource is managed by the appliance;
+ *Normal* - the resource is in a normal state;
+ *UpdateFailed* - an attempt to update the resource failed;
+ *Updating* - the resource is in the process of being updated.
valuemap:
name: 'Storage volume state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-systems"].members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -7062,7 +7886,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '14'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.system["{#NAME}",data]'
tags:
-
tag: component
@@ -7076,7 +7900,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=0'
name: 'Storage system [{#NAME}]: Add error'
priority: AVERAGE
- description: 'Storage system [{#NAME}] add failed.'
+ description: 'Adding the storage system [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7089,7 +7913,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=5'
name: 'Storage system [{#NAME}]: Create failed'
priority: AVERAGE
- description: 'Storage system [{#NAME}] create failed.'
+ description: 'Creating of the storage system [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7102,7 +7926,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=7'
name: 'Storage system [{#NAME}]: Delete failed'
priority: AVERAGE
- description: 'Storage system [{#NAME}] delete failed.'
+ description: 'Deletion of the storage system [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7112,7 +7936,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",state])=12'
name: 'Storage system [{#NAME}]: Update failed'
priority: AVERAGE
- description: 'Storage system [{#NAME}] update failed.'
+ description: 'Updating of the storage system [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7125,20 +7949,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-systems"].members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -7176,7 +8000,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.system["{#NAME}",data]'
tags:
-
tag: component
@@ -7190,7 +8014,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=0'
name: 'Storage system [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Storage system [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The status of the storage system [{#NAME}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -7203,7 +8027,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=4'
name: 'Storage system [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Storage system [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The status of the storage system [{#NAME}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -7216,7 +8040,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.system["{#NAME}",status])=1'
name: 'Storage system [{#NAME}]: Is disabled'
priority: INFO
- description: 'Storage system [{#NAME}] currently not operational.'
+ description: 'The storage system [{#NAME}] is currently not operational.'
tags:
-
tag: scope
@@ -7244,7 +8068,7 @@ zabbix_export:
host: 'HPE Synergy by HTTP'
key: 'hpe.synergy.storage.system.capacity["{#NAME}",total]'
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.storage_systems
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -7253,7 +8077,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["storage-systems"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -7274,14 +8098,14 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Capacity allocated in bytes.'
+ description: 'The capacity allocated in bytes.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-volumes"].members[?(@.name == "{#NAME}")].allocatedCapacity.first()'
+ - $.allocatedCapacity
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -7297,17 +8121,44 @@ zabbix_export:
delay: '0'
history: 7d
units: B
- description: 'Total provisioned capacity of volume in bytes.'
+ description: 'The total provisioned capacity of the volume in bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.provisionedCapacity
+ master_item:
+ key: 'hpe.synergy.storage.volumes["{#NAME}",data]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: volume
+ value: '{#NAME}'
+ -
+ uuid: e02b8e2f502b4bfb8fa9fd17d2d4e416
+ name: 'Storage volume [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.storage.volumes["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the storage volume [{#NAME}].'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-volumes"].members[?(@.name == "{#NAME}")].provisionedCapacity.first()'
+ - '$.members[?(@.name == "{#NAME}")].first()'
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.storage_volumes
tags:
-
tag: component
+ value: raw
+ -
+ tag: component
value: storage
-
tag: volume
@@ -7320,29 +8171,29 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Current state of the resource:
+ The current state of the resource:
- AddFailed - An attempt to add the resource failed
- Adding - The resource is in the process of being added
- Configured - The resource is configured
- Connected - The appliance has connected to the resource
- Copying - The resource is in the process of being copied
- CreateFailed - An attempt to create the resource failed
- Creating - The resource is in the process of being created
- DeleteFailed - An attempt to delete the resource failed
- Deleting - The resource is in the process of being deleted
- Discovered - The resource has been discovered by the appliance, but it is not managed by the appliance
- Managed - The resource is managed by the appliance
- Normal - The resource is in a normal state
- UpdateFailed - An attempt to update the resource failed
- Updating - The resource is in the process of being updated
+ *AddFailed* - an attempt to add the resource failed;
+ *Adding* - the resource is in the process of being added;
+ *Configured* - the resource is configured;
+ *Connected* - the appliance has connected to the resource;
+ *Copying* - the resource is in the process of being copied;
+ *CreateFailed* - an attempt to create the resource failed;
+ *Creating* - the resource is in the process of being created;
+ *DeleteFailed* - an attempt to delete the resource failed;
+ *Deleting* - the resource is in the process of being deleted;
+ *Discovered* - the resource has been discovered by the appliance, but it is not managed by the appliance;
+ *Managed* - the resource is managed by the appliance;
+ *Normal* - the resource is in a normal state;
+ *UpdateFailed* - an attempt to update the resource failed;
+ *Updating* - the resource is in the process of being updated.
valuemap:
name: 'Storage volume state'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-volumes"].members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: STR_REPLACE
parameters:
@@ -7421,7 +8272,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '14'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -7435,7 +8286,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=0'
name: 'Storage volume [{#NAME}]: Add error'
priority: AVERAGE
- description: 'Storage volume [{#NAME}] add failed.'
+ description: 'Adding the storage volume [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7448,7 +8299,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=5'
name: 'Storage volume [{#NAME}]: Create failed'
priority: AVERAGE
- description: 'Storage volume [{#NAME}] create failed.'
+ description: 'Creating of the storage volume [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7461,7 +8312,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=7'
name: 'Storage volume [{#NAME}]: Delete failed'
priority: AVERAGE
- description: 'Storage volume [{#NAME}] delete failed.'
+ description: 'Deletion of the storage volume [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7471,7 +8322,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",state])=12'
name: 'Storage volume [{#NAME}]: Update failed'
priority: AVERAGE
- description: 'Storage volume [{#NAME}] update failed.'
+ description: 'Updating of the storage volume [{#NAME}] failed.'
tags:
-
tag: scope
@@ -7484,20 +8335,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["storage-volumes"].members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -7535,7 +8386,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.storage.volumes["{#NAME}",data]'
tags:
-
tag: component
@@ -7549,7 +8400,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=0'
name: 'Storage volume [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Storage volume [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The status of the storage volume [{#NAME}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -7562,7 +8413,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=4'
name: 'Storage volume [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Storage volume [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The status of the storage volume [{#NAME}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -7575,7 +8426,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.storage.volumes["{#NAME}",status])=1'
name: 'Storage volume [{#NAME}]: Is disabled'
priority: INFO
- description: 'Storage volume [{#NAME}] currently not operational.'
+ description: 'The storage volume [{#NAME}] is currently not operational.'
tags:
-
tag: scope
@@ -7600,7 +8451,7 @@ zabbix_export:
host: 'HPE Synergy by HTTP'
key: 'hpe.synergy.storage.volumes.capacity["{#NAME}",provisioned]'
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.storage_volumes
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -7609,7 +8460,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["storage-volumes"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -7623,6 +8474,36 @@ zabbix_export:
description: 'A list of the uplink sets.'
item_prototypes:
-
+ uuid: 1469992463264badb3a80839414e9f2e
+ name: 'Uplink set [{#NAME}]: Get data'
+ type: DEPENDENT
+ key: 'hpe.synergy.uplink_set["{#NAME}",data]'
+ delay: '0'
+ history: 0d
+ trends: '0'
+ value_type: TEXT
+ description: 'Data of the uplink set [{#NAME}].'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.members[?(@.name == "{#NAME}")].first()'
+ master_item:
+ key: hpe.synergy.get.uplink_sets
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: component
+ value: raw
+ -
+ tag: component
+ value: uplink-set
+ -
+ tag: uplink-set
+ value: '{#NAME}'
+ -
uuid: be09b2f2848d4143a396a9b0cb945ecc
name: 'Uplink set [{#NAME}]: State'
type: DEPENDENT
@@ -7631,18 +8512,18 @@ zabbix_export:
history: 7d
trends: '0'
value_type: CHAR
- description: 'Current state of the resource.'
+ description: 'The current state of the resource.'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["uplink-sets"].members[?(@.name == "{#NAME}")].state.first()'
+ - $.state
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.uplink_set["{#NAME}",data]'
tags:
-
tag: component
@@ -7661,20 +8542,20 @@ zabbix_export:
delay: '0'
history: 7d
description: |
- Overall health status of the resource. The following are the valid values for the status of the resource:
+ The overall health status of the resource. The following are the valid values for the status of the resource:
- OK - indicates normal/informational behavior.
- Disabled - indicates that a resource is not operational.
- Warning - needs attention soon.
- Critical - needs immediate attention.
- Unknown - should be avoided, but there may be rare occasions where status is Unknown.
+ *OK* - indicates normal/informational behavior;
+ *Disabled* - indicates that the resource is not operational;
+ *Warning* - requires attention soon;
+ *Critical* - requires immediate attention;
+ *Unknown* - should be avoided, but there may be rare occasions when the status is unknown.
valuemap:
name: 'Health status'
preprocessing:
-
type: JSONPATH
parameters:
- - '$.["uplink-sets"].members[?(@.name == "{#NAME}")].status.first()'
+ - $.status
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
@@ -7712,7 +8593,7 @@ zabbix_export:
error_handler: CUSTOM_VALUE
error_handler_params: '3'
master_item:
- key: hpe.synergy.data.get
+ key: 'hpe.synergy.uplink_set["{#NAME}",data]'
tags:
-
tag: component
@@ -7729,7 +8610,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=0'
name: 'Uplink set [{#NAME}]: Has critical status'
priority: HIGH
- description: 'Uplink set [{#NAME}] status is critical. Needs immediate attention.'
+ description: 'The status of the uplink set [{#NAME}] is critical. Needs immediate attention.'
tags:
-
tag: scope
@@ -7739,7 +8620,7 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=4'
name: 'Uplink set [{#NAME}]: Has warning status'
priority: WARNING
- description: 'Uplink set [{#NAME}] status is warning. Needs attention soon.'
+ description: 'The status of the uplink set [{#NAME}] is warning. Needs attention soon.'
tags:
-
tag: scope
@@ -7749,13 +8630,13 @@ zabbix_export:
expression: 'last(/HPE Synergy by HTTP/hpe.synergy.uplink_set["{#NAME}",status])=1'
name: 'Uplink set [{#NAME}]: Is disabled'
priority: INFO
- description: 'Uplink set [{#NAME}] currently not operational.'
+ description: 'The uplink set [{#NAME}] is currently not operational.'
tags:
-
tag: scope
value: availability
master_item:
- key: hpe.synergy.data.get
+ key: hpe.synergy.get.uplink_sets
lld_macro_paths:
-
lld_macro: '{#NAME}'
@@ -7764,7 +8645,7 @@ zabbix_export:
-
type: JSONPATH
parameters:
- - '$.["uplink-sets"].members'
+ - $.members
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
diff --git a/ui/app/controllers/CControllerAuditLogList.php b/ui/app/controllers/CControllerAuditLogList.php
index 80aa2f4b196..e407728e0b2 100644
--- a/ui/app/controllers/CControllerAuditLogList.php
+++ b/ui/app/controllers/CControllerAuditLogList.php
@@ -37,30 +37,6 @@ class CControllerAuditLogList extends CController {
$ret = $this->validateInput($fields);
- if ($ret) {
- $fields = [];
-
- if ($this->getInput('filter_resourceid', '') !== '') {
- $fields['filter_resourceid'] = 'id';
- }
-
- if ($this->getInput('filter_recordsetid', '') !== '') {
- $fields['filter_recordsetid'] = 'cuid';
- }
-
- if ($fields) {
- $validator = new CNewValidator($this->getInputAll(), $fields);
-
- foreach ($validator->getAllErrors() as $error) {
- info($error);
- }
-
- if ($validator->isErrorFatal() || $validator->isError()) {
- $ret = false;
- }
- }
- }
-
if (!$ret) {
$this->setResponse(new CControllerResponseFatal());
}
diff --git a/ui/app/controllers/CControllerCharts.php b/ui/app/controllers/CControllerCharts.php
index 1a6b1c71a1e..53c0d82769b 100644
--- a/ui/app/controllers/CControllerCharts.php
+++ b/ui/app/controllers/CControllerCharts.php
@@ -217,16 +217,15 @@ abstract class CControllerCharts extends CController {
}
/**
- * Find what subfilters are available based on items selected using the main filter.
+ * Find what subfilters are available based on hosts selected using the main filter.
*
* @param array $graphs [IN/OUT] Result of host/simple graphs matching primary filter.
* @param string $graphs[]['graphid'] [IN] Host graph graphid.
- * @param string $graphs[]['itemid'] [IN] Simple graph itemid.
* @param array $graphs[]['tags'] [IN] Item tags array.
* @param string $graphs[]['tags'][]['tag'] [IN] Tag name.
* @param string $graphs[]['tags'][]['value'] [IN] Tag value.
- * @param array $graphs[]['matching_subfilters'] [OUT] Flag for each of subfilter group showing either item fits
- * fits its subfilter requirements.
+ * @param array $graphs[]['matching_subfilters'] [OUT] Flag for each of subfilter group showing either graph fits
+ * its subfilter requirements.
* @param bool $graphs[]['has_data'] [OUT] Flag either item has data.
* @param array $subfilters Selected subfilters.
*
@@ -243,7 +242,21 @@ abstract class CControllerCharts extends CController {
*/
foreach ($graphs as $graph) {
// Calculate the counters of tag existence subfilter options.
+ $graph_tagnames = [];
+ $selected_tagnames =
+ array_intersect(array_keys($subfilters['tagnames']), array_column($graph['tags'], 'tag'));
+
foreach ($graph['tags'] as $tag) {
+ if (array_key_exists($tag['tag'], $graph_tagnames)) {
+ continue;
+ }
+
+ $graph_tagnames[$tag['tag']] = [];
+
+ if ($selected_tagnames && !in_array($tag['tag'], $selected_tagnames)) {
+ continue;
+ }
+
$graph_matches = true;
foreach ($graph['matching_subfilters'] as $filter_name => $match) {
if ($filter_name === 'tagnames') {
@@ -261,7 +274,25 @@ abstract class CControllerCharts extends CController {
}
// Calculate the same for the tag/value pair subfilter options.
+ $selected_tagvalues = [];
+
+ if ($subfilters['tags']) {
+ foreach ($graph['tags'] as $tag) {
+ if (array_key_exists($tag['tag'], $subfilters['tags'])
+ && array_key_exists($tag['value'], $subfilters['tags'][$tag['tag']])) {
+ $selected_tagvalues[$tag['tag']][$tag['value']] = [];
+ }
+ }
+ }
+
foreach ($graph['tags'] as $tag) {
+ if ($selected_tagvalues) {
+ if (!(array_key_exists($tag['tag'], $selected_tagvalues)
+ && array_key_exists($tag['value'], $selected_tagvalues[$tag['tag']]))) {
+ continue;
+ }
+ }
+
$graph_matches = true;
foreach ($graph['matching_subfilters'] as $filter_name => $match) {
if ($filter_name === 'tags') {
diff --git a/ui/app/controllers/CControllerHost.php b/ui/app/controllers/CControllerHost.php
index 575f5253624..20f1e3b654f 100644
--- a/ui/app/controllers/CControllerHost.php
+++ b/ui/app/controllers/CControllerHost.php
@@ -301,17 +301,13 @@ abstract class CControllerHost extends CController {
}
/**
- * Clean passed filter fields in input from default values required for HTML presentation. Convert field
+ * Clean and convert passed filter input fields from default values required for HTML presentation.
*
* @param array $input Filter fields values.
*
* @return array
*/
protected function cleanInput(array $input): array {
- if (array_key_exists('filter_reset', $input) && $input['filter_reset']) {
- return array_intersect_key(['filter_name' => ''], $input);
- }
-
if (array_key_exists('tags', $input) && $input['tags']) {
$input['tags'] = array_filter($input['tags'], function($tag) {
return !($tag['tag'] === '' && $tag['value'] === '');
diff --git a/ui/app/controllers/CControllerHostView.php b/ui/app/controllers/CControllerHostView.php
index bc497170dc9..a911f05bdc6 100644
--- a/ui/app/controllers/CControllerHostView.php
+++ b/ui/app/controllers/CControllerHostView.php
@@ -86,9 +86,14 @@ class CControllerHostView extends CControllerHost {
protected function doAction(): void {
$filter_tabs = [];
- $profile = (new CTabFilterProfile(static::FILTER_IDX, static::FILTER_FIELDS_DEFAULT))
- ->read()
- ->setInput($this->cleanInput($this->getInputAll()));
+ $profile = (new CTabFilterProfile(static::FILTER_IDX, static::FILTER_FIELDS_DEFAULT))->read();
+
+ if ($this->hasInput('filter_reset')) {
+ $profile->reset();
+ }
+ else {
+ $profile->setInput($this->cleanInput($this->getInputAll()));
+ }
foreach ($profile->getTabsWithDefaults() as $index => $filter_tab) {
if ($index == $profile->selected) {
diff --git a/ui/app/controllers/CControllerHousekeepingEdit.php b/ui/app/controllers/CControllerHousekeepingEdit.php
index ebbb674b380..8cea8050d71 100644
--- a/ui/app/controllers/CControllerHousekeepingEdit.php
+++ b/ui/app/controllers/CControllerHousekeepingEdit.php
@@ -114,19 +114,22 @@ class CControllerHousekeepingEdit extends CController {
];
if ($data['db_extension'] === ZBX_DB_EXTENSION_TIMESCALEDB) {
- $dbversion_status = CSettingsHelper::getGlobal(CSettingsHelper::DBVERSION_STATUS);
+ $dbversion_status = CSettingsHelper::getDbVersionStatus();
- if ($dbversion_status !== '') {
- foreach (json_decode($dbversion_status, true) as $dbversion) {
- if ($dbversion['database'] === ZBX_DB_EXTENSION_TIMESCALEDB
- && array_key_exists('compression_availability', $dbversion)) {
- $data['timescaledb_min_version'] = $dbversion['min_version'];
- $data['timescaledb_max_version'] = $dbversion['max_version'];
- $data['timescaledb_min_supported_version'] = $dbversion['min_supported_version'];
- $data['extension_err_code'] = $dbversion['extension_err_code'];
- $data['compression_availability'] = $dbversion['compression_availability'];
- break;
+ foreach ($dbversion_status as $dbversion) {
+ if ($dbversion['database'] === ZBX_DB_EXTENSION_TIMESCALEDB) {
+ $data['timescaledb_min_version'] = $dbversion['min_version'];
+ $data['timescaledb_max_version'] = $dbversion['max_version'];
+ $data['timescaledb_min_supported_version'] = $dbversion['min_supported_version'];
+ $data['extension_err_code'] = $dbversion['extension_err_code'];
+ $data['compression_availability'] = array_key_exists('compression_availability', $dbversion)
+ && $dbversion['compression_availability'];
+
+ if ($data['compression_availability']) {
+ $data += CHousekeepingHelper::getWarnings($dbversion_status);
}
+
+ break;
}
}
}
diff --git a/ui/app/controllers/CControllerHousekeepingUpdate.php b/ui/app/controllers/CControllerHousekeepingUpdate.php
index 4f12cecaf93..d572dbbfca8 100644
--- a/ui/app/controllers/CControllerHousekeepingUpdate.php
+++ b/ui/app/controllers/CControllerHousekeepingUpdate.php
@@ -114,13 +114,12 @@ class CControllerHousekeepingUpdate extends CController {
}
if (CHousekeepingHelper::get(CHousekeepingHelper::DB_EXTENSION) === ZBX_DB_EXTENSION_TIMESCALEDB) {
- $dbversion_status = CSettingsHelper::getGlobal(CSettingsHelper::DBVERSION_STATUS);
+ $dbversion_status = CSettingsHelper::getDbVersionStatus();
- if ($dbversion_status !== '') {
- foreach (json_decode($dbversion_status, true) as $dbversion) {
- if ($dbversion['database'] === ZBX_DB_EXTENSION_TIMESCALEDB
- && array_key_exists('compression_availability', $dbversion)
- && $dbversion['compression_availability']) {
+ foreach ($dbversion_status as $dbversion) {
+ if ($dbversion['database'] === ZBX_DB_EXTENSION_TIMESCALEDB) {
+ if (array_key_exists('compression_availability', $dbversion)
+ && (bool) $dbversion['compression_availability']) {
$hk[CHousekeepingHelper::COMPRESSION_STATUS] = $this->getInput('compression_status', 0);
if ($hk[CHousekeepingHelper::COMPRESSION_STATUS] == 1) {
@@ -128,9 +127,9 @@ class CControllerHousekeepingUpdate extends CController {
DB::getDefault('config', 'compress_older')
);
}
-
- break;
}
+
+ break;
}
}
}
diff --git a/ui/app/controllers/CControllerLatest.php b/ui/app/controllers/CControllerLatest.php
index 454295a10e8..c625bd12101 100644
--- a/ui/app/controllers/CControllerLatest.php
+++ b/ui/app/controllers/CControllerLatest.php
@@ -236,10 +236,6 @@ abstract class CControllerLatest extends CController {
* @return array
*/
protected function cleanInput(array $input): array {
- if (array_key_exists('filter_reset', $input) && $input['filter_reset']) {
- return array_intersect_key(['filter_name' => ''], $input);
- }
-
if (array_key_exists('tags', $input) && $input['tags']) {
$input['tags'] = array_filter($input['tags'], function ($tag) {
return !($tag['tag'] === '' && $tag['value'] === '');
diff --git a/ui/app/controllers/CControllerLatestView.php b/ui/app/controllers/CControllerLatestView.php
index 98e879bfc42..d31f904b9a4 100644
--- a/ui/app/controllers/CControllerLatestView.php
+++ b/ui/app/controllers/CControllerLatestView.php
@@ -118,11 +118,16 @@ class CControllerLatestView extends CControllerLatest {
}
protected function doAction(): void {
- $profile = (new CTabFilterProfile(static::FILTER_IDX, static::FILTER_FIELDS_DEFAULT))
- ->read()
- ->setInput($this->cleanInput($this->getInputAll()));
-
$filter_tabs = [];
+ $profile = (new CTabFilterProfile(static::FILTER_IDX, static::FILTER_FIELDS_DEFAULT))->read();
+
+ if ($this->hasInput('filter_reset')) {
+ $profile->reset();
+ }
+ else {
+ $profile->setInput($this->cleanInput($this->getInputAll()));
+ }
+
foreach ($profile->getTabsWithDefaults() as $index => $filter_tab) {
if ($index == $profile->selected) {
// Initialize multiselect data for filter_scr to allow tabfilter correctly handle unsaved state.
diff --git a/ui/app/controllers/CControllerPopupMedia.php b/ui/app/controllers/CControllerPopupMedia.php
index 42053485fcd..a05b076fc70 100644
--- a/ui/app/controllers/CControllerPopupMedia.php
+++ b/ui/app/controllers/CControllerPopupMedia.php
@@ -32,7 +32,7 @@ class CControllerPopupMedia extends CController {
protected function checkInput() {
$fields = [
- 'dstfrm' => 'string|fatal',
+ 'dstfrm' => 'required|string',
'media' => 'int32',
'mediatypeid' => 'db media_type.mediatypeid',
'sendto' => 'string',
diff --git a/ui/app/controllers/CControllerPopupMediatypeMessage.php b/ui/app/controllers/CControllerPopupMediatypeMessage.php
index 2cc8a50114f..b0007ea22dd 100644
--- a/ui/app/controllers/CControllerPopupMediatypeMessage.php
+++ b/ui/app/controllers/CControllerPopupMediatypeMessage.php
@@ -37,8 +37,8 @@ class CControllerPopupMediatypeMessage extends CController {
protected function checkInput() {
$fields = [
- 'type' => 'in '.implode(',', array_keys(media_type2str())),
- 'content_type' => 'in '.SMTP_MESSAGE_FORMAT_PLAIN_TEXT.','.SMTP_MESSAGE_FORMAT_HTML,
+ 'type' => 'required|in '.implode(',', array_keys(media_type2str())),
+ 'content_type' => 'required|in '.SMTP_MESSAGE_FORMAT_PLAIN_TEXT.','.SMTP_MESSAGE_FORMAT_HTML,
'message_type' => 'in -1,'.implode(',', $this->message_types),
'old_message_type' => 'in -1,'.implode(',', $this->message_types),
'message_types' => 'array',
diff --git a/ui/app/controllers/CControllerProblem.php b/ui/app/controllers/CControllerProblem.php
index 2f80aad8371..642fa9d21bb 100644
--- a/ui/app/controllers/CControllerProblem.php
+++ b/ui/app/controllers/CControllerProblem.php
@@ -20,7 +20,7 @@
/**
- * Base controller for the "Monitoring->Problems" page.
+ * Base controller for the "Monitoring->Problems" page and the "Problems" asynchronous requests.
*/
abstract class CControllerProblem extends CController {
@@ -77,18 +77,6 @@ abstract class CControllerProblem extends CController {
}
/**
- * Get resulting rows for specified filter.
- *
- * @param array $filter Filter fields values.
- *
- * @return array
- */
- protected function getData(array $filter): array {
- // getData is handled by jsrpc.php 'screen.get' action.
- return [];
- }
-
- /**
* Get additional data required for render filter as HTML.
*
* @param array $filter Filter fields values.
@@ -130,6 +118,7 @@ abstract class CControllerProblem extends CController {
$trigger['prefix'] = $trigger['hosts'][0]['name'].NAME_DELIMITER;
unset($trigger['hosts']);
}
+ unset($trigger);
$data['triggers'] = $triggers;
}
@@ -146,17 +135,13 @@ abstract class CControllerProblem extends CController {
}
/**
- * Clean passed filter fields in input from default values required for HTML presentation. Convert field
+ * Clean and convert passed filter input fields from default values required for HTML presentation.
*
* @param array $input Filter fields values.
*
* @return array
*/
protected function cleanInput(array $input): array {
- if (array_key_exists('filter_reset', $input) && $input['filter_reset']) {
- return array_intersect_key(['filter_name' => ''], $input);
- }
-
if (array_key_exists('tags', $input) && $input['tags']) {
$input['tags'] = array_filter($input['tags'], function($tag) {
return !($tag['tag'] === '' && $tag['value'] === '');
@@ -173,4 +158,51 @@ abstract class CControllerProblem extends CController {
return $input;
}
+
+ /**
+ * Validate input of filter inventory fields.
+ *
+ * @return bool
+ */
+ protected function validateInventory(): bool {
+ if (!$this->hasInput('inventory')) {
+ return true;
+ }
+
+ $ret = true;
+ foreach ($this->getInput('inventory') as $filter_inventory) {
+ if (count($filter_inventory) != 2
+ || !array_key_exists('field', $filter_inventory) || !is_string($filter_inventory['field'])
+ || !array_key_exists('value', $filter_inventory) || !is_string($filter_inventory['value'])) {
+ $ret = false;
+ break;
+ }
+ }
+
+ return $ret;
+ }
+
+ /**
+ * Validate values of filter tags input fields.
+ *
+ * @return bool
+ */
+ protected function validateTags(): bool {
+ if (!$this->hasInput('tags')) {
+ return true;
+ }
+
+ $ret = true;
+ foreach ($this->getInput('tags') as $filter_tag) {
+ if (count($filter_tag) != 3
+ || !array_key_exists('tag', $filter_tag) || !is_string($filter_tag['tag'])
+ || !array_key_exists('value', $filter_tag) || !is_string($filter_tag['value'])
+ || !array_key_exists('operator', $filter_tag) || !is_string($filter_tag['operator'])) {
+ $ret = false;
+ break;
+ }
+ }
+
+ return $ret;
+ }
}
diff --git a/ui/app/controllers/CControllerProblemView.php b/ui/app/controllers/CControllerProblemView.php
index e14a3bfc5a1..1c2fb8d5bcf 100644
--- a/ui/app/controllers/CControllerProblemView.php
+++ b/ui/app/controllers/CControllerProblemView.php
@@ -1,4 +1,4 @@
-<?php
+<?php declare(strict_types = 0);
/*
** Zabbix
** Copyright (C) 2001-2022 Zabbix SIA
@@ -19,13 +19,16 @@
**/
+/**
+ * Controller for the "Problems" page and Problems CSV export.
+ */
class CControllerProblemView extends CControllerProblem {
- protected function init() {
+ protected function init(): void {
$this->disableSIDValidation();
}
- protected function checkInput() {
+ protected function checkInput(): bool {
$fields = [
'show' => 'in '.TRIGGERS_OPTION_RECENT_PROBLEM.','.TRIGGERS_OPTION_IN_PROBLEM.','.TRIGGERS_OPTION_ALL,
'groupids' => 'array_id',
@@ -62,30 +65,8 @@ class CControllerProblemView extends CControllerProblem {
'counter_index' => 'ge 0'
];
- $ret = $this->validateInput($fields) && $this->validateTimeSelectorPeriod();
-
- if ($ret && $this->hasInput('inventory')) {
- foreach ($this->getInput('inventory') as $filter_inventory) {
- if (count($filter_inventory) != 2
- || !array_key_exists('field', $filter_inventory) || !is_string($filter_inventory['field'])
- || !array_key_exists('value', $filter_inventory) || !is_string($filter_inventory['value'])) {
- $ret = false;
- break;
- }
- }
- }
-
- if ($ret && $this->hasInput('tags')) {
- foreach ($this->getInput('tags') as $filter_tag) {
- if (count($filter_tag) != 3
- || !array_key_exists('tag', $filter_tag) || !is_string($filter_tag['tag'])
- || !array_key_exists('value', $filter_tag) || !is_string($filter_tag['value'])
- || !array_key_exists('operator', $filter_tag) || !is_string($filter_tag['operator'])) {
- $ret = false;
- break;
- }
- }
- }
+ $ret = $this->validateInput($fields) && $this->validateTimeSelectorPeriod() && $this->validateInventory()
+ && $this->validateTags();
if (!$ret) {
$this->setResponse(new CControllerResponseFatal());
@@ -94,15 +75,20 @@ class CControllerProblemView extends CControllerProblem {
return $ret;
}
- protected function checkPermissions() {
+ protected function checkPermissions(): bool {
return $this->checkAccess(CRoleHelper::UI_MONITORING_PROBLEMS);
}
- protected function doAction() {
+ protected function doAction(): void {
$filter_tabs = [];
- $profile = (new CTabFilterProfile(static::FILTER_IDX, static::FILTER_FIELDS_DEFAULT))
- ->read()
- ->setInput($this->cleanInput($this->getInputAll()));
+ $profile = (new CTabFilterProfile(static::FILTER_IDX, static::FILTER_FIELDS_DEFAULT))->read();
+
+ if ($this->hasInput('filter_reset')) {
+ $profile->reset();
+ }
+ else {
+ $profile->setInput($this->cleanInput($this->getInputAll()));
+ }
foreach ($profile->getTabsWithDefaults() as $index => $filter_tab) {
if ($filter_tab['filter_custom_time']) {
@@ -119,6 +105,13 @@ class CControllerProblemView extends CControllerProblem {
}
$filter = $filter_tabs[$profile->selected];
+ $refresh_curl = new CUrl('zabbix.php');
+ $filter['action'] = 'problem.view.refresh';
+ array_map([$refresh_curl, 'setArgument'], array_keys($filter), $filter);
+
+ if (!$this->hasInput('page')) {
+ $refresh_curl->removeArgument('page');
+ }
$data = [
'action' => $this->getAction(),
@@ -139,6 +132,7 @@ class CControllerProblemView extends CControllerProblem {
] + getTimeselectorActions($profile->from, $profile->to)
],
'filter_tabs' => $filter_tabs,
+ 'refresh_url' => $refresh_curl->getUrl(),
'refresh_interval' => CWebUser::getRefresh() * 1000,
'inventories' => array_column(getHostInventories(), 'title', 'db_field'),
'sort' => $filter['sort'],
diff --git a/ui/app/controllers/CControllerProblemViewRefresh.php b/ui/app/controllers/CControllerProblemViewRefresh.php
index fd70b0f5433..8bf640164b4 100644
--- a/ui/app/controllers/CControllerProblemViewRefresh.php
+++ b/ui/app/controllers/CControllerProblemViewRefresh.php
@@ -19,9 +19,62 @@
**/
+/**
+ * Controller for the "Problems" asynchronous refresh page.
+ */
class CControllerProblemViewRefresh extends CControllerProblemView {
- protected function doAction() {
+ protected function init(): void {
+ $this->disableSIDValidation();
+ }
+
+ protected function checkInput(): bool {
+ $fields = [
+ 'action' => 'string',
+ 'sort' => 'in clock,host,severity,name',
+ 'sortorder' => 'in '.ZBX_SORT_DOWN.','.ZBX_SORT_UP,
+ 'page' => 'ge 1',
+ 'show' => 'in '.TRIGGERS_OPTION_RECENT_PROBLEM.','.TRIGGERS_OPTION_IN_PROBLEM.','.TRIGGERS_OPTION_ALL,
+ 'groupids' => 'array_id',
+ 'hostids' => 'array_id',
+ 'triggerids' => 'array_id',
+ 'name' => 'string',
+ 'severities' => 'array',
+ 'age_state' => 'in 0,1',
+ 'age' => 'int32',
+ 'inventory' => 'array',
+ 'evaltype' => 'in '.TAG_EVAL_TYPE_AND_OR.','.TAG_EVAL_TYPE_OR,
+ 'tags' => 'array',
+ 'show_tags' => 'in '.SHOW_TAGS_NONE.','.SHOW_TAGS_1.','.SHOW_TAGS_2.','.SHOW_TAGS_3,
+ 'show_suppressed' => 'in 0,1',
+ 'unacknowledged' => 'in 0,1',
+ 'compact_view' => 'in 0,1',
+ 'show_timeline' => 'in 0,1',
+ 'details' => 'in 0,1',
+ 'highlight_row' => 'in 0,1',
+ 'show_opdata' => 'in '.OPERATIONAL_DATA_SHOW_NONE.','.OPERATIONAL_DATA_SHOW_SEPARATELY.','.OPERATIONAL_DATA_SHOW_WITH_PROBLEM,
+ 'tag_name_format' => 'in '.TAG_NAME_FULL.','.TAG_NAME_SHORTENED.','.TAG_NAME_NONE,
+ 'tag_priority' => 'string',
+ 'from' => 'range_time',
+ 'to' => 'range_time',
+ 'filter_counters' => 'in 1'
+ ];
+
+ $ret = $this->validateInput($fields) && $this->validateTimeSelectorPeriod() && $this->validateInventory()
+ && $this->validateTags();
+
+ if (!$ret) {
+ $this->setResponse(new CControllerResponseFatal());
+ }
+
+ return $ret;
+ }
+
+ protected function checkPermissions(): bool {
+ return $this->getUserType() >= USER_TYPE_ZABBIX_USER;
+ }
+
+ protected function doAction(): void {
$data = [];
if ($this->getInput('filter_counters', 0)) {
@@ -44,12 +97,54 @@ class CControllerProblemViewRefresh extends CControllerProblemView {
$data['filter_counters'][$index] = $tabfilter['filter_show_counter'] ? $this->getCount($tabfilter) : 0;
}
- }
- if (($messages = getMessages()) !== null) {
- $data['messages'] = $messages->toString();
+ if (($messages = getMessages()) !== null) {
+ $data['messages'] = $messages->toString();
+ }
+
+ $this->setResponse(
+ (new CControllerResponseData(['main_block' => json_encode($data)]))->disableView()
+ );
}
+ else {
+ $data = [
+ 'page' => $this->getInput('page', 1),
+ 'action' => $this->getInput('action'),
+ 'sort' => $this->getInput('sort', 'clock'),
+ 'sortorder' => $this->getInput('sortorder', ZBX_SORT_DOWN),
+ 'filter' => [
+ 'show' => $this->getInput('show', TRIGGERS_OPTION_RECENT_PROBLEM),
+ 'groupids' => $this->getInput('groupids', []),
+ 'hostids' => $this->getInput('hostids', []),
+ 'triggerids' => $this->getInput('triggerids', []),
+ 'name' => $this->getInput('name', ''),
+ 'severities' => $this->getInput('severities', []),
+ 'inventory' => array_filter($this->getInput('inventory', []), function ($filter_inventory) {
+ return $filter_inventory['field'] !== '' && $filter_inventory['value'] !== '';
+ }),
+ 'evaltype' => $this->getInput('evaltype', TAG_EVAL_TYPE_AND_OR),
+ 'tags' => array_filter($this->getInput('tags', []), function ($filter_tag) {
+ return $filter_tag['tag'] !== '';
+ }),
+ 'show_tags' => $this->getInput('show_tags', SHOW_TAGS_3),
+ 'tag_name_format' => $this->getInput('tag_name_format', TAG_NAME_FULL),
+ 'tag_priority' => $this->getInput('tag_priority', ''),
+ 'show_suppressed' => $this->getInput('show_suppressed', ZBX_PROBLEM_SUPPRESSED_FALSE),
+ 'unacknowledged' => $this->getInput('unacknowledged', 0),
+ 'compact_view' => $this->getInput('compact_view', 0),
+ 'show_timeline' => $this->getInput('show_timeline', 0),
+ 'details' => $this->getInput('details', 0),
+ 'highlight_row' => $this->getInput('highlight_row', 0),
+ 'show_opdata' => $this->getInput('show_opdata', OPERATIONAL_DATA_SHOW_NONE),
+ 'age_state' => $this->getInput('age_state', 0),
+ 'age' => $this->getInput('age_state', 0) ? $this->getInput('age', 14) : null,
+ 'from' => $this->hasInput('from') ? $this->getInput('from') : null,
+ 'to' => $this->hasInput('to') ? $this->getInput('to') : null
+ ],
+ 'tabfilter_idx' => 'web.problem.filter'
+ ];
- $this->setResponse(new CControllerResponseData(['main_block' => json_encode($data)]));
+ $this->setResponse(new CControllerResponseData($data));
+ }
}
}
diff --git a/ui/app/controllers/CControllerWidgetNavTreeView.php b/ui/app/controllers/CControllerWidgetNavTreeView.php
index 009e8748a23..321fd29acfe 100644
--- a/ui/app/controllers/CControllerWidgetNavTreeView.php
+++ b/ui/app/controllers/CControllerWidgetNavTreeView.php
@@ -311,7 +311,10 @@ class CControllerWidgetNavTreeView extends CControllerWidget {
);
foreach ($uncounted_problem_triggers as $triggerid => $var) {
$problems_counted[$triggerid] = true;
- $problems = self::sumArrayValues($problems, $problems_per_trigger[$triggerid]);
+
+ if (array_key_exists($triggerid, $problems_per_trigger)) {
+ $problems = self::sumArrayValues($problems, $problems_per_trigger[$triggerid]);
+ }
}
unset($uncounted_problem_triggers);
break;
diff --git a/ui/app/partials/administration.ha.nodes.php b/ui/app/partials/administration.ha.nodes.php
index 4ff2541e0f0..56a22f2a7ce 100644
--- a/ui/app/partials/administration.ha.nodes.php
+++ b/ui/app/partials/administration.ha.nodes.php
@@ -59,10 +59,7 @@ if ($data['ha_cluster_enabled']) {
}
$nodes_table->addRow([
- (new CCol($node['name'] === ''
- ? '<'._('standalone server').'>'
- : $node['name']
- ))->addClass(ZBX_STYLE_NOWRAP),
+ (new CCol($node['name']))->addClass(ZBX_STYLE_NOWRAP),
$node['address'].':'.$node['port'],
(new CCol(convertUnitsS(time() - $node['lastaccess'])))
->setAttribute('title', zbx_date2str(DATE_TIME_FORMAT_SECONDS, $node['lastaccess'])),
diff --git a/ui/app/partials/administration.system.info.php b/ui/app/partials/administration.system.info.php
index 294586952b9..e4e3aa12123 100644
--- a/ui/app/partials/administration.system.info.php
+++ b/ui/app/partials/administration.system.info.php
@@ -191,6 +191,34 @@ if ($data['user_type'] == USER_TYPE_SUPER_ADMIN) {
);
}
+ if (array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_HISTORY, $data['system_info'])) {
+ $info_table->addRow((new CRow([
+ _('Housekeeping'),
+ _('Override item history period'),
+ (new CCol([
+ _('This setting should be enabled, because history tables contain compressed chunks.'),
+ ' ',
+ new CLink(_('Configuration').'&hellip;',
+ (new CUrl('zabbix.php'))->setArgument('action', 'housekeeping.edit')
+ )
+ ]))->addClass(ZBX_STYLE_RED)
+ ])));
+ }
+
+ if (array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_TRENDS, $data['system_info'])) {
+ $info_table->addRow((new CRow([
+ _('Housekeeping'),
+ _('Override item trend period'),
+ (new CCol([
+ _('This setting should be enabled, because trend tables contain compressed chunks.'),
+ ' ',
+ new CLink(_('Configuration').'&hellip;',
+ (new CUrl('zabbix.php'))->setArgument('action', 'housekeeping.edit')
+ )
+ ]))->addClass(ZBX_STYLE_RED)
+ ])));
+ }
+
if ($data['system_info']['ha_cluster_enabled']) {
$info_table->addRow([
_('High availability cluster'),
diff --git a/ui/app/partials/monitoring.problem.view.html.php b/ui/app/partials/monitoring.problem.view.html.php
new file mode 100644
index 00000000000..a3be52c8e79
--- /dev/null
+++ b/ui/app/partials/monitoring.problem.view.html.php
@@ -0,0 +1,75 @@
+<?php declare(strict_types = 0);
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+/**
+ * @var CPartial $this
+ * @var array $data
+ */
+
+$options = [
+ 'resourcetype' => SCREEN_RESOURCE_PROBLEM,
+ 'mode' => SCREEN_MODE_JS,
+ 'dataId' => 'problem',
+ 'page' => $data['page'],
+ 'data' => [
+ 'action' => $data['action'],
+ 'sort' => $data['sort'],
+ 'sortorder' => $data['sortorder'],
+ 'filter' => [
+ 'show' => $data['filter']['show'],
+ 'groupids' => $data['filter']['groupids'],
+ 'hostids' => $data['filter']['hostids'],
+ 'triggerids' => $data['filter']['triggerids'],
+ 'name' => $data['filter']['name'],
+ 'severities' => $data['filter']['severities'],
+ 'inventory' => $data['filter']['inventory'],
+ 'evaltype' => $data['filter']['evaltype'],
+ 'tags' => $data['filter']['tags'],
+ 'show_tags' => $data['filter']['show_tags'],
+ 'tag_name_format' => $data['filter']['tag_name_format'],
+ 'tag_priority' => $data['filter']['tag_priority'],
+ 'show_suppressed' => $data['filter']['show_suppressed'],
+ 'unacknowledged' => $data['filter']['unacknowledged'],
+ 'compact_view' => $data['filter']['compact_view'],
+ 'show_timeline' => $data['filter']['show_timeline'],
+ 'details' => $data['filter']['details'],
+ 'highlight_row' => $data['filter']['highlight_row'],
+ 'show_opdata' => $data['filter']['show_opdata']
+ ]
+ ]
+];
+
+switch ($data['filter']['show']) {
+ case TRIGGERS_OPTION_RECENT_PROBLEM:
+ case TRIGGERS_OPTION_IN_PROBLEM:
+ $options['data']['filter']['age_state'] = $data['filter']['age_state'];
+ $options['data']['filter']['age'] = $data['filter']['age'];
+ break;
+
+ case TRIGGERS_OPTION_ALL:
+ $options['profileIdx'] = $data['tabfilter_idx'];
+ $options['profileIdx2'] = 0;
+ $options['from'] = $data['filter']['from'];
+ $options['to'] = $data['filter']['to'];
+ break;
+}
+
+echo CScreenBuilder::getScreen($options)->get();
diff --git a/ui/app/views/administration.authentication.edit.php b/ui/app/views/administration.authentication.edit.php
index 2f70b2da239..d429ec2bd97 100644
--- a/ui/app/views/administration.authentication.edit.php
+++ b/ui/app/views/administration.authentication.edit.php
@@ -325,6 +325,7 @@ $saml_tab = (new CFormList('list_saml'))
->setEnabled($data['saml_enabled'])
);
+$selected_tab = $data['form_refresh'] ? CCookieHelper::get('tab') : 0;
(new CWidget())
->setTitle(_('Authentication'))
->addItem((new CForm())
@@ -336,7 +337,7 @@ $saml_tab = (new CFormList('list_saml'))
->setAttribute('aria-labelledby', ZBX_STYLE_PAGE_TITLE)
->disablePasswordAutofill()
->addItem((new CTabView())
- ->setSelected($data['form_refresh'] ? null : 0)
+ ->setSelected($selected_tab)
->addTab('auth', _('Authentication'), $auth_tab)
->addTab('http', _('HTTP settings'), $http_tab, TAB_INDICATOR_AUTH_HTTP)
->addTab('ldap', _('LDAP settings'), $ldap_tab, TAB_INDICATOR_AUTH_LDAP)
@@ -344,7 +345,7 @@ $saml_tab = (new CFormList('list_saml'))
->setFooter(makeFormFooter(
(new CSubmit('update', _('Update'))),
[(new CSubmitButton(_('Test'), 'ldap_test', 1))
- ->addStyle(($data['form_refresh'] && CCookieHelper::get('tab') == 2) ? '' : 'display: none')
+ ->addStyle($selected_tab == 2 ? '' : 'display: none')
->setEnabled($data['ldap_enabled'])
]
))
diff --git a/ui/app/views/administration.housekeeping.edit.php b/ui/app/views/administration.housekeeping.edit.php
index cae67b47976..82338f8734b 100644
--- a/ui/app/views/administration.housekeeping.edit.php
+++ b/ui/app/views/administration.housekeeping.edit.php
@@ -125,7 +125,19 @@ $house_keeper_tab = (new CFormList())
)
->addRow(
new CLabel(_('Override item history period'), 'hk_history_global'),
- (new CCheckBox('hk_history_global'))->setChecked($data['hk_history_global'] == 1)
+ [
+ (new CCheckBox('hk_history_global'))->setChecked($data['hk_history_global'] == 1),
+ array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_HISTORY, $data)
+ ? new CSpan([
+ ' ',
+ makeWarningIcon(
+ _('This setting should be enabled, because history tables contain compressed chunks.')
+ )
+ ->addStyle('display:none;')
+ ->addClass('js-hk-history-warning')
+ ])
+ : null
+ ]
)
->addRow(
(new CLabel(_('Data storage period'), 'hk_history'))
@@ -142,7 +154,19 @@ $house_keeper_tab = (new CFormList())
)
->addRow(
new CLabel(_('Override item trend period'), 'hk_trends_global'),
- (new CCheckBox('hk_trends_global'))->setChecked($data['hk_trends_global'] == 1)
+ [
+ (new CCheckBox('hk_trends_global'))->setChecked($data['hk_trends_global'] == 1),
+ array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_TRENDS, $data)
+ ? new CSpan([
+ ' ',
+ makeWarningIcon(
+ _('This setting should be enabled, because trend tables contain compressed chunks.')
+ )
+ ->addStyle('display:none;')
+ ->addClass('js-hk-trends-warning')
+ ])
+ : null
+ ]
)
->addRow(
(new CLabel(_('Data storage period'), 'hk_trends'))
diff --git a/ui/app/views/administration.user.edit.php b/ui/app/views/administration.user.edit.php
index 3de34d3e3a8..0d193547bff 100644
--- a/ui/app/views/administration.user.edit.php
+++ b/ui/app/views/administration.user.edit.php
@@ -280,7 +280,9 @@ $user_form_list
->setAriaRequired()
)
->addRow(_('URL (after login)'),
- (new CTextBox('url', $data['url']))->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
+ (new CTextBox('url', $data['url']))
+ ->setWidth(ZBX_TEXTAREA_STANDARD_WIDTH)
+ ->setAttribute('maxlength', DB::getFieldLength('users', 'url'))
);
$tabs->addTab('userTab', _('User'), $user_form_list);
diff --git a/ui/app/views/js/administration.housekeeping.edit.js.php b/ui/app/views/js/administration.housekeeping.edit.js.php
index 12d9e19fa34..a1963c7e57c 100644
--- a/ui/app/views/js/administration.housekeeping.edit.js.php
+++ b/ui/app/views/js/administration.housekeeping.edit.js.php
@@ -62,6 +62,22 @@
$('#compress_older').prop('disabled', !this.checked);
});
+ $('#hk_history_mode, #hk_history_global')
+ .change(function() {
+ $('.js-hk-history-warning').toggle(document.getElementById('hk_history_mode').checked
+ && !document.getElementById('hk_history_global').checked
+ )
+ })
+ .trigger('change');
+
+ $('#hk_trends_mode, #hk_trends_global')
+ .change(function() {
+ $('.js-hk-trends-warning').toggle(document.getElementById('hk_trends_mode').checked
+ && !document.getElementById('hk_trends_global').checked
+ )
+ })
+ .trigger('change');
+
$("#resetDefaults").click(function() {
overlayDialogue({
'title': <?= json_encode(_('Reset confirmation')) ?>,
diff --git a/ui/app/views/js/monitoring.problem.view.js.php b/ui/app/views/js/monitoring.problem.view.js.php
index 02756407b50..cf9cc1f5ccb 100644
--- a/ui/app/views/js/monitoring.problem.view.js.php
+++ b/ui/app/views/js/monitoring.problem.view.js.php
@@ -27,6 +27,7 @@
<script>
const view = {
refresh_url: null,
+ refresh_simple_url: null,
refresh_interval: null,
filter_defaults: null,
filter: null,
@@ -34,18 +35,27 @@
active_filter: null,
refresh_timer: null,
filter_counter_fetch: null,
+ running: false,
+ timeout: null,
+ deferred: null,
- init({filter_options, refresh_interval, filter_defaults}) {
+ init({filter_options, refresh_url, refresh_interval, filter_defaults}) {
+ this.refresh_url = new Curl(refresh_url, false);
this.refresh_interval = refresh_interval;
this.filter_defaults = filter_defaults;
const url = new Curl('zabbix.php', false);
url.setArgument('action', 'problem.view.refresh');
- this.refresh_url = url.getUrl();
+ this.refresh_simple_url = url.getUrl();
this.initFilter(filter_options);
this.initAcknowledge();
+ if (this.refresh_interval != 0) {
+ this.running = true;
+ this.scheduleRefresh();
+ }
+
$(document).on({
mouseenter: function() {
if ($(this)[0].scrollWidth > $(this)[0].offsetWidth) {
@@ -108,7 +118,7 @@
this.filter_counter_fetch = new AbortController();
const filter_item = this.filter._active_item;
- fetch(this.refresh_url, {
+ fetch(this.refresh_simple_url, {
method: 'POST',
signal: this.filter_counter_fetch.signal,
body: new URLSearchParams({filter_counters: 1, counter_index: filter_item._index})
@@ -127,6 +137,9 @@
this.global_timerange.from = data.from;
this.global_timerange.to = data.to;
}
+
+ this.refresh_url.setArgument('page', 1);
+ this.refreshResults();
});
},
@@ -138,7 +151,7 @@
chkbxRange.clearSelectedOnFilterChange();
}
- window.flickerfreeScreen.refresh('problem');
+ view.refreshNow();
clearMessages();
addMessage(makeMessageBox('good', [], response.message, true, false));
@@ -151,14 +164,119 @@
});
},
+ getCurrentResultsTable() {
+ return document.getElementById('flickerfreescreen_problem');
+ },
+
+ getCurrentDebugBlock() {
+ return document.querySelector('.wrapper > .debug-output');
+ },
+
+ setLoading() {
+ this.getCurrentResultsTable().classList.add('is-loading', 'is-loading-fadein', 'delayed-15s');
+ },
+
+ clearLoading() {
+ this.getCurrentResultsTable().classList.remove('is-loading', 'is-loading-fadein', 'delayed-15s');
+ },
+
+ refreshBody(body) {
+ this.getCurrentResultsTable().replaceWith(
+ new DOMParser().parseFromString(body, 'text/html').body.firstElementChild
+ );
+ chkbxRange.init();
+ },
+
+ refreshDebug(debug) {
+ this.getCurrentDebugBlock().replaceWith(
+ new DOMParser().parseFromString(debug, 'text/html').body.firstElementChild
+ );
+ },
+
+ refresh() {
+ this.setLoading();
+
+ const params = this.refresh_url.getArgumentsObject();
+ const exclude = ['action', 'filter_src', 'filter_show_counter', 'filter_custom_time', 'filter_name'];
+ const post_data = Object.keys(params)
+ .filter(key => !exclude.includes(key))
+ .reduce((post_data, key) => {
+ post_data[key] = (typeof params[key] === 'object')
+ ? [...params[key]].filter(i => i)
+ : params[key];
+ return post_data;
+ }, {});
+
+ this.deferred = $.ajax({
+ url: this.refresh_simple_url,
+ data: post_data,
+ type: 'post',
+ dataType: 'json'
+ });
+
+ return this.bindDataEvents(this.deferred);
+ },
+
+ refreshNow() {
+ this.unscheduleRefresh();
+ this.refresh();
+ },
+
+ scheduleRefresh() {
+ this.unscheduleRefresh();
+ this.timeout = setTimeout((function () {
+ this.timeout = null;
+ this.refresh();
+ }).bind(this), this.refresh_interval);
+ },
+
+ unscheduleRefresh() {
+ if (this.timeout !== null) {
+ clearTimeout(this.timeout);
+ this.timeout = null;
+ }
+ },
+
+ bindDataEvents(deferred) {
+ const that = this;
+
+ deferred
+ .done(function(response) {
+ that.onDataDone.call(that, response);
+ })
+ .always(this.onDataAlways.bind(this));
+
+ return deferred;
+ },
+
+ onDataAlways() {
+ if (this.running) {
+ this.deferred = null;
+ this.scheduleRefresh();
+ }
+ },
+
+ onDataDone(response) {
+ this.clearLoading();
+ this.refreshBody(response.body);
+
+ if ('messages' in response) {
+ clearMessages();
+ addMessage(makeMessageBox('good', [], response.messages, true, false));
+ }
+
+ ('debug' in response) && this.refreshDebug(response.debug);
+ },
+
/**
- * Refresh results table via window.flickerfreeScreen.refresh call.
+ * Refresh results table.
*/
refreshResults() {
const url = new Curl();
- const screen = window.flickerfreeScreen.screens['problem'];
+ const refresh_url = new Curl('zabbix.php', false);
const data = Object.assign({}, this.filter_defaults, this.global_timerange, url.getArgumentsObject());
+ // Modify filter data.
data.inventory = data.inventory
? data.inventory.filter(inventory => 'value' in inventory && inventory.value !== '')
: data.inventory;
@@ -168,26 +286,14 @@
data.severities = data.severities
? data.severities.filter((value, key) => value == key)
: data.severities;
+ data.page = this.refresh_url.getArgument('page') ?? 1;
- // Modify filter data of flickerfreeScreen object with id 'problem'.
- if (data.page === null) {
- delete data.page;
- }
-
- if (data.filter_custom_time) {
- screen.timeline.from = data.from;
- screen.timeline.to = data.to;
- }
- else {
- screen.timeline.from = this.global_timerange.from;
- screen.timeline.to = this.global_timerange.to;
+ if (!data.filter_custom_time) {
+ data.from = this.global_timerange.from;
+ data.to = this.global_timerange.to;
}
- screen.data.filter = data;
- screen.data.sort = data.sort;
- screen.data.sortorder = data.sortorder;
-
- // Close all opened hint boxes otherwise flicker free screen will not refresh it content.
+ // Close all opened hint boxes, otherwise their contents will not be updated after autorefresh.
for (let i = overlays_stack.length - 1; i >= 0; i--) {
const hintbox = overlays_stack.getById(overlays_stack.stack[i]);
@@ -197,13 +303,23 @@
}
}
- window.flickerfreeScreen.refresh(screen.id);
+ Object.entries(data).forEach(([key, value]) => {
+ if (['filter_show_counter', 'filter_custom_time', 'action'].indexOf(key) !== -1) {
+ return;
+ }
+
+ refresh_url.setArgument(key, value);
+ });
+
+ refresh_url.setArgument('action', 'problem.view.refresh');
+ this.refresh_url = refresh_url;
+ this.refreshNow();
},
refreshCounters() {
clearTimeout(this.refresh_timer);
- fetch(this.refresh_url, {
+ fetch(this.refresh_simple_url, {
method: 'POST',
body: new URLSearchParams({filter_counters: 1})
})
diff --git a/ui/app/views/monitoring.problem.view.php b/ui/app/views/monitoring.problem.view.php
index b1426e10b4f..83b42ffb5e3 100644
--- a/ui/app/views/monitoring.problem.view.php
+++ b/ui/app/views/monitoring.problem.view.php
@@ -24,60 +24,9 @@
* @var array $data
*/
-$options = [
- 'resourcetype' => SCREEN_RESOURCE_PROBLEM,
- 'mode' => SCREEN_MODE_JS,
- 'dataId' => 'problem',
- 'page' => $data['page'],
- 'data' => [
- 'action' => $data['action'],
- 'sort' => $data['sort'],
- 'sortorder' => $data['sortorder'],
- 'filter' => [
- 'show' => $data['filter']['show'],
- 'groupids' => $data['filter']['groupids'],
- 'hostids' => $data['filter']['hostids'],
- 'triggerids' => $data['filter']['triggerids'],
- 'name' => $data['filter']['name'],
- 'severities' => $data['filter']['severities'],
- 'inventory' => $data['filter']['inventory'],
- 'evaltype' => $data['filter']['evaltype'],
- 'tags' => $data['filter']['tags'],
- 'show_tags' => $data['filter']['show_tags'],
- 'tag_name_format' => $data['filter']['tag_name_format'],
- 'tag_priority' => $data['filter']['tag_priority'],
- 'show_suppressed' => $data['filter']['show_suppressed'],
- 'unacknowledged' => $data['filter']['unacknowledged'],
- 'compact_view' => $data['filter']['compact_view'],
- 'show_timeline' => $data['filter']['show_timeline'],
- 'details' => $data['filter']['details'],
- 'highlight_row' => $data['filter']['highlight_row'],
- 'show_opdata' => $data['filter']['show_opdata']
- ]
- ]
-];
-
-switch ($data['filter']['show']) {
- case TRIGGERS_OPTION_RECENT_PROBLEM:
- case TRIGGERS_OPTION_IN_PROBLEM:
- $options['data']['filter']['age_state'] = $data['filter']['age_state'];
- $options['data']['filter']['age'] = $data['filter']['age'];
- break;
-
- case TRIGGERS_OPTION_ALL:
- $options['profileIdx'] = $data['tabfilter_idx'];
- $options['profileIdx2'] = 0;
- $options['from'] = $data['filter']['from'];
- $options['to'] = $data['filter']['to'];
- break;
-}
-
-$screen = CScreenBuilder::getScreen($options);
-
if ($data['action'] === 'problem.view') {
$this->addJsFile('class.calendar.js');
$this->addJsFile('gtlc.js');
- $this->addJsFile('flickerfreescreen.js');
$this->addJsFile('layout.mode.js');
$this->addJsFile('class.tabfilter.js');
$this->addJsFile('class.tabfilteritem.js');
@@ -124,12 +73,15 @@ if ($data['action'] === 'problem.view') {
$this->includeJsFile('monitoring.problem.view.js.php', $data);
$widget
- ->addItem($screen->get())
+ ->addItem(new CPartial('monitoring.problem.view.html', array_intersect_key($data,
+ array_flip(['page', 'action', 'sort', 'sortorder', 'filter', 'tabfilter_idx'])
+ )))
->show();
(new CScriptTag('
view.init('.json_encode([
'filter_options' => $data['filter_options'],
+ 'refresh_url' => $data['refresh_url'],
'refresh_interval' => $data['refresh_interval'],
'filter_defaults' => $data['filter_defaults']
]).');
@@ -138,5 +90,7 @@ if ($data['action'] === 'problem.view') {
->show();
}
else {
- echo $screen->get();
+ echo (new CPartial('monitoring.problem.view.html', array_intersect_key($data,
+ array_flip(['page', 'action', 'sort', 'sortorder', 'filter', 'tabfilter_idx'])
+ )))->getOutput();
}
diff --git a/src/go/plugins/postgres/handler_ping.go b/ui/app/views/monitoring.problem.view.refresh.php
index 04018cb4da4..dacfacdec87 100644
--- a/src/go/plugins/postgres/handler_ping.go
+++ b/ui/app/views/monitoring.problem.view.refresh.php
@@ -1,3 +1,4 @@
+<?php declare(strict_types = 0);
/*
** Zabbix
** Copyright (C) 2001-2022 Zabbix SIA
@@ -17,33 +18,23 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
-package postgres
-import (
- "context"
- "fmt"
-)
+/**
+ * @var CView $this
+ * @var array $data
+ */
-const (
- pingFailed = 0
- pingOk = 1
-)
+$output = [
+ 'body' => (new CPartial('monitoring.problem.view.html', $data))->getOutput()
+];
-// pingHandler queries 'SELECT 1' and returns pingOk if a connection is alive or pingFailed otherwise.
-func pingHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var res int
-
- row, err := conn.QueryRow(ctx, fmt.Sprintf("SELECT %d", pingOk))
- if err != nil {
- return pingFailed, nil
- }
-
- err = row.Scan(&res)
-
- if err != nil || res != pingOk {
- return pingFailed, nil
- }
+if (($messages = getMessages()) !== null) {
+ $output['messages'] = $messages->toString();
+}
- return pingOk, nil
+if (CWebUser::$data['debug_mode'] == GROUP_DEBUG_MODE_ENABLED) {
+ CProfiler::getInstance()->stop();
+ $output['debug'] = CProfiler::getInstance()->make()->toString();
}
+
+echo json_encode($output);
diff --git a/ui/app/views/popup.mediatypetest.edit.php b/ui/app/views/popup.mediatypetest.edit.php
index 53d94f7b9e7..d33c3774cd4 100644
--- a/ui/app/views/popup.mediatypetest.edit.php
+++ b/ui/app/views/popup.mediatypetest.edit.php
@@ -49,7 +49,7 @@ if ($data['type'] == MEDIA_TYPE_WEBHOOK) {
->setWidth(ZBX_TEXTAREA_BIG_WIDTH)
->setEnabled(false),
(new CDiv(''))->setId('webhook_response_type'),
- (new CDiv((new CLinkAction('Open log'))
+ (new CDiv((new CLinkAction(_('Open log')))
->setId('mediatypetest_log')
->addClass(ZBX_STYLE_DISABLED)
->onClick('openLogPopup(this)')))
diff --git a/ui/app/views/popup.scriptexec.php b/ui/app/views/popup.scriptexec.php
index 5c8fa8c12a5..9a20e62cac4 100644
--- a/ui/app/views/popup.scriptexec.php
+++ b/ui/app/views/popup.scriptexec.php
@@ -37,7 +37,7 @@ if ($data['success']) {
if ($data['type'] == ZBX_SCRIPT_TYPE_WEBHOOK) {
$row_decription[] = new CVar('debug', json_encode($data['debug']));
$row_decription[] = new CDiv(
- (new CLinkAction('Open log'))
+ (new CLinkAction(_('Open log')))
->setId('script_execution_log')
->addClass($data['debug'] ? '' : ZBX_STYLE_DISABLED)
);
diff --git a/ui/assets/styles/blue-theme.css b/ui/assets/styles/blue-theme.css
index 10b761245e2..4132e4cdebe 100644
--- a/ui/assets/styles/blue-theme.css
+++ b/ui/assets/styles/blue-theme.css
@@ -2420,14 +2420,11 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-top: 0; }
.filter-container.tabfilter-container .tabfilter-item-label {
display: inline-block;
- background-color: #0275b8;
border-radius: 2px;
border: 1px solid transparent;
color: #ffffff;
- margin-right: 3px; }
- .filter-container.tabfilter-container .tabfilter-item-label:hover {
- color: #ffffff;
- background-color: #02659f; }
+ margin-right: 2px;
+ margin-left: 2px; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link {
font-style: italic; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link::before {
@@ -2439,19 +2436,14 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
background-color: #ffffff;
border: 1px solid #dfe4e7;
border-bottom: 0;
- padding-bottom: 8px;
- margin-top: -1px;
+ padding-bottom: 7px;
vertical-align: baseline; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .tabfilter-item-link {
color: #1f2c33; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded:hover {
background: #e8f5ff; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .icon-edit {
- background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px; }
.filter-container.tabfilter-container .tabfilter-item-label.selected {
- background-color: #02659f; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link {
- color: #ffffff; }
+ background-color: #ffffff; }
.filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link[data-counter]::after {
display: none; }
.filter-container.tabfilter-container .tabfilter-item-label.focused {
@@ -2461,19 +2453,34 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
pointer-events: none; }
.filter-container.tabfilter-container .tabfilter-item-label .icon-filter.tabfilter-item-link[data-counter]::after {
display: none; }
+ .filter-container.tabfilter-container .tabfilter-item-label.ui-sortable-helper {
+ background-color: #ffffff; }
.filter-container.tabfilter-container .tabfilter-item-link {
+ position: relative;
display: inline-block;
- color: #ffffff;
+ color: #1f2c33;
border: 1px transparent;
line-height: 22px;
vertical-align: middle;
- padding: 0 8px; }
+ padding: 0 8px 7px 8px;
+ margin-bottom: -7px; }
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label.ui-sortable-helper + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before,
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label:not(.selected) + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before {
+ content: ' ';
+ position: absolute;
+ top: 1px;
+ left: -3px;
+ display: inline-block;
+ height: 20px;
+ border-left: 1px solid #768d99; }
.filter-container.tabfilter-container .icon-edit {
width: 24px;
height: 22px;
- background: url("../img/icon-sprite.svg?20211222") no-repeat -354px -621px;
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px;
cursor: pointer;
margin: 0;
+ padding-bottom: 7px !important;
+ margin-bottom: -7px;
vertical-align: middle;
display: inline-block;
opacity: 0; }
@@ -2484,9 +2491,9 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-left: .4em;
padding: 0.1em 0.4em;
font-size: 0.917em;
- background-color: #ebebeb;
+ background-color: #768d99;
border-radius: 2px;
- color: #1f2c33;
+ color: #ffffff;
content: attr(data-counter); }
[data-counter=""]::after {
@@ -2502,14 +2509,12 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
padding-right: 35px; }
.icon-filter::before {
- display: block;
+ vertical-align: middle;
+ display: inline-block;
width: 24px;
height: 24px;
content: '';
- background: url("../img/icon-sprite.svg?20211222") no-repeat -87px -547px; }
-
-.selected.expanded .icon-filter::before {
- background-position: -246px -547px; }
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -246px -547px; }
.toc .toc-row {
padding: 8px 10px;
@@ -6753,7 +6758,7 @@ button.icon-action-command, button.icon-action-close, button.icon-action-msg, bu
color: #768d99; }
.interfaces .interface-container.interface-container-header .interface-cell-action {
grid-column: span 2; }
- .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) .interface-cell:not(.interface-cell-details) {
+ .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) :first-child .interface-cell:not(.interface-cell-details) {
padding-top: 10px;
margin-top: 5px;
border-top: 1px solid #acbbc2; }
diff --git a/ui/assets/styles/dark-theme.css b/ui/assets/styles/dark-theme.css
index d072bb56fec..55d4a9c8b2f 100644
--- a/ui/assets/styles/dark-theme.css
+++ b/ui/assets/styles/dark-theme.css
@@ -2433,14 +2433,11 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-top: 0; }
.filter-container.tabfilter-container .tabfilter-item-label {
display: inline-block;
- background-color: #69808d;
border-radius: 2px;
border: 1px solid transparent;
color: #f2f2f2;
- margin-right: 3px; }
- .filter-container.tabfilter-container .tabfilter-item-label:hover {
- color: #f2f2f2;
- background-color: #5e737e; }
+ margin-right: 2px;
+ margin-left: 2px; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link {
font-style: italic; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link::before {
@@ -2452,19 +2449,14 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
background-color: #2b2b2b;
border: 1px solid #303030;
border-bottom: 0;
- padding-bottom: 8px;
- margin-top: -1px;
+ padding-bottom: 7px;
vertical-align: baseline; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .tabfilter-item-link {
color: #f2f2f2; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded:hover {
background: #414141; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .icon-edit {
- background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px; }
.filter-container.tabfilter-container .tabfilter-item-label.selected {
- background-color: #5e737e; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link {
- color: #f2f2f2; }
+ background-color: #2b2b2b; }
.filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link[data-counter]::after {
display: none; }
.filter-container.tabfilter-container .tabfilter-item-label.focused {
@@ -2474,19 +2466,34 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
pointer-events: none; }
.filter-container.tabfilter-container .tabfilter-item-label .icon-filter.tabfilter-item-link[data-counter]::after {
display: none; }
+ .filter-container.tabfilter-container .tabfilter-item-label.ui-sortable-helper {
+ background-color: #2b2b2b; }
.filter-container.tabfilter-container .tabfilter-item-link {
+ position: relative;
display: inline-block;
color: #f2f2f2;
border: 1px transparent;
line-height: 22px;
vertical-align: middle;
- padding: 0 8px; }
+ padding: 0 8px 7px 8px;
+ margin-bottom: -7px; }
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label.ui-sortable-helper + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before,
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label:not(.selected) + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before {
+ content: ' ';
+ position: absolute;
+ top: 1px;
+ left: -3px;
+ display: inline-block;
+ height: 20px;
+ border-left: 1px solid #768d99; }
.filter-container.tabfilter-container .icon-edit {
width: 24px;
height: 22px;
- background: url("../img/icon-sprite.svg?20211222") no-repeat -354px -621px;
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px;
cursor: pointer;
margin: 0;
+ padding-bottom: 7px !important;
+ margin-bottom: -7px;
vertical-align: middle;
display: inline-block;
opacity: 0; }
@@ -2497,9 +2504,9 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-left: .4em;
padding: 0.1em 0.4em;
font-size: 0.917em;
- background-color: #2b2b2b;
+ background-color: #4f4f4f;
border-radius: 2px;
- color: #e1e3ed;
+ color: #ffffff;
content: attr(data-counter); }
[data-counter=""]::after {
@@ -2515,14 +2522,12 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
padding-right: 35px; }
.icon-filter::before {
- display: block;
+ vertical-align: middle;
+ display: inline-block;
width: 24px;
height: 24px;
content: '';
- background: url("../img/icon-sprite.svg?20211222") no-repeat -87px -547px; }
-
-.selected.expanded .icon-filter::before {
- background-position: -246px -547px; }
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -246px -547px; }
.toc .toc-row {
padding: 8px 10px;
@@ -6764,7 +6769,7 @@ button.icon-action-command, button.icon-action-close, button.icon-action-msg, bu
color: #737373; }
.interfaces .interface-container.interface-container-header .interface-cell-action {
grid-column: span 2; }
- .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) .interface-cell:not(.interface-cell-details) {
+ .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) :first-child .interface-cell:not(.interface-cell-details) {
padding-top: 10px;
margin-top: 5px;
border-top: 1px solid #4f4f4f; }
@@ -7127,5 +7132,5 @@ z-select.z-select-host-interface li[disabled] .description:not(:empty),
.breadcrumbs > :last-child::after {
content: ""; }
-.selected.expanded .icon-filter::before {
- background-position: -87px -547px; }
+.icon-filter::before {
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -87px -547px; }
diff --git a/ui/assets/styles/hc-dark.css b/ui/assets/styles/hc-dark.css
index f96f42cde8c..5f9dab619a4 100644
--- a/ui/assets/styles/hc-dark.css
+++ b/ui/assets/styles/hc-dark.css
@@ -2409,14 +2409,11 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-top: 0; }
.filter-container.tabfilter-container .tabfilter-item-label {
display: inline-block;
- background-color: #e0e0e0;
border-radius: 2px;
border: 1px solid transparent;
color: #333333;
- margin-right: 3px; }
- .filter-container.tabfilter-container .tabfilter-item-label:hover {
- color: #333333;
- background-color: lightgray; }
+ margin-right: 2px;
+ margin-left: 2px; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link {
font-style: italic; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link::before {
@@ -2428,19 +2425,14 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
background-color: #000000;
border: 1px solid #444444;
border-bottom: 0;
- padding-bottom: 8px;
- margin-top: -1px;
+ padding-bottom: 7px;
vertical-align: baseline; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .tabfilter-item-link {
color: #ffffff; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded:hover {
background: #414141; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .icon-edit {
- background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px; }
.filter-container.tabfilter-container .tabfilter-item-label.selected {
- background-color: lightgray; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link {
- color: #333333; }
+ background-color: #000000; }
.filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link[data-counter]::after {
display: none; }
.filter-container.tabfilter-container .tabfilter-item-label.focused {
@@ -2450,19 +2442,34 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
pointer-events: none; }
.filter-container.tabfilter-container .tabfilter-item-label .icon-filter.tabfilter-item-link[data-counter]::after {
display: none; }
+ .filter-container.tabfilter-container .tabfilter-item-label.ui-sortable-helper {
+ background-color: #000000; }
.filter-container.tabfilter-container .tabfilter-item-link {
+ position: relative;
display: inline-block;
- color: #333333;
+ color: #ffffff;
border: 1px transparent;
line-height: 22px;
vertical-align: middle;
- padding: 0 8px; }
+ padding: 0 8px 7px 8px;
+ margin-bottom: -7px; }
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label.ui-sortable-helper + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before,
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label:not(.selected) + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before {
+ content: ' ';
+ position: absolute;
+ top: 1px;
+ left: -3px;
+ display: inline-block;
+ height: 20px;
+ border-left: 1px solid #768d99; }
.filter-container.tabfilter-container .icon-edit {
width: 24px;
height: 22px;
- background: url("../img/icon-sprite.svg?20211222") no-repeat -354px -621px;
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px;
cursor: pointer;
margin: 0;
+ padding-bottom: 7px !important;
+ margin-bottom: -7px;
vertical-align: middle;
display: inline-block;
opacity: 0; }
@@ -2473,9 +2480,9 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-left: .4em;
padding: 0.1em 0.4em;
font-size: 0.917em;
- background-color: #000000;
+ background-color: #dddddd;
border-radius: 2px;
- color: #e1e3ed;
+ color: #000000 !important;
content: attr(data-counter); }
[data-counter=""]::after {
@@ -2491,14 +2498,12 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
padding-right: 35px; }
.icon-filter::before {
- display: block;
+ vertical-align: middle;
+ display: inline-block;
width: 24px;
height: 24px;
content: '';
- background: url("../img/icon-sprite.svg?20211222") no-repeat -87px -547px; }
-
-.selected.expanded .icon-filter::before {
- background-position: -246px -547px; }
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -246px -547px; }
.toc .toc-row {
padding: 8px 10px;
@@ -6710,7 +6715,7 @@ button.icon-action-command, button.icon-action-close, button.icon-action-msg, bu
color: #cacaca; }
.interfaces .interface-container.interface-container-header .interface-cell-action {
grid-column: span 2; }
- .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) .interface-cell:not(.interface-cell-details) {
+ .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) :first-child .interface-cell:not(.interface-cell-details) {
padding-top: 10px;
margin-top: 5px;
border-top: 1px solid #666666; }
@@ -7774,10 +7779,8 @@ td.inactive-bg {
.btn-undo.is-focused {
box-shadow: 0 1px 0px #ffffff, 0 -1px 0px #ffffff; }
-.filter-container.tabfilter-container .selected.expanded .icon-filter::before {
- background: url("../img/icon-sprite.svg?20211222") no-repeat -87px -547px; }
.filter-container.tabfilter-container .icon-filter::before {
- background: url("../img/icon-sprite.svg?20211222") no-repeat -246px -547px; }
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -87px -547px; }
.filter-container.tabfilter-container .tabfilter-item-label.focused {
box-shadow: 0 0 0 2px #ffffff; }
diff --git a/ui/assets/styles/hc-light.css b/ui/assets/styles/hc-light.css
index 0238d47a14d..02c5d2a5c46 100644
--- a/ui/assets/styles/hc-light.css
+++ b/ui/assets/styles/hc-light.css
@@ -2409,14 +2409,11 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-top: 0; }
.filter-container.tabfilter-container .tabfilter-item-label {
display: inline-block;
- background-color: #555555;
border-radius: 2px;
border: 1px solid transparent;
color: #ffffff;
- margin-right: 3px; }
- .filter-container.tabfilter-container .tabfilter-item-label:hover {
- color: #ffffff;
- background-color: #484848; }
+ margin-right: 2px;
+ margin-left: 2px; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link {
font-style: italic; }
.filter-container.tabfilter-container .tabfilter-item-label.unsaved .tabfilter-item-link::before {
@@ -2428,19 +2425,14 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
background-color: #ffffff;
border: 1px solid #9f9f9f;
border-bottom: 0;
- padding-bottom: 8px;
- margin-top: -1px;
+ padding-bottom: 7px;
vertical-align: baseline; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .tabfilter-item-link {
color: #000000; }
.filter-container.tabfilter-container .tabfilter-item-label.selected.expanded:hover {
background: #f4f4f4; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected.expanded .icon-edit {
- background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px; }
.filter-container.tabfilter-container .tabfilter-item-label.selected {
- background-color: #484848; }
- .filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link {
- color: #ffffff; }
+ background-color: #ffffff; }
.filter-container.tabfilter-container .tabfilter-item-label.selected .tabfilter-item-link[data-counter]::after {
display: none; }
.filter-container.tabfilter-container .tabfilter-item-label.focused {
@@ -2450,19 +2442,34 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
pointer-events: none; }
.filter-container.tabfilter-container .tabfilter-item-label .icon-filter.tabfilter-item-link[data-counter]::after {
display: none; }
+ .filter-container.tabfilter-container .tabfilter-item-label.ui-sortable-helper {
+ background-color: #ffffff; }
.filter-container.tabfilter-container .tabfilter-item-link {
+ position: relative;
display: inline-block;
- color: #ffffff;
+ color: #000000;
border: 1px transparent;
line-height: 22px;
vertical-align: middle;
- padding: 0 8px; }
+ padding: 0 8px 7px 8px;
+ margin-bottom: -7px; }
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label.ui-sortable-helper + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before,
+ .filter-container.tabfilter-container .ui-sortable-container .tabfilter-item-label:not(.selected) + .tabfilter-item-label.ui-sortable-handle:not(.selected, .ui-sortable-helper) .tabfilter-item-link::before {
+ content: ' ';
+ position: absolute;
+ top: 1px;
+ left: -3px;
+ display: inline-block;
+ height: 20px;
+ border-left: 1px solid #768d99; }
.filter-container.tabfilter-container .icon-edit {
width: 24px;
height: 22px;
- background: url("../img/icon-sprite.svg?20211222") no-repeat -354px -621px;
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -42px -621px;
cursor: pointer;
margin: 0;
+ padding-bottom: 7px !important;
+ margin-bottom: -7px;
vertical-align: middle;
display: inline-block;
opacity: 0; }
@@ -2473,9 +2480,9 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
margin-left: .4em;
padding: 0.1em 0.4em;
font-size: 0.917em;
- background-color: #f0f0f0;
+ background-color: #333333;
border-radius: 2px;
- color: #000000;
+ color: #ffffff;
content: attr(data-counter); }
[data-counter=""]::after {
@@ -2491,14 +2498,12 @@ div.dashboard-grid-widget-tophosts z-bar-gauge {
padding-right: 35px; }
.icon-filter::before {
- display: block;
+ vertical-align: middle;
+ display: inline-block;
width: 24px;
height: 24px;
content: '';
- background: url("../img/icon-sprite.svg?20211222") no-repeat -87px -547px; }
-
-.selected.expanded .icon-filter::before {
- background-position: -246px -547px; }
+ background: url("../img/icon-sprite.svg?20211222") no-repeat -246px -547px; }
.toc .toc-row {
padding: 8px 10px;
@@ -6710,7 +6715,7 @@ button.icon-action-command, button.icon-action-close, button.icon-action-msg, bu
color: #333333; }
.interfaces .interface-container.interface-container-header .interface-cell-action {
grid-column: span 2; }
- .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) .interface-cell:not(.interface-cell-details) {
+ .interfaces .interface-container:not(.interface-container-header):not(:empty) ~ .interface-container:not(:empty) :first-child .interface-cell:not(.interface-cell-details) {
padding-top: 10px;
margin-top: 5px;
border-top: 1px solid #888888; }
diff --git a/ui/disc_prototypes.php b/ui/disc_prototypes.php
index d4043cb6caf..311581fbd49 100644
--- a/ui/disc_prototypes.php
+++ b/ui/disc_prototypes.php
@@ -527,7 +527,7 @@ elseif (hasRequest('add') || hasRequest('update')) {
if ($db_item['type'] != ITEM_TYPE_HTTPAGENT) {
$allowed_fields += array_fill_keys([
- 'authtype', 'username', 'password', 'params', 'publickey', 'privatekey'
+ 'authtype', 'username', 'password', 'params', 'publickey', 'privatekey', 'interfaceid'
], true);
}
diff --git a/ui/include/classes/api/CApiService.php b/ui/include/classes/api/CApiService.php
index 4e59f706b27..82aeafc2c12 100644
--- a/ui/include/classes/api/CApiService.php
+++ b/ui/include/classes/api/CApiService.php
@@ -921,21 +921,78 @@ class CApiService {
continue;
}
- zbx_value2array($value);
+ $values = [];
+
+ switch ($tableSchema['fields'][$field]['type']) {
+ case DB::FIELD_TYPE_INT:
+ foreach ((array) $value as $val) {
+ if (!is_int($val) && (!is_string($val) || !preg_match('/^'.ZBX_PREG_INT.'$/', $val))) {
+ continue;
+ }
+
+ if ($val < ZBX_MIN_INT32 || $val > ZBX_MAX_INT32) {
+ continue;
+ }
+
+ $values[] = $val;
+ }
+ break;
+
+ case DB::FIELD_TYPE_ID:
+ foreach ((array) $value as $val) {
+ if (!is_int($val) && (!is_string($val) || !ctype_digit($val))) {
+ continue;
+ }
+
+ if ($val < 0 || bccomp((string) $val, ZBX_DB_MAX_ID) > 0) {
+ continue;
+ }
+
+ $values[] = $val;
+ }
+ break;
+
+ case DB::FIELD_TYPE_UINT:
+ foreach ((array) $value as $val) {
+ if (!is_int($val) && (!is_string($val) || !ctype_digit($val))) {
+ continue;
+ }
+
+ if (bccomp((string) $val, ZBX_MIN_INT64) < 0 || bccomp((string) $val, ZBX_MAX_INT64) > 0) {
+ continue;
+ }
+
+ $values[] = $val;
+ }
+ break;
+
+ case DB::FIELD_TYPE_FLOAT:
+ foreach ((array) $value as $val) {
+ if (!is_numeric($val)) {
+ continue;
+ }
+
+ $values[] = $val;
+ }
+ break;
+
+ default:
+ $values = (array) $value;
+ }
$fieldName = $this->fieldId($field, $tableShort);
switch ($tableSchema['fields'][$field]['type']) {
case DB::FIELD_TYPE_ID:
- $filter[$field] = dbConditionId($fieldName, $value);
+ $filter[$field] = dbConditionId($fieldName, $values);
break;
case DB::FIELD_TYPE_INT:
case DB::FIELD_TYPE_UINT:
- $filter[$field] = dbConditionInt($fieldName, $value);
+ $filter[$field] = dbConditionInt($fieldName, $values);
break;
default:
- $filter[$field] = dbConditionString($fieldName, $value);
+ $filter[$field] = dbConditionString($fieldName, $values);
}
}
diff --git a/ui/include/classes/api/services/CAuditLog.php b/ui/include/classes/api/services/CAuditLog.php
index e809b05eb18..883206369fe 100644
--- a/ui/include/classes/api/services/CAuditLog.php
+++ b/ui/include/classes/api/services/CAuditLog.php
@@ -75,48 +75,13 @@ class CAuditLog extends CApiService {
$result = [];
$fields = array_keys($this->getTableSchema($this->tableName())['fields']);
- $actions = [
- CAudit::ACTION_ADD, CAudit::ACTION_UPDATE, CAudit::ACTION_DELETE, CAudit::ACTION_LOGOUT,
- CAudit::ACTION_EXECUTE, CAudit::ACTION_LOGIN_SUCCESS, CAudit::ACTION_LOGIN_FAILED,
- CAudit::ACTION_HISTORY_CLEAR
- ];
- $resourcetype = [
- CAudit::RESOURCE_ACTION, CAudit::RESOURCE_AUTHENTICATION, CAudit::RESOURCE_AUTH_TOKEN,
- CAudit::RESOURCE_AUTOREGISTRATION, CAudit::RESOURCE_CORRELATION, CAudit::RESOURCE_DASHBOARD,
- CAudit::RESOURCE_DISCOVERY_RULE, CAudit::RESOURCE_GRAPH, CAudit::RESOURCE_GRAPH_PROTOTYPE,
- CAudit::RESOURCE_HOST, CAudit::RESOURCE_HOST_GROUP, CAudit::RESOURCE_HOST_PROTOTYPE,
- CAudit::RESOURCE_HOUSEKEEPING, CAudit::RESOURCE_ICON_MAP, CAudit::RESOURCE_IMAGE,
- CAudit::RESOURCE_ITEM, CAudit::RESOURCE_ITEM_PROTOTYPE, CAudit::RESOURCE_IT_SERVICE,
- CAudit::RESOURCE_MACRO, CAudit::RESOURCE_MAINTENANCE, CAudit::RESOURCE_MAP, CAudit::RESOURCE_MEDIA_TYPE,
- CAudit::RESOURCE_MODULE, CAudit::RESOURCE_PROXY, CAudit::RESOURCE_REGEXP, CAudit::RESOURCE_SCENARIO,
- CAudit::RESOURCE_SCHEDULED_REPORT, CAudit::RESOURCE_SCRIPT, CAudit::RESOURCE_SETTINGS, CAudit::RESOURCE_SLA,
- CAudit::RESOURCE_TEMPLATE, CAudit::RESOURCE_TEMPLATE_DASHBOARD, CAudit::RESOURCE_TRIGGER,
- CAudit::RESOURCE_TRIGGER_PROTOTYPE, CAudit::RESOURCE_USER, CAudit::RESOURCE_USER_GROUP,
- CAudit::RESOURCE_USER_ROLE, CAudit::RESOURCE_VALUE_MAP, CAudit::RESOURCE_HA_NODE
- ];
$api_input_rules = ['type' => API_OBJECT, 'fields' => [
// filter
'auditids' => ['type' => API_CUIDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
'userids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'auditid' => ['type' => API_CUIDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'userid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'clock' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'action' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', $actions)],
- 'resourcetype' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', $resourcetype)],
- 'ip' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'resourceid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'resourcename' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'username' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'recordsetid' => ['type' => API_CUIDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'username' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'ip' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'resourcename' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'details' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['auditid', 'userid', 'clock', 'action', 'resourcetype', 'ip', 'resourceid', 'resourcename', 'username', 'recordsetid']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['ip', 'resourcename', 'username', 'details']],
'time_from' => ['type' => API_INT32, 'flags' => API_ALLOW_NULL, 'default' => null],
'time_till' => ['type' => API_INT32, 'flags' => API_ALLOW_NULL, 'default' => null],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
diff --git a/ui/include/classes/api/services/CDashboard.php b/ui/include/classes/api/services/CDashboard.php
index a55593ebb97..a96680644cb 100644
--- a/ui/include/classes/api/services/CDashboard.php
+++ b/ui/include/classes/api/services/CDashboard.php
@@ -42,17 +42,8 @@ class CDashboard extends CDashboardGeneral {
$api_input_rules = ['type' => API_OBJECT, 'fields' => [
// filter
'dashboardids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'dashboardid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'userid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'private' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [PUBLIC_SHARING, PRIVATE_SHARING])],
- 'display_period' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', DASHBOARD_DISPLAY_PERIODS)],
- 'auto_start' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => '0,1']
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['dashboardid', 'name', 'userid', 'private', 'display_period', 'auto_start']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CHaNode.php b/ui/include/classes/api/services/CHaNode.php
index 00a5079f989..b790ffba9bb 100644
--- a/ui/include/classes/api/services/CHaNode.php
+++ b/ui/include/classes/api/services/CHaNode.php
@@ -48,11 +48,7 @@ class CHaNode extends CApiService {
$api_input_rules = ['type' => API_OBJECT, 'fields' => [
// filter
'ha_nodeids' => ['type' => API_CUIDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'address' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'status' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_NODE_STATUS_STANDBY, ZBX_NODE_STATUS_STOPPED, ZBX_NODE_STATUS_UNAVAILABLE, ZBX_NODE_STATUS_ACTIVE])]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name', 'address', 'status']],
// output
'output' => ['type' => API_OUTPUT, 'in' => implode(',', ['ha_nodeid', 'name', 'address', 'port', 'lastaccess', 'status']), 'default' => API_OUTPUT_EXTEND],
'countOutput' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CHistory.php b/ui/include/classes/api/services/CHistory.php
index 6a16d7ce812..04bf1563468 100644
--- a/ui/include/classes/api/services/CHistory.php
+++ b/ui/include/classes/api/services/CHistory.php
@@ -88,9 +88,6 @@ class CHistory extends CApiService {
$value_types = [ITEM_VALUE_TYPE_FLOAT, ITEM_VALUE_TYPE_STR, ITEM_VALUE_TYPE_LOG, ITEM_VALUE_TYPE_UINT64,
ITEM_VALUE_TYPE_TEXT
];
- $common_value_types = [ITEM_VALUE_TYPE_FLOAT, ITEM_VALUE_TYPE_STR, ITEM_VALUE_TYPE_UINT64,
- ITEM_VALUE_TYPE_TEXT
- ];
$api_input_rules = ['type' => API_OBJECT, 'fields' => [
// filter
@@ -100,42 +97,14 @@ class CHistory extends CApiService {
'time_from' => ['type' => API_INT32, 'flags' => API_ALLOW_NULL, 'default' => null],
'time_till' => ['type' => API_INT32, 'flags' => API_ALLOW_NULL, 'default' => null],
'filter' => ['type' => API_MULTIPLE, 'default' => null, 'rules' => [
- ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_LOG])], 'type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'fields' => [
- 'itemid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'clock' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'timestamp' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'source' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'severity' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'logeventid' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'ns' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_STR, ITEM_VALUE_TYPE_TEXT])], 'type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'fields' => [
- 'itemid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'clock' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'ns' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_UINT64])], 'type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'fields' => [
- 'itemid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'clock' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'ns' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'value' => ['type' => API_UINTS64, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_FLOAT])], 'type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'fields' => [
- 'itemid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'clock' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'ns' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'value' => ['type' => API_FLOATS, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]]
+ ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_LOG])], 'type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['itemid', 'clock', 'timestamp', 'source', 'severity', 'logeventid', 'ns']],
+ ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_STR, ITEM_VALUE_TYPE_TEXT])], 'type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['itemid', 'clock', 'ns']],
+ ['else' => true, 'type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['itemid', 'clock', 'ns', 'value']]
]],
'search' => ['type' => API_MULTIPLE, 'default' => null, 'rules' => [
- ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_LOG])], 'type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'fields' => [
- 'source' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'value' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_STR, ITEM_VALUE_TYPE_TEXT])], 'type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'fields' => [
- 'value' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_FLOAT, ITEM_VALUE_TYPE_UINT64])], 'type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'fields' => []]
+ ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_LOG])], 'type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['source', 'value']],
+ ['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_STR, ITEM_VALUE_TYPE_TEXT])], 'type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['value']],
+ ['else' => true, 'type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => []]
]],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
@@ -144,7 +113,7 @@ class CHistory extends CApiService {
// output
'output' => ['type' => API_MULTIPLE, 'default' => API_OUTPUT_EXTEND, 'rules' => [
['if' => ['field' => 'history', 'in' => implode(',', [ITEM_VALUE_TYPE_LOG])], 'type' => API_OUTPUT, 'in' => implode(',', ['itemid', 'clock', 'timestamp', 'source', 'severity', 'value', 'logeventid', 'ns'])],
- ['if' => ['field' => 'history', 'in' => implode(',', $common_value_types)], 'type' => API_OUTPUT, 'in' => implode(',', ['itemid', 'clock', 'value', 'ns'])]
+ ['else' => true, 'type' => API_OUTPUT, 'in' => implode(',', ['itemid', 'clock', 'value', 'ns'])]
]],
'countOutput' => ['type' => API_FLAG, 'default' => false],
// sort and limit
diff --git a/ui/include/classes/api/services/CHostPrototype.php b/ui/include/classes/api/services/CHostPrototype.php
index f1c9cba7388..154590e9a3d 100644
--- a/ui/include/classes/api/services/CHostPrototype.php
+++ b/ui/include/classes/api/services/CHostPrototype.php
@@ -48,18 +48,8 @@ class CHostPrototype extends CHostBase {
// filter
'hostids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
'discoveryids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'hostid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'host' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'status' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [HOST_STATUS_MONITORED, HOST_STATUS_NOT_MONITORED])],
- 'templateid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'inventory_mode' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [HOST_INVENTORY_DISABLED, HOST_INVENTORY_MANUAL, HOST_INVENTORY_AUTOMATIC])]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'host' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['hostid', 'host', 'name', 'status', 'templateid', 'inventory_mode']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['host', 'name']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CHttpTest.php b/ui/include/classes/api/services/CHttpTest.php
index ba768140d00..a61fa8475d7 100644
--- a/ui/include/classes/api/services/CHttpTest.php
+++ b/ui/include/classes/api/services/CHttpTest.php
@@ -294,7 +294,7 @@ class CHttpTest extends CApiService {
]],
'headers' => ['type' => API_OBJECTS, 'fields' => [
'name' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httptest_field', 'name')],
- 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httptest_field', 'value')]
+ 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED, 'length' => DB::getFieldLength('httptest_field', 'value')]
]],
'status' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STATUS_ACTIVE, HTTPTEST_STATUS_DISABLED])],
'authentication' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_KERBEROS, HTTPTEST_AUTH_DIGEST])],
@@ -320,7 +320,7 @@ class CHttpTest extends CApiService {
]],
'headers' => ['type' => API_OBJECTS, 'fields' => [
'name' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httpstep_field', 'name')],
- 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httpstep_field', 'value')]
+ 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED, 'length' => DB::getFieldLength('httpstep_field', 'value')]
]],
'follow_redirects' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STEP_FOLLOW_REDIRECTS_OFF, HTTPTEST_STEP_FOLLOW_REDIRECTS_ON])],
'retrieve_mode' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STEP_RETRIEVE_MODE_CONTENT, HTTPTEST_STEP_RETRIEVE_MODE_HEADERS, HTTPTEST_STEP_RETRIEVE_MODE_BOTH])],
@@ -432,7 +432,7 @@ class CHttpTest extends CApiService {
]],
'headers' => ['type' => API_OBJECTS, 'fields' => [
'name' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httptest_field', 'name')],
- 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httptest_field', 'value')]
+ 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED, 'length' => DB::getFieldLength('httptest_field', 'value')]
]],
'status' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STATUS_ACTIVE, HTTPTEST_STATUS_DISABLED])],
'authentication' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_KERBEROS, HTTPTEST_AUTH_DIGEST])],
@@ -459,7 +459,7 @@ class CHttpTest extends CApiService {
]],
'headers' => ['type' => API_OBJECTS, 'fields' => [
'name' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httpstep_field', 'name')],
- 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httpstep_field', 'value')]
+ 'value' => ['type' => API_STRING_UTF8, 'flags' => API_REQUIRED, 'length' => DB::getFieldLength('httpstep_field', 'value')]
]],
'follow_redirects' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STEP_FOLLOW_REDIRECTS_OFF, HTTPTEST_STEP_FOLLOW_REDIRECTS_ON])],
'retrieve_mode' => ['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STEP_RETRIEVE_MODE_CONTENT, HTTPTEST_STEP_RETRIEVE_MODE_HEADERS, HTTPTEST_STEP_RETRIEVE_MODE_BOTH])],
diff --git a/ui/include/classes/api/services/CModule.php b/ui/include/classes/api/services/CModule.php
index 34c7f23ef2d..b2190d10e98 100644
--- a/ui/include/classes/api/services/CModule.php
+++ b/ui/include/classes/api/services/CModule.php
@@ -51,15 +51,8 @@ class CModule extends CApiService {
$api_input_rules = ['type' => API_OBJECT, 'fields' => [
// filter
'moduleids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'moduleid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'id' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'relative_path' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'status' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [MODULE_STATUS_DISABLED, MODULE_STATUS_ENABLED])]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'relative_path' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['moduleid', 'id', 'relative_path', 'status']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['relative_path']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CRegexp.php b/ui/include/classes/api/services/CRegexp.php
index 206e241d53e..caf978023f9 100644
--- a/ui/include/classes/api/services/CRegexp.php
+++ b/ui/include/classes/api/services/CRegexp.php
@@ -52,14 +52,8 @@ class CRegexp extends CApiService {
$api_input_rules = ['type' => API_OBJECT, 'fields' => [
// filter
'regexpids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'regexpid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'test_string' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['regexpid', 'name']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name', 'test_string']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CReport.php b/ui/include/classes/api/services/CReport.php
index a7805596b83..a6385f09008 100644
--- a/ui/include/classes/api/services/CReport.php
+++ b/ui/include/classes/api/services/CReport.php
@@ -64,17 +64,8 @@ class CReport extends CApiService {
// filter
'reportids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
'expired' => ['type' => API_BOOLEAN, 'flags' => API_ALLOW_NULL, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'reportid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'userid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'dashboardid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'status' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => ZBX_REPORT_STATUS_DISABLED.','.ZBX_REPORT_STATUS_ENABLED],
- 'state' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_REPORT_STATE_UNKNOWN, ZBX_REPORT_STATE_SENT, ZBX_REPORT_STATE_ERROR, ZBX_REPORT_STATE_SUCCESS_INFO])]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['reportid', 'userid', 'name', 'dashboardid', 'status', 'state']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CRole.php b/ui/include/classes/api/services/CRole.php
index 5fe931e9d39..34ff83732d4 100644
--- a/ui/include/classes/api/services/CRole.php
+++ b/ui/include/classes/api/services/CRole.php
@@ -64,15 +64,8 @@ class CRole extends CApiService {
$api_input_rules = ['type' => API_OBJECT, 'fields' => [
// filter
'roleids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'roleid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'type' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [USER_TYPE_ZABBIX_USER, USER_TYPE_ZABBIX_ADMIN, USER_TYPE_SUPER_ADMIN])],
- 'readonly' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => '0,1']
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['roleid', 'name', 'type', 'readonly']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CScript.php b/ui/include/classes/api/services/CScript.php
index 288d723f905..d7c0f477855 100644
--- a/ui/include/classes/api/services/CScript.php
+++ b/ui/include/classes/api/services/CScript.php
@@ -77,27 +77,8 @@ class CScript extends CApiService {
'hostids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
'groupids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
'usrgrpids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'scriptid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'command' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'host_access' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [PERM_READ, PERM_READ_WRITE])],
- 'usrgrpid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'groupid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'confirmation' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'type' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT, ZBX_SCRIPT_TYPE_IPMI, ZBX_SCRIPT_TYPE_SSH, ZBX_SCRIPT_TYPE_TELNET, ZBX_SCRIPT_TYPE_WEBHOOK])],
- 'execute_on' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_SCRIPT_EXECUTE_ON_AGENT, ZBX_SCRIPT_EXECUTE_ON_SERVER, ZBX_SCRIPT_EXECUTE_ON_PROXY])],
- 'scope' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_SCRIPT_SCOPE_ACTION, ZBX_SCRIPT_SCOPE_HOST, ZBX_SCRIPT_SCOPE_EVENT])],
- 'menu_path' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'command' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'description' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'confirmation' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'username' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'menu_path' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['scriptid', 'name', 'command', 'host_access', 'usrgrpid', 'groupid', 'confirmation', 'type', 'execute_on', 'scope', 'menu_path']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name', 'command', 'description', 'confirmation', 'username', 'menu_path']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CService.php b/ui/include/classes/api/services/CService.php
index 061e3facfd9..fba33b992a3 100644
--- a/ui/include/classes/api/services/CService.php
+++ b/ui/include/classes/api/services/CService.php
@@ -74,16 +74,8 @@ class CService extends CApiService {
]],
'without_problem_tags' => ['type' => API_BOOLEAN, 'default' => false],
'slaids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'uuid' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'serviceid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'status' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', array_merge([ZBX_SEVERITY_OK], range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)))],
- 'algorithm' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_SERVICE_STATUS_CALC_SET_OK, ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ALL, ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ONE])]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['uuid', 'serviceid', 'name', 'status', 'algorithm']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CSla.php b/ui/include/classes/api/services/CSla.php
index 1e89bd6587a..61cfe5e52fc 100644
--- a/ui/include/classes/api/services/CSla.php
+++ b/ui/include/classes/api/services/CSla.php
@@ -54,20 +54,8 @@ class CSla extends CApiService {
'operator' => ['type' => API_INT32, 'in' => implode(',', [TAG_OPERATOR_LIKE, TAG_OPERATOR_EQUAL, TAG_OPERATOR_NOT_LIKE, TAG_OPERATOR_NOT_EQUAL, TAG_OPERATOR_EXISTS, TAG_OPERATOR_NOT_EXISTS])]
]],
'serviceids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'slaid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'period' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_SLA_PERIOD_DAILY, ZBX_SLA_PERIOD_WEEKLY, ZBX_SLA_PERIOD_MONTHLY, ZBX_SLA_PERIOD_QUARTERLY, ZBX_SLA_PERIOD_ANNUALLY])],
- 'slo' => ['type' => API_FLOATS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => '0:100'],
- 'effective_date' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => '0:'.ZBX_MAX_DATE],
- 'timezone' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', array_merge([ZBX_DEFAULT_TIMEZONE], array_keys(CTimezoneHelper::getList())))],
- 'status' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_SLA_STATUS_DISABLED, ZBX_SLA_STATUS_ENABLED])]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'timezone' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'description' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['slaid', 'name', 'period', 'slo', 'effective_date', 'timezone', 'status']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name', 'timezone', 'description']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CTemplateDashboard.php b/ui/include/classes/api/services/CTemplateDashboard.php
index 79de6c709fb..1d6c7ead986 100644
--- a/ui/include/classes/api/services/CTemplateDashboard.php
+++ b/ui/include/classes/api/services/CTemplateDashboard.php
@@ -43,17 +43,8 @@ class CTemplateDashboard extends CDashboardGeneral {
// filter
'dashboardids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
'templateids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'uuid' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'dashboardid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'templateid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'display_period' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', DASHBOARD_DISPLAY_PERIODS)],
- 'auto_start' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => '0,1']
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['uuid', 'dashboardid', 'name', 'templateid', 'display_period', 'auto_start']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CToken.php b/ui/include/classes/api/services/CToken.php
index af9f09b0124..9757c071984 100644
--- a/ui/include/classes/api/services/CToken.php
+++ b/ui/include/classes/api/services/CToken.php
@@ -55,20 +55,8 @@ class CToken extends CApiService {
'token' => ['type' => API_STRING_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'length' => 64, 'default' => null],
'valid_at' => ['type' => API_INT32, 'flags' => API_ALLOW_NULL, 'default' => null],
'expired_at' => ['type' => API_INT32, 'flags' => API_ALLOW_NULL, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'tokenid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'userid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'lastaccess' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'status' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'in' => implode(',', [ZBX_AUTH_TOKEN_ENABLED, ZBX_AUTH_TOKEN_DISABLED])],
- 'expires_at' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'created_at' => ['type' => API_INTS32, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'creator_userid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'description' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['tokenid', 'name', 'userid', 'lastaccess', 'status', 'expires_at', 'created_at', 'creator_userid']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name', 'description']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/api/services/CValueMap.php b/ui/include/classes/api/services/CValueMap.php
index e1842a0ea6d..d4e9d99382f 100644
--- a/ui/include/classes/api/services/CValueMap.php
+++ b/ui/include/classes/api/services/CValueMap.php
@@ -47,14 +47,8 @@ class CValueMap extends CApiService {
// filter
'valuemapids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
'hostids' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE, 'default' => null],
- 'filter' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'valuemapid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'hostid' => ['type' => API_IDS, 'flags' => API_ALLOW_NULL | API_NORMALIZE],
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
- 'search' => ['type' => API_OBJECT, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => [
- 'name' => ['type' => API_STRINGS_UTF8, 'flags' => API_ALLOW_NULL | API_NORMALIZE]
- ]],
+ 'filter' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['valuemapid', 'hostid', 'name']],
+ 'search' => ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'default' => null, 'fields' => ['name']],
'searchByAny' => ['type' => API_BOOLEAN, 'default' => false],
'startSearch' => ['type' => API_FLAG, 'default' => false],
'excludeSearch' => ['type' => API_FLAG, 'default' => false],
diff --git a/ui/include/classes/core/Manager.php b/ui/include/classes/core/Manager.php
index 0d6ad693448..b00a35a5490 100644
--- a/ui/include/classes/core/Manager.php
+++ b/ui/include/classes/core/Manager.php
@@ -56,14 +56,15 @@ class Manager extends CRegistryFactory {
if ($instance === null) {
$instance = self::getInstance()->getObject('history');
+ $dbversion_status = CSettingsHelper::getDbVersionStatus();
- $dbversion_status = CSettingsHelper::getGlobal(CSettingsHelper::DBVERSION_STATUS);
+ foreach ($dbversion_status as $dbversion) {
+ if (array_key_exists('history_pk', $dbversion)) {
+ if ($dbversion['history_pk'] == 1) {
+ $instance->setPrimaryKeysEnabled();
+ }
- if ($dbversion_status !== '') {
- $dbversion_status = json_decode($dbversion_status, true);
- if ($dbversion_status !== null && array_key_exists('history_pk', $dbversion_status)
- && $dbversion_status['history_pk'] == 1) {
- $instance->setPrimaryKeysEnabled();
+ break;
}
}
}
diff --git a/ui/include/classes/helpers/CHousekeepingHelper.php b/ui/include/classes/helpers/CHousekeepingHelper.php
index ebf49f1a56e..8cb781cb459 100644
--- a/ui/include/classes/helpers/CHousekeepingHelper.php
+++ b/ui/include/classes/helpers/CHousekeepingHelper.php
@@ -46,6 +46,12 @@ class CHousekeepingHelper extends CConfigGeneralHelper {
public const HK_TRENDS_GLOBAL = 'hk_trends_global';
public const HK_TRENDS_MODE = 'hk_trends_mode';
+ public const OVERRIDE_NEEDED_HISTORY = 'hk_needs_override_history';
+ public const OVERRIDE_NEEDED_TRENDS = 'hk_needs_override_trends';
+
+ private const DBVERSION_COMPRESSED_CHUNKS_HISTORY = 'compressed_chunks_history';
+ private const DBVERSION_COMPRESSED_CHUNKS_TRENDS = 'compressed_chunks_trends';
+
/**
* Housekeeping API object parameters array.
*
@@ -67,4 +73,34 @@ class CHousekeepingHelper extends CConfigGeneralHelper {
}
}
}
+
+ /**
+ * @param array $dbversion_status
+ *
+ * @return array
+ */
+ public static function getWarnings(array $dbversion_status): array {
+ $warnings = [];
+
+ foreach ($dbversion_status as $dbversion) {
+ if ($dbversion['database'] === ZBX_DB_EXTENSION_TIMESCALEDB) {
+ $compression_available = array_key_exists('compression_availability', $dbversion)
+ && $dbversion['compression_availability'];
+
+ if ($compression_available) {
+ $warnings[self::OVERRIDE_NEEDED_HISTORY] =
+ array_key_exists(self::DBVERSION_COMPRESSED_CHUNKS_HISTORY, $dbversion)
+ && $dbversion[self::DBVERSION_COMPRESSED_CHUNKS_HISTORY] == 1;
+
+ $warnings[self::OVERRIDE_NEEDED_TRENDS] =
+ array_key_exists(self::DBVERSION_COMPRESSED_CHUNKS_TRENDS, $dbversion)
+ && $dbversion[self::DBVERSION_COMPRESSED_CHUNKS_TRENDS] == 1;
+ }
+
+ break;
+ }
+ }
+
+ return array_filter($warnings);
+ }
}
diff --git a/ui/include/classes/helpers/CMessageHelper.php b/ui/include/classes/helpers/CMessageHelper.php
index b79b1dc1c74..1ae461866cb 100644
--- a/ui/include/classes/helpers/CMessageHelper.php
+++ b/ui/include/classes/helpers/CMessageHelper.php
@@ -74,7 +74,7 @@ class CMessageHelper {
self::addWarning($message['message']);
}
else {
- self::addError($message['message'], $message['source']);
+ self::addError($message['message'], $message['is_technical_error']);
}
}
@@ -82,9 +82,9 @@ class CMessageHelper {
* Add message with type error.
*
* @param string $message
- * @param string $source
+ * @param bool $is_technical_error
*/
- public static function addError(string $message, string $source = ''): void {
+ public static function addError(string $message, bool $is_technical_error = false): void {
if (self::$type === null) {
self::$type = self::MESSAGE_TYPE_ERROR;
}
@@ -92,7 +92,7 @@ class CMessageHelper {
self::$messages[] = [
'type' => self::MESSAGE_TYPE_ERROR,
'message' => $message,
- 'source' => $source
+ 'is_technical_error' => $is_technical_error
];
}
diff --git a/ui/include/classes/helpers/CSettingsHelper.php b/ui/include/classes/helpers/CSettingsHelper.php
index 4cf2f4abe6a..d61e8593cc1 100644
--- a/ui/include/classes/helpers/CSettingsHelper.php
+++ b/ui/include/classes/helpers/CSettingsHelper.php
@@ -128,4 +128,17 @@ class CSettingsHelper extends CConfigGeneralHelper {
return array_key_exists($name, self::$params) ? self::$params[$name] : null;
}
+
+ /**
+ * @return array
+ */
+ public static function getDbVersionStatus(): array {
+ $dbversion_status = json_decode((string) self::getGlobal(self::DBVERSION_STATUS), true);
+
+ if (!is_array($dbversion_status)) {
+ return [];
+ }
+
+ return $dbversion_status;
+ }
}
diff --git a/ui/include/classes/helpers/CSystemInfoHelper.php b/ui/include/classes/helpers/CSystemInfoHelper.php
index 841f6496c12..9fb03e7c617 100644
--- a/ui/include/classes/helpers/CSystemInfoHelper.php
+++ b/ui/include/classes/helpers/CSystemInfoHelper.php
@@ -44,18 +44,17 @@ class CSystemInfoHelper {
$db_backend = DB::getDbBackend();
$data['encoding_warning'] = $db_backend->checkEncoding() ? '' : $db_backend->getWarning();
- $dbversion_status = CSettingsHelper::getGlobal(CSettingsHelper::DBVERSION_STATUS);
+ $dbversion_status = CSettingsHelper::getDbVersionStatus();
- if ($dbversion_status !== '') {
- $dbversion_status = json_decode($dbversion_status, true);
+ foreach ($dbversion_status as $dbversion) {
+ if (array_key_exists('history_pk', $dbversion)) {
+ $data['history_pk'] = ($dbversion['history_pk'] == 1);
- if (array_key_exists('history_pk', $dbversion_status)) {
- $data['history_pk'] = ($dbversion_status['history_pk'] == 1);
+ break;
}
}
- else {
- $dbversion_status = [];
- }
+
+ $data += CHousekeepingHelper::getWarnings($dbversion_status);
$ha_cluster_enabled = false;
diff --git a/ui/include/classes/mvc/CRouter.php b/ui/include/classes/mvc/CRouter.php
index 22ed28503a2..ee026fb825a 100644
--- a/ui/include/classes/mvc/CRouter.php
+++ b/ui/include/classes/mvc/CRouter.php
@@ -206,7 +206,7 @@ class CRouter {
'popup.valuemap.update' => ['CControllerPopupValueMapUpdate', 'layout.json', null],
'popup.tophosts.column.edit' => ['CControllerPopupTopHostsColumnEdit', 'layout.json', 'popup.tophosts.column.edit'],
'problem.view' => ['CControllerProblemView', 'layout.htmlpage', 'monitoring.problem.view'],
- 'problem.view.refresh' => ['CControllerProblemViewRefresh', 'layout.json', null],
+ 'problem.view.refresh' => ['CControllerProblemViewRefresh', 'layout.json', 'monitoring.problem.view.refresh'],
'problem.view.csv' => ['CControllerProblemView', 'layout.csv', 'monitoring.problem.view'],
'profile.update' => ['CControllerProfileUpdate', 'layout.json', null],
'proxy.create' => ['CControllerProxyCreate', null, null],
diff --git a/ui/include/classes/screens/CScreenProblem.php b/ui/include/classes/screens/CScreenProblem.php
index 33de9db5730..a1476a3b89f 100644
--- a/ui/include/classes/screens/CScreenProblem.php
+++ b/ui/include/classes/screens/CScreenProblem.php
@@ -751,7 +751,7 @@ class CScreenProblem extends CScreenBase {
$data = self::getData($this->data['filter'], true);
$data = self::sortData($data, $this->data['sort'], $this->data['sortorder']);
- if ($this->data['action'] === 'problem.view') {
+ if ($this->data['action'] === 'problem.view' || $this->data['action'] === 'problem.view.refresh') {
$paging = CPagerHelper::paginate($this->page, $data['problems'], ZBX_SORT_UP, $url);
}
@@ -783,7 +783,7 @@ class CScreenProblem extends CScreenBase {
? OPERATIONAL_DATA_SHOW_NONE
: $this->data['filter']['show_opdata'];
- if ($this->data['action'] === 'problem.view') {
+ if ($this->data['action'] === 'problem.view' || $this->data['action'] === 'problem.view.refresh') {
$form = (new CForm('post', 'zabbix.php'))
->setId('problem_form')
->setName('problem')
@@ -1134,7 +1134,7 @@ class CScreenProblem extends CScreenBase {
]
], 'problem');
- return $this->getOutput($form->addItem([$table, $paging, $footer]), true, $this->data);
+ return $this->getOutput($form->addItem([$table, $paging, $footer]), false, $this->data);
}
/*
diff --git a/ui/include/classes/services/CTabFilterProfile.php b/ui/include/classes/services/CTabFilterProfile.php
index 48d336999bb..9925ea7fd7d 100644
--- a/ui/include/classes/services/CTabFilterProfile.php
+++ b/ui/include/classes/services/CTabFilterProfile.php
@@ -308,6 +308,18 @@ class CTabFilterProfile {
}
/**
+ * Reset default filter profile.
+ */
+ public function reset(): CTabFilterProfile {
+ if ($this->selected == 0) {
+ $this->setTabFilter($this->selected, ['filter_name' => '']);
+ $this->update();
+ }
+
+ return $this;
+ }
+
+ /**
* Get tab filters data only for fields having non default value.
*
* @return array
diff --git a/ui/include/classes/validators/CApiInputValidator.php b/ui/include/classes/validators/CApiInputValidator.php
index 07b022ce146..7a41a8469a4 100644
--- a/ui/include/classes/validators/CApiInputValidator.php
+++ b/ui/include/classes/validators/CApiInputValidator.php
@@ -102,6 +102,15 @@ class CApiInputValidator {
case API_UINTS64:
return self::validateUInts64($rule, $data, $path, $error);
+ case API_FILTER:
+ return self::validateFilter($rule, $data, $path, $error);
+
+ case API_FILTER_VALUES:
+ return self::validateFilterValues($rule, $data, $path, $error);
+
+ case API_FILTER_VALUE:
+ return self::validateFilterValue($rule, $data, $path, $error);
+
case API_FLOAT:
return self::validateFloat($rule, $data, $path, $error);
@@ -256,6 +265,9 @@ class CApiInputValidator {
case API_INT32_RANGES:
case API_UINT64:
case API_UINTS64:
+ case API_FILTER:
+ case API_FILTER_VALUES:
+ case API_FILTER_VALUE:
case API_FLOAT:
case API_FLOATS:
case API_ID:
@@ -657,7 +669,7 @@ class CApiInputValidator {
return false;
}
- if (bccomp($data, ZBX_MIN_INT32) == -1 || bccomp($data, ZBX_MAX_INT32) == 1) {
+ if ($data < ZBX_MIN_INT32 || $data > ZBX_MAX_INT32) {
$error = _s('Invalid parameter "%1$s": %2$s.', $path, _('a number is too large'));
return false;
}
@@ -762,6 +774,97 @@ class CApiInputValidator {
}
/**
+ * Filter validator.
+ *
+ * @param array $rule
+ * @param int $rule['flags'] (optional) API_ALLOW_NULL
+ * @param array $rule['fields']
+ * @param mixed $data
+ * @param string $path
+ * @param string $error
+ *
+ * @return bool
+ */
+ private static function validateFilter($rule, &$data, $path, &$error) {
+ $rule['fields'] = array_flip($rule['fields']);
+
+ foreach ($rule['fields'] as &$field_rule) {
+ $field_rule = ['type' => API_FILTER_VALUES, 'flags' => API_ALLOW_NULL | API_NORMALIZE];
+ }
+ unset($field_rule);
+
+ return self::validateData(['type' => API_OBJECT] + $rule, $data, $path, $error);
+ }
+
+ /**
+ * Filter values validator.
+ *
+ * @param array $rule
+ * @param int $rule['flags'] (optional) API_ALLOW_NULL, API_NORMALIZE
+ * @param mixed $data
+ * @param string $path
+ * @param string $error
+ *
+ * @return bool
+ */
+ private static function validateFilterValues($rule, &$data, $path, &$error) {
+ $flags = array_key_exists('flags', $rule) ? $rule['flags'] : 0x00;
+
+ if (($flags & API_ALLOW_NULL) && $data === null) {
+ return true;
+ }
+
+ if (($flags & API_NORMALIZE) && self::validateFilterValue([], $data, '', $e)) {
+ $data = [$data];
+ }
+ unset($e);
+
+ if (!is_array($data)) {
+ $error = _s('Invalid parameter "%1$s": %2$s.', $path, _('an array is expected'));
+ return false;
+ }
+
+ $data = array_values($data);
+ $rules = ['type' => API_FILTER_VALUE];
+
+ foreach ($data as $index => &$value) {
+ $subpath = ($path === '/' ? $path : $path.'/').($index + 1);
+ if (!self::validateData($rules, $value, $subpath, $error)) {
+ return false;
+ }
+ }
+ unset($value);
+
+ return true;
+ }
+
+ /**
+ * Filter value validator.
+ *
+ * @param array $rule
+ * @param mixed $data
+ * @param string $path
+ * @param string $error
+ *
+ * @return bool
+ */
+ private static function validateFilterValue($rule, &$data, $path, &$error) {
+ if (!is_string($data) && !is_double($data) && !is_int($data)) {
+ $error = _s('Invalid parameter "%1$s": %2$s.', $path,
+ _('a character string, integer or floating point value is expected')
+ );
+ return false;
+ }
+
+ if (is_string($data) && mb_check_encoding($data, 'UTF-8') !== true) {
+ $error = _s('Invalid parameter "%1$s": %2$s.', $path, _('invalid byte sequence in UTF-8'));
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
* Floating point number validator.
*
* @param array $rule
diff --git a/ui/include/db.inc.php b/ui/include/db.inc.php
index f4bbf8bea0e..c289d095f97 100644
--- a/ui/include/db.inc.php
+++ b/ui/include/db.inc.php
@@ -245,14 +245,14 @@ function DBselect($query, $limit = null, $offset = 0) {
$result = mysqli_query($DB['DB'], $query);
}
catch (mysqli_sql_exception $e) {
- error('Error in query ['.$query.'] ['.$e->getMessage().']', 'sql');
+ trigger_error('Error in query ['.$query.'] ['.$e->getMessage().']', E_USER_WARNING);
}
break;
case ZBX_DB_POSTGRESQL:
if (!$result = pg_query($DB['DB'], $query)) {
- error('Error in query ['.$query.'] ['.pg_last_error($DB['DB']).']', 'sql');
+ error('Error in query ['.$query.'] ['.pg_last_error($DB['DB']).']', true);
}
break;
@@ -262,14 +262,14 @@ function DBselect($query, $limit = null, $offset = 0) {
if ($result === false) {
$e = oci_error();
- error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', 'sql');
+ error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', true);
break;
}
if (!@oci_execute($result, ($DB['TRANSACTIONS'] ? OCI_DEFAULT : OCI_COMMIT_ON_SUCCESS))) {
$e = oci_error($result);
- error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', 'sql');
+ error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', true);
}
break;
@@ -317,7 +317,7 @@ function DBaddLimit($query, $limit = 0, $offset = 0) {
if ((isset($limit) && ($limit < 0 || !zbx_ctype_digit($limit))) || $offset < 0 || !zbx_ctype_digit($offset)) {
$moreDetails = isset($limit) ? ' Limit ['.$limit.'] Offset ['.$offset.']' : ' Offset ['.$offset.']';
- error('Incorrect parameters for limit and/or offset. Query ['.$query.']'.$moreDetails, 'sql');
+ error('Incorrect parameters for limit and/or offset. Query ['.$query.']'.$moreDetails, true);
return false;
}
@@ -364,14 +364,14 @@ function DBexecute($query): bool {
$result = mysqli_query($DB['DB'], $query);
}
catch (mysqli_sql_exception $e) {
- error('Error in query ['.$query.'] ['.$e->getMessage().']', 'sql');
+ trigger_error('Error in query ['.$query.'] ['.$e->getMessage().']', E_USER_WARNING);
}
break;
case ZBX_DB_POSTGRESQL:
if (!$result = (bool) pg_query($DB['DB'], $query)) {
- error('Error in query ['.$query.'] ['.pg_last_error($DB['DB']).']', 'sql');
+ error('Error in query ['.$query.'] ['.pg_last_error($DB['DB']).']', true);
}
break;
@@ -381,14 +381,14 @@ function DBexecute($query): bool {
if ($result === false) {
$e = oci_error();
- error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', 'sql');
+ error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', true);
break;
}
if (!@oci_execute($result, ($DB['TRANSACTIONS'] ? OCI_DEFAULT : OCI_COMMIT_ON_SUCCESS))) {
$e = oci_error($result);
- error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', 'sql');
+ error('SQL error ['.$e['message'].'] in ['.$e['sqltext'].']', true);
}
$result = true;
diff --git a/ui/include/defines.inc.php b/ui/include/defines.inc.php
index 7de88fb2977..ab15e5c9d37 100644
--- a/ui/include/defines.inc.php
+++ b/ui/include/defines.inc.php
@@ -18,8 +18,8 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
-define('ZABBIX_VERSION', '6.0.9rc1');
-define('ZABBIX_API_VERSION', '6.0.9');
+define('ZABBIX_VERSION', '6.0.10rc1');
+define('ZABBIX_API_VERSION', '6.0.10');
define('ZABBIX_EXPORT_VERSION', '6.0');
define('ZABBIX_DB_VERSION', 6000000);
@@ -50,6 +50,8 @@ define('ZBX_MIN_PERIOD', 60); // 1 minute
define('ZBX_MIN_INT32', -2147483648);
define('ZBX_MAX_INT32', 2147483647);
+define('ZBX_MIN_INT64', '-9223372036854775808');
+define('ZBX_MAX_INT64', '9223372036854775807');
define('ZBX_MAX_UINT64', '18446744073709551615');
// Double precision 64-bit float.
@@ -1364,6 +1366,7 @@ define('API_BOOLEAN', 4);
define('API_FLAG', 5);
define('API_FLOAT', 6);
define('API_UINT64', 7);
+define('API_FILTER_VALUE', 58);
// arrays
define('API_OBJECT', 8);
define('API_IDS', 9);
@@ -1374,6 +1377,7 @@ define('API_FLOATS', 13);
define('API_UINTS64', 14);
define('API_CUIDS', 44);
define('API_USER_MACROS', 52);
+define('API_FILTER_VALUES', 57);
// specific types
define('API_HG_NAME', 15);
define('API_SCRIPT_MENU_PATH', 16);
@@ -1413,6 +1417,7 @@ define('API_UNEXPECTED', 51);
define('API_INT32_RANGES', 53);
define('API_LAT_LNG_ZOOM', 54);
define('API_TIMESTAMP', 55);
+define('API_FILTER', 56);
// flags
define('API_REQUIRED', 0x00001);
diff --git a/ui/include/forms.inc.php b/ui/include/forms.inc.php
index e7ef0998b8d..3e29819ee62 100644
--- a/ui/include/forms.inc.php
+++ b/ui/include/forms.inc.php
@@ -1816,7 +1816,8 @@ function getTriggerFormData(array $data) {
$db_hosts = API::Host()->get([
'output' => [],
'selectTags' => ['tag', 'value'],
- 'hostids' => $data['hostid']
+ 'hostids' => $data['hostid'],
+ 'templated_hosts' => true
]);
if ($db_hosts) {
diff --git a/ui/include/func.inc.php b/ui/include/func.inc.php
index 13b952afacc..e513cc6ec34 100644
--- a/ui/include/func.inc.php
+++ b/ui/include/func.inc.php
@@ -1805,8 +1805,7 @@ function filter_messages(): array {
$generic_exists = false;
foreach ($messages as $message) {
- if ($message['type'] === CMessageHelper::MESSAGE_TYPE_ERROR
- && ($message['source'] === 'sql' || $message['source'] === 'php')) {
+ if ($message['type'] === CMessageHelper::MESSAGE_TYPE_ERROR && $message['is_technical_error']) {
if (!$generic_exists) {
CMessageHelper::addError(_('System error occurred. Please contact Zabbix administrator.'));
$generic_exists = true;
@@ -2092,17 +2091,17 @@ function warning($messages): void {
}
}
-/*
+/**
* Add an error to global message array.
*
- * @param string | array $msg Error message text.
- * @param string $src The source of error message.
+ * @param string|array $msgs Error message text.
+ * @param bool $is_technical_error
*/
-function error($msgs, string $src = ''): void {
+function error($msgs, bool $is_technical_error = false): void {
$msgs = zbx_toArray($msgs);
foreach ($msgs as $msg) {
- CMessageHelper::addError($msg, $src);
+ CMessageHelper::addError($msg, $is_technical_error);
}
}
@@ -2356,7 +2355,7 @@ function zbx_err_handler($errno, $errstr, $errfile, $errline) {
}
// Don't show the call to this handler function.
- error($errstr.' ['.CProfiler::getInstance()->formatCallStack().']', 'php');
+ error($errstr.' ['.CProfiler::getInstance()->formatCallStack().']', true);
return false;
}
diff --git a/ui/include/maps.inc.php b/ui/include/maps.inc.php
index 6b188f094f5..3809baba37d 100644
--- a/ui/include/maps.inc.php
+++ b/ui/include/maps.inc.php
@@ -715,11 +715,14 @@ function getSelementsInfo(array $sysmap, array $options = []): array {
$problems_by_trigger[$problem['objectid']][] = $problem;
}
- foreach ($selements as &$selement) {
- $selement['triggers'] = array_map(function ($trigger) use ($problems_by_trigger, $selement) {
+ foreach ($selements as $num => $selement) {
+ foreach ($selement['triggers'] as $trigger) {
+ if ($trigger['status'] == TRIGGER_STATUS_DISABLED) {
+ continue;
+ }
+
$filtered_problems = $problems_by_trigger[$trigger['triggerid']];
- // Check if $filtered_problems tags match $selement filter tags.
if ($selement['elementtype'] == SYSMAP_ELEMENT_TYPE_HOST
|| $selement['elementtype'] == SYSMAP_ELEMENT_TYPE_HOST_GROUP) {
$filtered_problems = getProblemsMatchingTags($filtered_problems, $selement['tags'],
@@ -727,12 +730,9 @@ function getSelementsInfo(array $sysmap, array $options = []): array {
);
}
- $trigger['problems'] = $filtered_problems;
-
- return $trigger;
- }, $selement['triggers']);
+ $selements[$num]['triggers'][$trigger['triggerid']]['problems'] = $filtered_problems;
+ }
}
- unset($selement);
$info = [];
@@ -804,41 +804,39 @@ function getSelementsInfo(array $sysmap, array $options = []): array {
continue;
}
- if (array_key_exists('problems', $trigger)) {
- foreach ($trigger['problems'] as $problem) {
- if ($problem['r_clock'] == 0) {
- $i['problem']++;
+ foreach ($trigger['problems'] as $problem) {
+ if ($problem['r_clock'] == 0) {
+ $i['problem']++;
- if ($problem['acknowledged'] == EVENT_NOT_ACKNOWLEDGED) {
- $i['problem_unack']++;
- }
+ if ($problem['acknowledged'] == EVENT_NOT_ACKNOWLEDGED) {
+ $i['problem_unack']++;
+ }
- if (!$critical_problem || $critical_problem['severity'] < $problem['severity']) {
- $critical_problem = $problem;
- }
- elseif ($critical_problem['severity'] === $problem['severity']) {
- if ($selement['elementtype'] == SYSMAP_ELEMENT_TYPE_TRIGGER) {
- if ($critical_problem['objectid'] === $problem['objectid']
- && $critical_problem['eventid'] < $problem['eventid']) {
- $critical_problem = $problem;
- }
- elseif (array_search($critical_problem['objectid'], $trigger_order)
- > array_search($problem['objectid'], $trigger_order)) {
- $critical_problem = $problem;
- }
+ if (!$critical_problem || $critical_problem['severity'] < $problem['severity']) {
+ $critical_problem = $problem;
+ }
+ elseif ($critical_problem['severity'] === $problem['severity']) {
+ if ($selement['elementtype'] == SYSMAP_ELEMENT_TYPE_TRIGGER) {
+ if ($critical_problem['objectid'] === $problem['objectid']
+ && $critical_problem['eventid'] < $problem['eventid']) {
+ $critical_problem = $problem;
}
- elseif ($critical_problem['eventid'] < $problem['eventid']) {
+ elseif (array_search($critical_problem['objectid'], $trigger_order)
+ > array_search($problem['objectid'], $trigger_order)) {
$critical_problem = $problem;
}
}
+ elseif ($critical_problem['eventid'] < $problem['eventid']) {
+ $critical_problem = $problem;
+ }
}
+ }
- if ($problem['r_clock'] > $lately_changed) {
- $lately_changed = $problem['r_clock'];
- }
- elseif ($problem['clock'] > $lately_changed) {
- $lately_changed = $problem['clock'];
- }
+ if ($problem['r_clock'] > $lately_changed) {
+ $lately_changed = $problem['r_clock'];
+ }
+ elseif ($problem['clock'] > $lately_changed) {
+ $lately_changed = $problem['clock'];
}
}
diff --git a/ui/include/schema.inc.php b/ui/include/schema.inc.php
index f2af583290c..a307d2e666b 100644
--- a/ui/include/schema.inc.php
+++ b/ui/include/schema.inc.php
@@ -63,7 +63,7 @@ return [
'url' => [
'null' => false,
'type' => DB::FIELD_TYPE_CHAR,
- 'length' => 255,
+ 'length' => 2048,
'default' => ''
],
'autologin' => [
diff --git a/ui/include/views/configuration.item.edit.php b/ui/include/views/configuration.item.edit.php
index 40423aab5a8..c771235f4bf 100644
--- a/ui/include/views/configuration.item.edit.php
+++ b/ui/include/views/configuration.item.edit.php
@@ -625,10 +625,6 @@ if ($data['display_interfaces']) {
->setFocusableElementId('interfaceid')
->setAriaRequired();
- if ($readonly) {
- $select_interface->setAttribute('readonly', 'readonly');
- }
-
$item_tab->addItem([
(new CLabel(_('Host interface'), $select_interface->getFocusableElementId()))
->setAsteriskMark()
diff --git a/ui/include/views/configuration.item.prototype.edit.php b/ui/include/views/configuration.item.prototype.edit.php
index 468aa214eb6..fe4be88b29f 100644
--- a/ui/include/views/configuration.item.prototype.edit.php
+++ b/ui/include/views/configuration.item.prototype.edit.php
@@ -592,7 +592,7 @@ if ($data['display_interfaces']) {
->addClass(ZBX_STYLE_ZSELECT_HOST_INTERFACE)
->setFocusableElementId('interfaceid')
->setAriaRequired()
- ->setReadonly($readonly);
+ ->setReadonly(($data['type'] == ITEM_TYPE_HTTPAGENT) ? $readonly : false);
$item_tab->addItem([
(new CLabel(_('Host interface'), $select_interface->getFocusableElementId()))
diff --git a/ui/include/views/js/common.template.edit.js.php b/ui/include/views/js/common.template.edit.js.php
index f8269196a9b..777e9813b6c 100644
--- a/ui/include/views/js/common.template.edit.js.php
+++ b/ui/include/views/js/common.template.edit.js.php
@@ -206,7 +206,7 @@
const form = e.target;
const form_fields = getFormFields(form);
- let submitter = document.activeElement;
+ let submitter = e.submitter || document.activeElement;
if (submitter.tagName !== 'BUTTON') {
submitter = form.querySelector('button[type="submit"]');
diff --git a/ui/items.php b/ui/items.php
index dc573a85b53..46d84117464 100644
--- a/ui/items.php
+++ b/ui/items.php
@@ -733,9 +733,6 @@ elseif (hasRequest('add') || hasRequest('update')) {
if ($db_item['logtimefmt'] !== getRequest('logtimefmt', '')) {
$item['logtimefmt'] = getRequest('logtimefmt', '');
}
- if (bccomp($db_item['interfaceid'], getRequest('interfaceid', 0)) != 0) {
- $item['interfaceid'] = getRequest('interfaceid', 0);
- }
if ($db_item['params'] !== getRequest('params', '')) {
$item['params'] = getRequest('params', '');
}
@@ -744,6 +741,10 @@ elseif (hasRequest('add') || hasRequest('update')) {
}
}
+ if (bccomp($db_item['interfaceid'], getRequest('interfaceid', 0)) != 0) {
+ $item['interfaceid'] = getRequest('interfaceid', 0);
+ }
+
if ($db_item['delay'] != $delay) {
$item['delay'] = $delay;
}
diff --git a/ui/js/class.cmap.js b/ui/js/class.cmap.js
index 592d856fc1f..9e1b1eda20f 100644
--- a/ui/js/class.cmap.js
+++ b/ui/js/class.cmap.js
@@ -604,8 +604,11 @@ ZABBIX.apps.map = (function($) {
can_remove = false,
can_reorder = false;
- if (item_data.type && typeof that.selection[item_data.type][item_data.id] === 'undefined') {
- that.selectElements([item_data]);
+ if (typeof item_data.id === 'undefined') {
+ that.clearSelection();
+ }
+ else if (item_data.type && typeof that.selection[item_data.type][item_data.id] === 'undefined') {
+ that.selectElements([item_data], false, true);
}
can_copy = (that.selection.count.shapes > 0 || that.selection.count.selements > 0);
@@ -615,6 +618,16 @@ ZABBIX.apps.map = (function($) {
event.preventDefault();
event.stopPropagation();
+ const overlay = overlays_stack.end();
+
+ if (typeof overlay !== 'undefined' && 'element' in overlay && overlay.element !== event.target) {
+ $('.menu-popup-top').menuPopup('close', null, false);
+ }
+
+ if (!(can_copy || can_paste || can_remove || can_reorder)) {
+ return false;
+ }
+
var items = [
{
'items': [
@@ -723,7 +736,25 @@ ZABBIX.apps.map = (function($) {
}
];
- $(event.target).menuPopup(items, event);
+ $(event.target).menuPopup(items, event, {
+ position: {
+ of: event,
+ my: 'left top',
+ at: 'left bottom',
+ using: (pos, data) => {
+ let max_left = (data.horizontal === 'left')
+ ? document.getElementById(containerId).clientWidth
+ : document.getElementById(containerId).clientWidth - data.element.width;
+
+ pos.top = Math.max(0, pos.top);
+ pos.left = Math.max(0, Math.min(max_left, pos.left));
+
+ data.element.element[0].style.top = `${pos.top}px`;
+ data.element.element[0].style.left = `${pos.left}px`;
+ }
+ },
+ background_layer: false
+ });
});
/*
@@ -963,6 +994,15 @@ ZABBIX.apps.map = (function($) {
$('#last_shape_type').val(value);
});
+ $(this.container).parents('.sysmap-scroll-container').eq(0)
+ .on('scroll', (e) => {
+ if (!e.target.dataset.last_scroll_at || Date.now() - e.target.dataset.last_scroll_at > 1000) {
+ $('.menu-popup-top').menuPopup('close', null, false);
+
+ e.target.dataset.last_scroll_at = Date.now();
+ }
+ });
+
$('input[type=radio][name=type]:checked').change();
},
@@ -1414,9 +1454,11 @@ ZABBIX.apps.map = (function($) {
this.updateImage();
},
- selectElements: function(ids, addSelection) {
+ selectElements: function(ids, addSelection, prevent_form_open) {
var i, ln;
+ $('.menu-popup-top').menuPopup('close', null, false);
+
if (!addSelection) {
this.clearSelection();
}
@@ -1439,7 +1481,9 @@ ZABBIX.apps.map = (function($) {
}
}
- this.toggleForm();
+ if (typeof prevent_form_open === 'undefined' || !prevent_form_open) {
+ this.toggleForm();
+ }
},
toggleForm: function() {
diff --git a/ui/js/class.cviewswitcher.js b/ui/js/class.cviewswitcher.js
index fa16c1c3a62..91006464af9 100644
--- a/ui/js/class.cviewswitcher.js
+++ b/ui/js/class.cviewswitcher.js
@@ -146,7 +146,7 @@ CViewSwitcher.prototype = {
return null;
}
- switch (obj.tagName.toLowerCase) {
+ switch (obj.tagName.toLowerCase()) {
case 'select':
return (obj.selectedIndex > -1) ? obj.options[obj.selectedIndex].value : null;
diff --git a/ui/js/class.notifications.js b/ui/js/class.notifications.js
index 94f0ead3ba3..caa0ab471f5 100644
--- a/ui/js/class.notifications.js
+++ b/ui/js/class.notifications.js
@@ -938,7 +938,9 @@ $(function() {
pos_side = 10,
side = 'right';
- main.appendChild(ntf_node);
+ if (main !== null) {
+ main.appendChild(ntf_node);
+ }
if (ntf_pos !== null && 'top' in ntf_pos) {
side = ('right' in ntf_pos ? 'right' : ('left' in ntf_pos ? 'left' : null));
diff --git a/ui/js/class.tabfilter.js b/ui/js/class.tabfilter.js
index dd6d864bfe6..a0faf3c281a 100644
--- a/ui/js/class.tabfilter.js
+++ b/ui/js/class.tabfilter.js
@@ -63,6 +63,10 @@ class CTabFilter extends CBaseComponent {
for (const title of this._target.querySelectorAll('nav [data-target]')) {
item = this.create(title, options.data[index] || {});
+ if (index > 0) {
+ item.initUnsavedIndicator();
+ }
+
if (options.selected == index) {
item.renderContentTemplate();
this.setSelectedItem(item);
@@ -762,7 +766,14 @@ class CTabFilter extends CBaseComponent {
this._filters_footer.querySelector('[name="filter_new"]')
.addEventListener('click', this._events.buttonSaveAsAction);
this._filters_footer.querySelector('[name="filter_apply"]')
- .addEventListener('click', this._events.buttonApplyAction);
+ .addEventListener('click', () => {
+ if (this._active_item._index == 0) {
+ this._events.buttonUpdateAction();
+ }
+ else {
+ this._events.buttonApplyAction();
+ }
+ });
this._filters_footer.querySelector('[name="filter_reset"]')
.addEventListener('click', this._events.buttonResetAction);
this._filters_footer.addEventListener('click', this._events.buttonActionNotify);
diff --git a/ui/js/class.tabfilteritem.js b/ui/js/class.tabfilteritem.js
index d38d15fb3e7..2044b5b7b4b 100644
--- a/ui/js/class.tabfilteritem.js
+++ b/ui/js/class.tabfilteritem.js
@@ -42,6 +42,8 @@ class CTabFilterItem extends CBaseComponent {
this._parent = options.parent || null;
this._idx_namespace = options.idx_namespace;
this._index = options.index;
+ this._unsaved = false;
+ this._unsaved_indicator = null;
this._content_container = options.container;
this._data = options.data || {};
this._template = options.template;
@@ -68,6 +70,20 @@ class CTabFilterItem extends CBaseComponent {
}
/**
+ * Initialize indicator DOM node for tab unsaved state.
+ */
+ initUnsavedIndicator() {
+ let green_dot = document.createElement('span');
+
+ green_dot.setAttribute('data-indicator-value', '1');
+ green_dot.setAttribute('data-indicator', 'mark');
+ green_dot.classList.toggle('display-none', !this._unsaved);
+ this._target.appendChild(green_dot);
+
+ this._unsaved_indicator = green_dot;
+ }
+
+ /**
* Set results counter value.
*
* @param {int} value Results counter value.
@@ -166,6 +182,7 @@ class CTabFilterItem extends CBaseComponent {
}
let edit = document.createElement('a');
+
edit.classList.add(TABFILTERITEM_STYLE_EDIT_BTN);
edit.addEventListener('click', () => this.openPropertiesDialog({}, this._target));
this._target.parentNode.appendChild(edit);
@@ -322,6 +339,7 @@ class CTabFilterItem extends CBaseComponent {
}
this._target.text = data.filter_name;
+ this.initUnsavedIndicator();
this.setBrowserLocationToApplyUrl();
}
@@ -424,8 +442,6 @@ class CTabFilterItem extends CBaseComponent {
/**
* Checks difference between original form values and to be posted values.
* Updates this._unsaved according to check results
- *
- * @param {URLSearchParams} search_params Filter field values to compare against.
*/
updateUnsavedState() {
let search_params = this.getFilterParams(),
@@ -445,7 +461,10 @@ class CTabFilterItem extends CBaseComponent {
src_query.sort();
search_params.sort();
this._unsaved = (src_query.toString() !== search_params.toString());
- this._target.parentNode.classList.toggle(TABFILTERITEM_STYLE_UNSAVED, this._unsaved);
+
+ if (this._unsaved_indicator) {
+ this._unsaved_indicator.classList.toggle('display-none', !this._unsaved);
+ }
}
/**
@@ -467,7 +486,10 @@ class CTabFilterItem extends CBaseComponent {
src_query.sort();
this._src_url = src_query.toString();
- this._target.parentNode.classList.remove(TABFILTERITEM_STYLE_UNSAVED);
+
+ if (this._unsaved_indicator) {
+ this._unsaved_indicator.classList.add('display-none');
+ }
}
/**
diff --git a/ui/js/flickerfreescreen.js b/ui/js/flickerfreescreen.js
index 20879b527eb..d30432c45cc 100644
--- a/ui/js/flickerfreescreen.js
+++ b/ui/js/flickerfreescreen.js
@@ -106,14 +106,12 @@
* 21 SCREEN_RESOURCE_HTTPTEST_DETAILS
* 22 SCREEN_RESOURCE_DISCOVERY
* 23 SCREEN_RESOURCE_HTTPTEST
- * 24 SCREEN_RESOURCE_PROBLEM
*/
var type_params = {
'17': ['mode', 'resourcetype', 'pageFile', 'page'],
'21': ['mode', 'resourcetype', 'profileIdx2'],
'22': ['mode', 'resourcetype', 'data'],
'23': ['mode', 'resourcetype', 'data', 'page'],
- '24': ['mode', 'resourcetype', 'data', 'page'],
'default': ['mode', 'screenid', 'groupid', 'hostid', 'pageFile', 'profileIdx', 'profileIdx2',
'screenitemid'
]
@@ -225,8 +223,8 @@
to_ts: time_object.to_ts
});
- // Reset pager on time range update (SCREEN_RESOURCE_HISTORY, SCREEN_RESOURCE_PROBLEM).
- if ($.inArray(screen.resourcetype, [17, 24]) !== -1) {
+ // Reset pager on time range update (SCREEN_RESOURCE_HISTORY).
+ if (screen.resourcetype == 17) {
screen.page = 1;
}
diff --git a/ui/js/functions.js b/ui/js/functions.js
index 3436169bcc9..c361c715a90 100644
--- a/ui/js/functions.js
+++ b/ui/js/functions.js
@@ -662,52 +662,41 @@ function executeScript(scriptid, confirmation, trigger_element, hostid = null, e
})(jQuery);
/**
- * Parse url string to object. Hash starting part of URL will be removed.
- * Return object where 'url' key contain parsed url, 'pairs' key is array of objects with parsed arguments.
+ * Parse URL string to object. Hash starting part of URL will be removed.
+ * Return object where 'url' key contains parsed URL, 'pairs' key is array of objects with parsed arguments.
* For malformed URL strings will return false.
*
- * @param {string} url URL string to parse.
+ * @param {string} url_string URL string to parse.
*
* @return {object|bool}
*/
-function parseUrlString(url) {
- var url = url.replace(/#.+/, ''),
- pos = url.indexOf('?'),
- valid = true,
- pairs = [],
- query;
+function parseUrlString(url_string) {
+ try {
+ decodeURI(url_string);
+ }
+ catch {
+ return false;
+ }
+
+ let url = url_string.replace(/#.+/, '');
+ const pos = url.indexOf('?');
+ const pairs = [];
if (pos != -1) {
- query = url.substring(pos + 1);
+ const query = url.substring(pos + 1);
url = url.substring(0, pos);
- jQuery.each(query.split('&'), function(i, pair) {
- if (jQuery.trim(pair)) {
- pair = pair.replace(/\+/g, ' ').split('=', 2);
- pair.push('');
-
- try {
- if (pair[0].match(/%[01]/) || pair[1].match(/%[01]/)) {
- // Non-printable characters in URL.
- throw null;
- }
-
- pairs.push({
- 'name': decodeURIComponent(pair[0]),
- 'value': decodeURIComponent(pair[1])
- });
- }
- catch( e ) {
- valid = false;
- // Break jQuery.each iteration.
- return false;
- }
+ for (const param of new URLSearchParams(query)) {
+ if (encodeURIComponent(param[0]).match(/%[01]/) || encodeURIComponent(param[1]).match(/%[01]/)) {
+ // Non-printable characters in URL.
+ return false;
}
- });
- }
- if (!valid) {
- return false;
+ pairs.push({
+ 'name': param[0],
+ 'value': param[1]
+ });
+ }
}
return {
diff --git a/ui/js/menupopup.js b/ui/js/menupopup.js
index 271ff44a871..ca3833004c3 100644
--- a/ui/js/menupopup.js
+++ b/ui/js/menupopup.js
@@ -1224,7 +1224,8 @@ jQuery(function($) {
}
var defaultOptions = {
- closeCallback: function(){}
+ closeCallback: function(){},
+ background_layer: true
};
var methods = {
@@ -1285,7 +1286,10 @@ jQuery(function($) {
$menu_popup.data('menu_popup', options);
- $('.wrapper').append($('<div>', {class: 'menu-popup-overlay'}));
+ if (options.background_layer) {
+ $('.wrapper').append($('<div>', {class: 'menu-popup-overlay'}));
+ }
+
$('.wrapper').append($menu_popup);
// Position the menu (before hiding).
@@ -1302,7 +1306,9 @@ jQuery(function($) {
// Need to be postponed.
setTimeout(function() {
$(document)
- .on('click', {menu: $menu_popup, opener: $opener}, menuPopupDocumentCloseHandler)
+ .on('click dragstart contextmenu', {menu: $menu_popup, opener: $opener},
+ menuPopupDocumentCloseHandler
+ )
.on('keydown', {menu: $menu_popup}, menuPopupKeyDownHandler);
});
@@ -1321,7 +1327,7 @@ jQuery(function($) {
$('[aria-expanded="true"]', menu_popup).attr({'aria-expanded': 'false'});
$(document)
- .off('click', menuPopupDocumentCloseHandler)
+ .off('click dragstart contextmenu', menuPopupDocumentCloseHandler)
.off('keydown', menuPopupKeyDownHandler);
var overlay = removeFromOverlaysStack('menu-popup', return_focus);
@@ -1331,7 +1337,10 @@ jQuery(function($) {
$(overlay['element']).attr({'aria-expanded': 'false'});
}
- menu_popup.prev().remove();
+ if (options.background_layer) {
+ menu_popup.prev().remove();
+ }
+
menu_popup.remove();
// Call menu close callback function.
@@ -1369,14 +1378,26 @@ jQuery(function($) {
$('>a', li[0]).addClass('highlighted');
if (!$('ul', item[0]).is(':visible')) {
- $('ul:first', item[0]).prev('[role="menuitem"]').attr({'aria-expanded': 'true'});
+ const $submenu = $('ul:first', item[0]);
- $('ul:first', item[0])
- .css({
+ if ($submenu.length) {
+ const position = {
'top': pos.top - 6,
'left': pos.left + li.outerWidth() + 14,
- 'display': 'block'
- });
+ };
+
+ $submenu
+ .css('display' ,'block')
+ .prev('[role="menuitem"]').attr({'aria-expanded': 'true'});
+
+ let max_relative_left = $(window).outerWidth(true) - $submenu.outerWidth(true)
+ - menu[0].getBoundingClientRect().left - 14 * 2;
+
+ position.top = Math.max(0, position.top);
+ position.left = Math.max(0, Math.min(max_relative_left, position.left));
+
+ $submenu.css(position);
+ }
}
}
else {
diff --git a/ui/locale/bg/LC_MESSAGES/frontend.po b/ui/locale/bg/LC_MESSAGES/frontend.po
index 5824a6e6768..81730940d3c 100644
--- a/ui/locale/bg/LC_MESSAGES/frontend.po
+++ b/ui/locale/bg/LC_MESSAGES/frontend.po
@@ -13297,6 +13297,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Преброени са само тригерите възложени за активни хостове и зависими от активни елементи на данните"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17698,6 +17702,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20446,6 +20460,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/ca/LC_MESSAGES/frontend.po b/ui/locale/ca/LC_MESSAGES/frontend.po
index 36e55c5f74c..5e9a39006a8 100644
--- a/ui/locale/ca/LC_MESSAGES/frontend.po
+++ b/ui/locale/ca/LC_MESSAGES/frontend.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-04-20 13:49+0000\n"
-"Last-Translator: Jurijs <jurijs.klopovskis@zabbix.com>\n"
+"PO-Revision-Date: 2022-09-29 06:06+0000\n"
+"Last-Translator: jrojoal <jrojoal@gmail.com>\n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
@@ -19,7 +19,7 @@ msgstr ""
#: include/classes/widgets/forms/CWidgetFormSlaReport.php:104
#, c-format
msgid "\"%1$s\" date must be less than \"%2$s\" date."
-msgstr "La data \"%1$s\" ha de ser inferior a la data \"%2$s\"."
+msgstr " vyfn-c15g87La data \"%1$s\" ha de ser inferior a la data \"%2$s\"."
#: include/classes/db/MysqlDbBackend.php:70
#: include/classes/db/OracleDbBackend.php:142
@@ -13272,6 +13272,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17671,6 +17675,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20416,6 +20430,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/cs/LC_MESSAGES/frontend.po b/ui/locale/cs/LC_MESSAGES/frontend.po
index edaafa2a668..cdfcc3570d9 100644
--- a/ui/locale/cs/LC_MESSAGES/frontend.po
+++ b/ui/locale/cs/LC_MESSAGES/frontend.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-06-30 22:09+0000\n"
+"PO-Revision-Date: 2022-10-09 18:00+0000\n"
"Last-Translator: Tomáš Heřmánek <tomas.hermanek@initmax.cz>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: cs\n"
@@ -118,7 +118,7 @@ msgstr "%1$s (rok %2$s)"
#: include/classes/core/CModuleManager.php:228
#, c-format
msgid "%1$s - thrown by module located at %2$s."
-msgstr ""
+msgstr "%1$s – vyvoláno modulem umístěným na %2$s."
#: include/classes/api/services/CItemGeneral.php:2654
#: include/classes/import/readers/CXmlImportReader.php:46
@@ -419,7 +419,7 @@ msgstr "API token"
#: include/classes/api/services/CToken.php:299
#, c-format
msgid "API token \"%1$s\" already exists for userid \"%2$s\"."
-msgstr ""
+msgstr "Token API \"%1$s\" již existuje pro uživatelské ID \"%2$s\"."
#: app/controllers/CControllerTokenCreate.php:98
msgid "API token added"
@@ -631,7 +631,7 @@ msgstr "Akce byla přidána"
#: include/classes/core/ZBase.php:500
#, c-format
msgid "Action class %1$s must extend %2$s class."
-msgstr ""
+msgstr "Třída akcí %1$s musí rozšířit třídu %2$s."
#: actionconf.php:323
msgid "Action deleted"
@@ -1040,7 +1040,7 @@ msgstr "Agent šifrování"
#: include/classes/data/CItemData.php:817
msgid "Agent host metadata. Returns string"
-msgstr ""
+msgstr "Metadata hostitele agenta. Vrátí řetězec"
#: include/classes/data/CItemData.php:821
msgid "Agent host name. Returns string"
@@ -1182,11 +1182,11 @@ msgstr "Eventuálně to můžete nainstalovat manuálně:"
#: include/classes/data/CItemData.php:1449
msgid "Amount of guest physical memory that is swapped out to the swap space, <url> - VMware service URL, <uuid> - VMware virtual machine host name"
-msgstr ""
+msgstr "Množství fyzické paměti hosta, která je odložena do odkládacího prostoru, <url> - URL služby VMware, <uuid> - název hostitele virtuálního počítače VMware"
#: include/classes/data/CItemData.php:1469
msgid "Amount of host physical memory consumed for backing up guest physical memory pages, <url> - VMware service URL, <uuid> - VMware virtual machine host name"
-msgstr ""
+msgstr "Množství fyzické paměti hostitele spotřebované pro zálohování stránek fyzické paměti hosta, <url> – URL služby VMware, <uuid> – název hostitele virtuálního počítače VMware"
#: app/partials/popup.operations.php:240
#: app/views/configuration.correlation.edit.php:117
@@ -1300,7 +1300,7 @@ msgstr "Jste si jistí, že to chcete smazat?"
#: include/classes/html/CButtonQMessage.php:52
msgid "Are you sure you want to perform this action?"
-msgstr ""
+msgstr "Opravdu chcete provést tuto akci?"
#: include/views/js/monitoring.sysmaps.js.php:116
msgid "Area size"
@@ -1369,7 +1369,7 @@ msgstr "Musí být zaškrtnut alespoň jeden prvek uživatelského rozhraní."
#: include/classes/api/services/CRole.php:487
#, c-format
msgid "At least one UI element must be enabled for user role \"%1$s\"."
-msgstr ""
+msgstr "Pro uživatelskou roli \"%1$s\" musí být povolen alespoň jeden prvek uživatelského rozhraní."
#: app/controllers/CControllerPopupLldOperation.php:122
msgid "At least one action is mandatory."
@@ -1379,11 +1379,11 @@ msgstr "Alespoň jedna akce je povinná."
#: include/classes/api/services/CUser.php:1286
#, c-format
msgid "At least one active user must exist with role \"%1$s\"."
-msgstr ""
+msgstr "Musí existovat alespoň jeden aktivní uživatel s rolí \"%1$s\"."
#: include/classes/api/services/CMaintenance.php:683
msgid "At least one day of the week or day of the month must be specified."
-msgstr ""
+msgstr "Musí být uveden alespoň jeden den v týdnu nebo den v měsíci."
#: include/classes/api/services/CMaintenance.php:382
#: include/classes/api/services/CMaintenance.php:574
@@ -1394,11 +1394,11 @@ msgstr "Minimálně jedna skupina hostů musí být vybrána."
#: include/classes/api/services/CHostGroup.php:1111
#: include/classes/api/services/CHostGroup.php:1268
msgid "At least one host or template must be specified."
-msgstr ""
+msgstr "Musí být zadán alespoň jeden hostitel nebo šablona."
#: include/classes/setup/CFrontendSetup.php:241
msgid "At least one of MySQL, PostgreSQL or Oracle should be supported."
-msgstr ""
+msgstr "Měl by být podporován alespoň jeden z MySQL, PostgreSQL nebo Oracle."
#: app/views/configuration.correlation.edit.php:159
msgid "At least one operation must be selected."
@@ -1410,7 +1410,7 @@ msgstr "Minimálně jedna operace musí existovat."
#: app/controllers/CControllerPopupAcknowledgeCreate.php:172
msgid "At least one update operation or message is mandatory"
-msgstr ""
+msgstr "Alespoň jedna operace aktualizace nebo zpráva je povinná"
#: app/views/popup.acknowledge.edit.php:105
msgid "At least one update operation or message must exist."
@@ -1422,7 +1422,7 @@ msgstr "Minimálně jeden uživatel nebo skupina uživatelů musí být vybrána
#: include/classes/api/services/CReport.php:343
msgid "At least one user or user group must be specified."
-msgstr ""
+msgstr "Musí být zadán alespoň jeden uživatel nebo skupina uživatelů."
#: app/views/administration.mediatype.edit.php:340
msgid "Attempt interval"
@@ -1436,7 +1436,7 @@ msgstr "Pokusy"
#: app/views/administration.geomaps.edit.php:88
msgid "Attribution"
-msgstr ""
+msgstr "Atribuce"
#: app/views/administration.housekeeping.edit.php:178
#: include/classes/helpers/CMenuHelper.php:148
@@ -1612,11 +1612,11 @@ msgstr "Střední"
#: include/classes/data/CItemData.php:1529
msgid "Average number of outstanding read requests to the virtual disk during the collection interval , <url> - VMware service URL, <uuid> - VMware virtual machine host name, <instance> - disk device instance"
-msgstr ""
+msgstr "Průměrný počet nevyřízených požadavků na čtení na virtuální disk během intervalu sběru, <url> - URL služby VMware, <uuid> - název hostitele virtuálního počítače VMware, <instance> - instance diskového zařízení"
#: include/classes/data/CItemData.php:1549
msgid "Average number of outstanding write requests to the virtual disk during the collection interval, <url> - VMware service URL, <uuid> - VMware virtual machine host name, <instance> - disk device instance"
-msgstr ""
+msgstr "Průměrný počet nevyřízených požadavků na zápis na virtuální disk během intervalu sběru, <url> - URL služby VMware, <uuid> - název hostitele virtuálního počítače VMware, <instance> - instance diskového zařízení"
#: app/views/administration.authentication.edit.php:93
msgid "Avoid easy-to-guess passwords"
@@ -1810,19 +1810,19 @@ msgstr "CPU load. Vrátí desetinné číslo"
#: include/classes/data/CItemData.php:1429
msgid "CPU time spent waiting for swap-in, <url> - VMware service URL, <uuid> - VMware virtual machine host name, <instance> - CPU instance"
-msgstr ""
+msgstr "Čas CPU strávený čekáním na swap-in, <url> - URL služby VMware, <uuid> - název hostitele virtuálního počítače VMware, <instance> - instance CPU"
#: include/classes/data/CItemData.php:1281
msgid "CPU usage as a percentage during the interval depends on power management or HT, <url> - VMware service URL, <uuid> - VMware hypervisor host name"
-msgstr ""
+msgstr "Využití CPU v procentech během intervalu závisí na správě napájení nebo HT, <url> - URL služby VMware, <uuid> - název hostitele hypervisoru VMware"
#: include/classes/data/CItemData.php:1273
msgid "CPU usage as a percentage during the interval, <url> - VMware service URL, <uuid> - VMware hypervisor host name"
-msgstr ""
+msgstr "Využití procesoru v procentech během intervalu, <url> – URL služby VMware, <uuid> – název hostitele hypervisoru VMware"
#: include/classes/data/CItemData.php:1433
msgid "CPU usage as a percentage during the interval, <url> - VMware service URL, <uuid> - VMware virtual machine host name"
-msgstr ""
+msgstr "Využití procesoru v procentech během intervalu, <url> - URL služby VMware, <uuid> - název hostitele virtuálního počítače VMware"
#: include/classes/data/CItemData.php:1061
msgid "CPU utilization percentage. Returns float"
@@ -1919,7 +1919,7 @@ msgstr "Nelze přidat korelaci"
#: jsLoader.php:133
#, c-format
msgid "Cannot add dashboard page: maximum number of %1$d dashboard pages has been added."
-msgstr ""
+msgstr "Nelze přidat stránku dashboard panelu: byl přidán maximální počet %1$d stránek dashboard panelu."
#: include/classes/api/services/CTrigger.php:979
#: include/classes/api/services/CTriggerPrototype.php:788
@@ -2078,11 +2078,11 @@ msgstr "Není možné navázat na LDAP server."
#: include/forms.inc.php:1990 include/forms.inc.php:2000
#, c-format
msgid "Cannot build expression tree: %1$s."
-msgstr ""
+msgstr "Nelze sestavit strom výrazů: %1$s."
#: include/classes/api/services/CRole.php:792
msgid "Cannot change the user type of own role."
-msgstr ""
+msgstr "Nelze změnit typ uživatele vlastní role."
#: httpconf.php:189 httpconf.php:433 items.php:901 items.php:981
msgid "Cannot clear history"
@@ -2143,7 +2143,7 @@ msgstr[2] "Nelze kopírovat spoušťěče"
#: include/triggers.inc.php:246
#, c-format
msgid "Cannot copy trigger \"%1$s\", because it has multiple hosts in the expression."
-msgstr ""
+msgstr "Nelze zkopírovat spouštěč \"%1$s\", protože má ve výrazu více hostitelů."
#: include/triggers.inc.php:226
#, c-format
@@ -2189,7 +2189,7 @@ msgstr "Nelze vytvořit naplánovaný přehled"
#: include/classes/api/services/CService.php:2397
#, c-format
msgid "Cannot create service \"%1$s\": %2$s."
-msgstr ""
+msgstr "Nelze vytvořit službu \"%1$s\": %2$s."
#: include/classes/setup/CSetupWizard.php:878
msgid "Cannot create the configuration file."
@@ -2226,7 +2226,7 @@ msgstr "Nelze smazat akci"
#: include/classes/api/services/CRole.php:375
#, c-format
msgid "Cannot delete assigned user role \"%1$s\"."
-msgstr ""
+msgstr "Nelze smazat přiřazenou uživatelskou roli \"%1$s\"."
#: app/controllers/CControllerCorrelationDelete.php:68
msgid "Cannot delete correlation"
@@ -13398,6 +13398,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Počítány jsou pouze spouštěče přiřazené k povoleným hostitelům a závisející na povolených položkách"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17809,6 +17813,16 @@ msgstr "Prozatím tento měsíc"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20566,6 +20580,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "řetězec znaků se očekává"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/da/LC_MESSAGES/frontend.po b/ui/locale/da/LC_MESSAGES/frontend.po
index af11ae2b1bf..f2c21bc4210 100644
--- a/ui/locale/da/LC_MESSAGES/frontend.po
+++ b/ui/locale/da/LC_MESSAGES/frontend.po
@@ -13270,6 +13270,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17669,6 +17673,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20414,6 +20428,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/de/LC_MESSAGES/frontend.po b/ui/locale/de/LC_MESSAGES/frontend.po
index 4fcb64d2bb9..76beb039e54 100644
--- a/ui/locale/de/LC_MESSAGES/frontend.po
+++ b/ui/locale/de/LC_MESSAGES/frontend.po
@@ -13307,6 +13307,10 @@ msgstr "Nur Superadmins können den Berichtseigentümer festlegen."
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Nur Auslöser, die mit aktiven Hosts und aktiven Datenpunkten verbunden sind, werden gezählt"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
# Der Browser
#: include/httptest.inc.php:421
msgid "Opera"
@@ -17721,6 +17725,16 @@ msgstr "Dieser Monat bis jetzt"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr "Diese Einstellung gilt nur für numerische Daten. Nicht numerische Daten werden immer aus der Historie entnommen."
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20471,6 +20485,10 @@ msgstr "ein boolescher Wert wird erwartet"
msgid "a character string is expected"
msgstr "Zeichenfolge erwartet"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr "ein Datum im Format JJJJ-MM-TT wird erwartet"
diff --git a/ui/locale/el/LC_MESSAGES/frontend.po b/ui/locale/el/LC_MESSAGES/frontend.po
index 637271f34f2..d1b2d26cd07 100644
--- a/ui/locale/el/LC_MESSAGES/frontend.po
+++ b/ui/locale/el/LC_MESSAGES/frontend.po
@@ -13287,6 +13287,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Απαριθμώνται μόνο εναύσματα εκχωρημένα σε ενεργούς ξενιστές και εξαρτώμενα απο ενεργούς συλλέκτες"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17690,6 +17694,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20436,6 +20450,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/en/LC_MESSAGES/frontend.pot b/ui/locale/en/LC_MESSAGES/frontend.pot
index 281a40938f4..151799deff3 100644
--- a/ui/locale/en/LC_MESSAGES/frontend.pot
+++ b/ui/locale/en/LC_MESSAGES/frontend.pot
@@ -13275,6 +13275,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17674,6 +17678,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20419,6 +20433,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/en_GB/LC_MESSAGES/frontend.po b/ui/locale/en_GB/LC_MESSAGES/frontend.po
index 99755f0f42b..580bb071b59 100644
--- a/ui/locale/en_GB/LC_MESSAGES/frontend.po
+++ b/ui/locale/en_GB/LC_MESSAGES/frontend.po
@@ -13274,6 +13274,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17673,6 +17677,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20418,6 +20432,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/es/LC_MESSAGES/frontend.po b/ui/locale/es/LC_MESSAGES/frontend.po
index 10dc860e47b..4f9b38794df 100644
--- a/ui/locale/es/LC_MESSAGES/frontend.po
+++ b/ui/locale/es/LC_MESSAGES/frontend.po
@@ -13273,6 +13273,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Sólo cuentan los iniciadores asignados a equipos habilitados y que dependan de monitores habilitados"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17672,6 +17676,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20417,6 +20431,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/fa/LC_MESSAGES/frontend.po b/ui/locale/fa/LC_MESSAGES/frontend.po
index e11078977ed..1be849e7b52 100644
--- a/ui/locale/fa/LC_MESSAGES/frontend.po
+++ b/ui/locale/fa/LC_MESSAGES/frontend.po
@@ -13164,6 +13164,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17551,6 +17555,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20284,6 +20298,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/fi/LC_MESSAGES/frontend.po b/ui/locale/fi/LC_MESSAGES/frontend.po
index 72eecfb17f8..60b0679da20 100644
--- a/ui/locale/fi/LC_MESSAGES/frontend.po
+++ b/ui/locale/fi/LC_MESSAGES/frontend.po
@@ -13272,6 +13272,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17671,6 +17675,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20416,6 +20430,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/fr/LC_MESSAGES/frontend.po b/ui/locale/fr/LC_MESSAGES/frontend.po
index 33b018e7020..2750824bc15 100644
--- a/ui/locale/fr/LC_MESSAGES/frontend.po
+++ b/ui/locale/fr/LC_MESSAGES/frontend.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-09-09 18:00+0000\n"
+"PO-Revision-Date: 2022-10-10 18:42+0000\n"
"Last-Translator: ERIC <eric78.zabbix@orange.fr>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: fr\n"
@@ -12130,7 +12130,7 @@ msgstr "Le champ de nom du formulaire ne doit pas dépasser 255 caractères."
#: app/views/administration.module.edit.php:43
msgid "Namespace"
-msgstr ""
+msgstr "Espace de noms"
#: jsLoader.php:189
msgid "Navigate to default view"
@@ -13284,6 +13284,10 @@ msgstr "Seuls les super-administrateurs peuvent définir le propriétaire du rap
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Seuls les déclencheurs assignés à des hôtes activés et dépendant d'éléments activés sont comptés"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr "Ouvrir le journal"
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -13779,7 +13783,7 @@ msgstr "La page a reçu des données incorrectes"
#: include/classes/helpers/CPagerHelper.php:159
msgctxt "page navigation"
msgid "Pager"
-msgstr ""
+msgstr "Pager"
#: app/partials/administration.system.info.php:30
#: app/views/administration.mediatype.edit.php:103
@@ -17683,6 +17687,16 @@ msgstr "Ce mois-ci jusqu'à présent"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr "Ce paramètre s'applique uniquement aux données numériques. Les données non numériques seront toujours extraites de l'historique."
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -17872,7 +17886,7 @@ msgstr "Haut"
#: include/classes/widgets/forms/CWidgetFormTopHosts.php:132
msgid "Top N"
-msgstr ""
+msgstr "Top N"
#: include/classes/widgets/CWidgetConfig.php:75
msgid "Top hosts"
@@ -20431,6 +20445,10 @@ msgstr "une valeur booléenne est attendue"
msgid "a character string is expected"
msgstr "une chaîne de caractères est attendue"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr "une chaîne de caractères, un entier ou une valeur à virgule flottante est attendu"
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr "une date au format AAAA-MM-JJ est attendue"
diff --git a/ui/locale/he/LC_MESSAGES/frontend.po b/ui/locale/he/LC_MESSAGES/frontend.po
index 520d809dfd3..f61fd85a7f0 100644
--- a/ui/locale/he/LC_MESSAGES/frontend.po
+++ b/ui/locale/he/LC_MESSAGES/frontend.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-07-05 20:03+0000\n"
+"PO-Revision-Date: 2022-10-12 08:31+0000\n"
"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
"Language-Team: none\n"
"Language: he\n"
@@ -3814,7 +3814,7 @@ msgstr "דחיסה"
#: app/views/administration.housekeeping.edit.php:173
#: app/views/administration.housekeeping.edit.php:183
msgid "Compression is not supported."
-msgstr ""
+msgstr "אין תמיכה בדחיסה."
#: app/views/administration.mediatype.edit.php:319
msgid "Concurrent sessions"
@@ -5498,7 +5498,7 @@ msgstr "פרטי תרחיש רשת"
#: app/views/administration.housekeeping.edit.php:194
msgid "Detected TimescaleDB license does not support compression. Compression is supported in TimescaleDB Community Edition."
-msgstr ""
+msgstr "רישיון ה־TimescaleDB שהתגלה לא תומך בדחיסה. דחיסה נתמכת במהדורה הקהילתית של TimescaleDB."
#: app/controllers/CControllerPopupTriggerExpr.php:1101
msgid "Detection period"
@@ -11061,7 +11061,7 @@ msgstr "ב׳"
#: include/func.inc.php:592 jsLoader.php:223
msgctxt "month short"
msgid "M"
-msgstr ""
+msgstr "ח׳"
#: include/hosts.inc.php:154 include/views/inventory.host.list.php:91
msgid "MAC address A"
@@ -11666,7 +11666,7 @@ msgstr "גרסת ה־PHP הנמוכה ביותר הנדרשת היא %1$s."
#: app/views/administration.housekeeping.edit.php:174
#, c-format
msgid "Minimum required TimescaleDB version is %1$s."
-msgstr ""
+msgstr "גרסת ה־TimeScaleDB הנמוכה ביותר הנדרשת היא %1$s."
#: include/classes/setup/CFrontendSetup.php:193
#, c-format
@@ -13283,6 +13283,10 @@ msgstr "רק מנהלי על יכולים להגדיר בעלות על דוח."
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "רק הקפצות שמוקצות למארחים מופעלים שתלויות בפריטים פעילים נספרות"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr "פתיחת היומן"
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -13828,7 +13832,7 @@ msgstr "תרשימי הורה"
#: app/partials/hostmacros.inherited.list.html.php:52
msgid "Parent host value"
-msgstr ""
+msgstr "ערך מארח הורה"
#: include/views/configuration.item.edit.php:55
#: include/views/configuration.item.prototype.edit.php:53
@@ -14157,7 +14161,7 @@ msgstr "סוג Post"
#: app/views/administration.housekeeping.edit.php:164
msgid "PostgreSQL database server version is too old."
-msgstr ""
+msgstr "גרסת שרת מסד הנתונים מסוג PostgreSQL ישנה מדי."
#: include/classes/data/CItemData.php:1377
msgid "Power usage , <url> - VMware service URL, <uuid> - VMware hypervisor host name, <max> - Maximum allowed power usage"
@@ -17682,6 +17686,16 @@ msgstr "החודש הזה עד כה"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr "הגדרה זו חלה רק על נתונים מספריים. נתונים בלתי מספריים תמיד יימשכו מההיסטוריה."
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -18535,11 +18549,11 @@ msgstr "לא ניתן לשכתב על קובץ התצורה הקיים."
#: app/views/administration.housekeeping.edit.php:159
msgid "Unable to retrieve TimescaleDB compression support status."
-msgstr ""
+msgstr "לא ניתן למשוך את מצב התמיכה של TimescaleDB בדחיסה."
#: app/views/administration.housekeeping.edit.php:169
msgid "Unable to retrieve TimescaleDB version."
-msgstr ""
+msgstr "לא ניתן לקבל את גרסת TimescaleDB."
#: app/partials/administration.system.info.php:156
msgid "Unable to retrieve database version."
@@ -18727,12 +18741,12 @@ msgstr "גרסת שרת מסד נתונים %1$s אינה נתמכת. אמורה
#: app/views/administration.housekeeping.edit.php:178
#, c-format
msgid "Unsupported TimescaleDB version. Should be at least %1$s."
-msgstr ""
+msgstr "גרסת TimescaleDB לא נתמכת. אמורה להיות %1$s לפחות."
#: app/views/administration.housekeeping.edit.php:188
#, c-format
msgid "Unsupported TimescaleDB version. Should not be higher than %1$s."
-msgstr ""
+msgstr "גרסת TimescaleDB לא נתמכת. אמורה להיות מעל %1$s."
#: include/classes/db/MysqlDbBackend.php:99
#: include/classes/db/PostgresqlDbBackend.php:131
@@ -20430,6 +20444,10 @@ msgstr "אמור להיות ערך בוליאני"
msgid "a character string is expected"
msgstr "אמור להיות מחרוזת תווים"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr "אמור להיות מחרוזת תווים, מספר שלם וחיובי או שבר עשרוני"
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr "התאריך אמור להיות בתצורה YYYY-MM-DD"
@@ -22621,7 +22639,7 @@ msgstr "דרך"
#: include/func.inc.php:659
msgctxt "week short"
msgid "w"
-msgstr ""
+msgstr "שב׳"
#: include/classes/api/services/CTask.php:443
msgid "wrong discovery rule type"
diff --git a/ui/locale/hu/LC_MESSAGES/frontend.po b/ui/locale/hu/LC_MESSAGES/frontend.po
index 95b9591461e..c8af8311061 100644
--- a/ui/locale/hu/LC_MESSAGES/frontend.po
+++ b/ui/locale/hu/LC_MESSAGES/frontend.po
@@ -1,25 +1,26 @@
+#
msgid ""
msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2013-01-09 22:10+0300\n"
-"Last-Translator: Robert <szenasy.robert@gmail.com>\n"
+"PO-Revision-Date: 2022-09-15 17:07+0000\n"
+"Last-Translator: Roland <roland.rabai@rsoe.hu>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.5.1.3\n"
-"X-Poedit-Basepath: ../../\n"
+"X-Generator: Pontoon\n"
"X-POOTLE-MTIME: 1357762227.000000\n"
+"X-Poedit-Basepath: ../../\n"
#: app/controllers/CControllerSlaReportList.php:181
#: include/classes/widgets/forms/CWidgetFormSlaReport.php:104
#, c-format
msgid "\"%1$s\" date must be less than \"%2$s\" date."
-msgstr ""
+msgstr "\"%1$s\" dátum értékének korábbinak kell lennie mint \"%2$s\"."
#: include/classes/db/MysqlDbBackend.php:70
#: include/classes/db/OracleDbBackend.php:142
@@ -60,7 +61,7 @@ msgstr ""
#: include/classes/import/validators/C10XmlValidator.php:378
#: include/classes/import/validators/C10XmlValidator.php:399
msgid "\"host:key\" pair is expected"
-msgstr ""
+msgstr "\"host:key\" párost várok"
#: include/classes/api/services/CItemGeneral.php:2299
msgid "\"hostid\" of dependent item and master item should match"
@@ -1314,12 +1315,14 @@ msgstr ""
msgid "At %1$s:%2$s %3$s of every week"
msgid_plural "At %1$s:%2$s %3$s of every %4$s weeks"
msgstr[0] ""
+msgstr[1] ""
#: include/maintenances.inc.php:50
#, c-format
msgid "At %1$s:%2$s every day"
msgid_plural "At %1$s:%2$s every %3$s days"
msgstr[0] ""
+msgstr[1] ""
#: include/maintenances.inc.php:112
#, c-format
@@ -1671,7 +1674,7 @@ msgstr "Zárolva"
#: include/classes/core/ZBase.php:358
msgid "Blue"
-msgstr ""
+msgstr "Kék"
#: app/views/popup.httpstep.php:160
#: include/views/configuration.host.discovery.edit.php:399
@@ -1775,7 +1778,7 @@ msgstr ""
#: include/classes/data/CItemData.php:1073
msgid "CPU information. Returns string or integer"
-msgstr ""
+msgstr "CPU információ. Karakterláncot vagy egész számot ad vissza"
#: include/classes/data/CItemData.php:1049
msgid "CPU load. Returns float"
@@ -13277,6 +13280,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Csak az engedélyezett hosztokhoz rendelt, engedélyezett elemekhez tartozó triggerekből számítva"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17678,6 +17685,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20423,6 +20440,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/id/LC_MESSAGES/frontend.po b/ui/locale/id/LC_MESSAGES/frontend.po
index 36d60ad41a5..6dd7a978d09 100644
--- a/ui/locale/id/LC_MESSAGES/frontend.po
+++ b/ui/locale/id/LC_MESSAGES/frontend.po
@@ -13167,6 +13167,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Hanya trigger yang ditugaskan ke host aktif dan tergantung pada item aktif yang dihitung."
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17555,6 +17559,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20288,6 +20302,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/it/LC_MESSAGES/frontend.po b/ui/locale/it/LC_MESSAGES/frontend.po
index 43b3dc3f387..6339be24147 100644
--- a/ui/locale/it/LC_MESSAGES/frontend.po
+++ b/ui/locale/it/LC_MESSAGES/frontend.po
@@ -13275,6 +13275,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Solo i trigger assegnati agli host abilitati e dipendenti da item abilitati son conteggiatiSolo i trigger assegnati agli host abilitati e dipendenti da item abilitati son conteggiati"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17674,6 +17678,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20419,6 +20433,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "E' prevista una stringa di caratteri"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/ja/LC_MESSAGES/frontend.po b/ui/locale/ja/LC_MESSAGES/frontend.po
index 5d6b19ad377..19c27b24379 100644
--- a/ui/locale/ja/LC_MESSAGES/frontend.po
+++ b/ui/locale/ja/LC_MESSAGES/frontend.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-08-17 06:22+0000\n"
+"PO-Revision-Date: 2022-10-15 04:10+0000\n"
"Last-Translator: Atsushi Tanaka <kha00760@nifty.com>\n"
"Language-Team: Zabbix\n"
"Language: ja\n"
@@ -13170,6 +13170,10 @@ msgstr "特権管理者のみがレポートのオーナーを設定できます
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "有効なホストとアイテムのトリガーのみカウント"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr "ログ表示"
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17557,6 +17561,16 @@ msgstr "今月(現在まで)"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr "この設定は数値データにのみ適用されます。 非数値データは常にヒストリから取得されます。"
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20293,6 +20307,10 @@ msgstr "論理値で指定してください"
msgid "a character string is expected"
msgstr "文字列で指定してください"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr "文字列、整数または浮動小数の値で指定してください"
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr "日付はYYYY-MM-DDフォーマットで指定してください。"
@@ -22482,7 +22500,7 @@ msgstr "via"
#: include/func.inc.php:659
msgctxt "week short"
msgid "w"
-msgstr ""
+msgstr "w"
#: include/classes/api/services/CTask.php:443
msgid "wrong discovery rule type"
diff --git a/ui/locale/ka/LC_MESSAGES/frontend.po b/ui/locale/ka/LC_MESSAGES/frontend.po
index 6b015e50f20..6fb94f82b81 100644
--- a/ui/locale/ka/LC_MESSAGES/frontend.po
+++ b/ui/locale/ka/LC_MESSAGES/frontend.po
@@ -13164,6 +13164,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17551,6 +17555,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20284,6 +20298,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/ko/LC_MESSAGES/frontend.po b/ui/locale/ko/LC_MESSAGES/frontend.po
index 7dbf2435a90..3335cff5233 100644
--- a/ui/locale/ko/LC_MESSAGES/frontend.po
+++ b/ui/locale/ko/LC_MESSAGES/frontend.po
@@ -13165,6 +13165,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "활성화된 호스트와 아이템의 트리거만 카운트"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17553,6 +17557,16 @@ msgstr "이번 달의 지금까지"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20286,6 +20300,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "문자열로 지정해 주십시오"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/lt/LC_MESSAGES/frontend.po b/ui/locale/lt/LC_MESSAGES/frontend.po
index d238ae7bc52..81519d665b9 100644
--- a/ui/locale/lt/LC_MESSAGES/frontend.po
+++ b/ui/locale/lt/LC_MESSAGES/frontend.po
@@ -13382,6 +13382,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17793,6 +17797,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20550,6 +20564,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/lv/LC_MESSAGES/frontend.po b/ui/locale/lv/LC_MESSAGES/frontend.po
index 66013aa4143..bdf92d4e613 100644
--- a/ui/locale/lv/LC_MESSAGES/frontend.po
+++ b/ui/locale/lv/LC_MESSAGES/frontend.po
@@ -13389,6 +13389,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17800,6 +17804,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20557,6 +20571,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/nb_NO/LC_MESSAGES/frontend.po b/ui/locale/nb_NO/LC_MESSAGES/frontend.po
index ad6c6bd68d4..5d359e9c186 100644
--- a/ui/locale/nb_NO/LC_MESSAGES/frontend.po
+++ b/ui/locale/nb_NO/LC_MESSAGES/frontend.po
@@ -13281,6 +13281,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Bare utløsere som er tilordnet aktiverte verter, og avhengig av aktiverte elementer telles"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17681,6 +17685,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20426,6 +20440,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "en tegnstreng forventes"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/nl/LC_MESSAGES/frontend.po b/ui/locale/nl/LC_MESSAGES/frontend.po
index a6696c7be02..833698a5306 100644
--- a/ui/locale/nl/LC_MESSAGES/frontend.po
+++ b/ui/locale/nl/LC_MESSAGES/frontend.po
@@ -13282,6 +13282,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Alleen triggers gekoppeld aan ingeschakelde hosts en afhankelijk van ingeschakelde items worden meegeteld."
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17682,6 +17686,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20427,6 +20441,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/pl/LC_MESSAGES/frontend.po b/ui/locale/pl/LC_MESSAGES/frontend.po
index 7d4e7ad22c1..0e31e0ed4fb 100644
--- a/ui/locale/pl/LC_MESSAGES/frontend.po
+++ b/ui/locale/pl/LC_MESSAGES/frontend.po
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-09-01 10:27+0000\n"
-"Last-Translator: Paweł Seledec <pawel.seledec@zetosoftware.pl>\n"
+"PO-Revision-Date: 2022-10-12 22:07+0000\n"
+"Last-Translator: Robert Szulist <r.szulist+zabbix@gmail.com>\n"
"Language-Team: Zabbix <info@zabbix.com>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
@@ -13398,6 +13398,10 @@ msgstr "Tylko super administratorzy mogą ustawić właściciela raportu."
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Liczone są tylko wyzwalacze przypisane do włączonych hostów w zależności od włączonych pozycji"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr "Otwórz dziennik"
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17809,6 +17813,16 @@ msgstr "Ten miesiąc jak dotąd"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr "To ustawienie dotyczy jedynie danych liczbowych: Dane nieliczbowe będą zawsze pobierane z historii."
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20569,6 +20583,10 @@ msgstr "spodziewano się wartości logicznej"
msgid "a character string is expected"
msgstr "oczekiwano ciągu znaków"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr "oczekiwany jest ciąg znaków, liczba całkowita lub wartość zmiennoprzecinkowa"
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr "spodziewano się daty w formacie RRRR-MM-DD"
@@ -22762,7 +22780,7 @@ msgstr "przez"
#: include/func.inc.php:659
msgctxt "week short"
msgid "w"
-msgstr ""
+msgstr "w"
#: include/classes/api/services/CTask.php:443
msgid "wrong discovery rule type"
diff --git a/ui/locale/pt_BR/LC_MESSAGES/frontend.po b/ui/locale/pt_BR/LC_MESSAGES/frontend.po
index 85c2bf53784..28ee5a8a22f 100644
--- a/ui/locale/pt_BR/LC_MESSAGES/frontend.po
+++ b/ui/locale/pt_BR/LC_MESSAGES/frontend.po
@@ -13285,6 +13285,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Somente triggers de hosts ativados e dependentes de itens ativados são contadas"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Ópera"
@@ -17685,6 +17689,16 @@ msgstr "Até agora neste mês"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20430,6 +20444,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "um texto é esperado"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/pt_PT/LC_MESSAGES/frontend.po b/ui/locale/pt_PT/LC_MESSAGES/frontend.po
index 3a7a2544380..302eb0c8582 100644
--- a/ui/locale/pt_PT/LC_MESSAGES/frontend.po
+++ b/ui/locale/pt_PT/LC_MESSAGES/frontend.po
@@ -13274,6 +13274,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Apenas são contabilizados triggers associados a hosts activos e que dependam de items activos"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17673,6 +17677,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20418,6 +20432,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "um texto é esperado"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/ro/LC_MESSAGES/frontend.po b/ui/locale/ro/LC_MESSAGES/frontend.po
index 7192595499d..d358850b351 100644
--- a/ui/locale/ro/LC_MESSAGES/frontend.po
+++ b/ui/locale/ro/LC_MESSAGES/frontend.po
@@ -13403,6 +13403,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Numai triggerii atribuiți să activeze servere și care depind de itemi activați sunt contorizați"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17817,6 +17821,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20575,6 +20589,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/ru/LC_MESSAGES/frontend.po b/ui/locale/ru/LC_MESSAGES/frontend.po
index 5a1ce2d0912..717bff0765c 100644
--- a/ui/locale/ru/LC_MESSAGES/frontend.po
+++ b/ui/locale/ru/LC_MESSAGES/frontend.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Zabbix 6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 16:36+0200\n"
-"PO-Revision-Date: 2022-09-06 07:52+0000\n"
+"PO-Revision-Date: 2022-10-06 10:34+0000\n"
"Last-Translator: Alexey <alexey.pustovalov@zabbix.com>\n"
"Language-Team: Zabbix translation team\n"
"Language: ru\n"
@@ -13398,6 +13398,10 @@ msgstr "Только супер-администраторы могут зада
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Подсчитываются только триггеры у активированных узлов сети и которые зависят от активных элементов данных"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -16239,7 +16243,7 @@ msgstr "Услуга \"%1$s\" не может иметь теги проблем
#: include/classes/helpers/CRoleHelper.php:352
#: include/views/configuration.action.list.php:28
msgid "Service actions"
-msgstr "Действия услуг"
+msgstr "Действия на услуги"
#: app/controllers/CControllerServiceCreate.php:171
msgid "Service created"
@@ -17809,6 +17813,16 @@ msgstr "В этом месяце"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr "Эта настройка применима только к числовым данным. Нечисловые данные всегда берутся из истории."
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20569,6 +20583,10 @@ msgstr "ожидается логическое значение"
msgid "a character string is expected"
msgstr "ожидается строка символов"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr "ожидается строка символов, целое число или число с плавающей точкой"
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr "ожидается дата в ГГГГ-ММ-ДД формате"
@@ -22762,7 +22780,7 @@ msgstr "через"
#: include/func.inc.php:659
msgctxt "week short"
msgid "w"
-msgstr ""
+msgstr "н"
#: include/classes/api/services/CTask.php:443
msgid "wrong discovery rule type"
diff --git a/ui/locale/sk/LC_MESSAGES/frontend.po b/ui/locale/sk/LC_MESSAGES/frontend.po
index b5cdd94d2f2..d10485c7961 100644
--- a/ui/locale/sk/LC_MESSAGES/frontend.po
+++ b/ui/locale/sk/LC_MESSAGES/frontend.po
@@ -13399,6 +13399,10 @@ msgstr "Vlastníka reportu môžu nastaviť iba superadministrátori."
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Len spúšťače priradené k monitorovaným hostom alebo závislé na monitorovaných položkách sú započítané"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17810,6 +17814,16 @@ msgstr "Tento mesiac zatiaľ"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr "Toto nastavenie platí len pre číselné údaje. Nečíselné údaje budú vždy prevzaté z histórie."
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20570,6 +20584,10 @@ msgstr "očakáva sa boolovská hodnota"
msgid "a character string is expected"
msgstr "reťazec znakov je očakávaný"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr "očakáva sa dátum vo formáte RRRR-MM-DD"
diff --git a/ui/locale/sv_SE/LC_MESSAGES/frontend.po b/ui/locale/sv_SE/LC_MESSAGES/frontend.po
index a181a0a3537..07355002db3 100644
--- a/ui/locale/sv_SE/LC_MESSAGES/frontend.po
+++ b/ui/locale/sv_SE/LC_MESSAGES/frontend.po
@@ -13273,6 +13273,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr ""
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr ""
@@ -17672,6 +17676,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20417,6 +20431,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/tr/LC_MESSAGES/frontend.po b/ui/locale/tr/LC_MESSAGES/frontend.po
index 1b13aa363f2..a5c8fb5857f 100644
--- a/ui/locale/tr/LC_MESSAGES/frontend.po
+++ b/ui/locale/tr/LC_MESSAGES/frontend.po
@@ -13281,6 +13281,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Yalnızca etkin ana makinelere atanmış ve etkin öğelere bağımlılığı olan tetikler sayıldı"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17682,6 +17686,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20427,6 +20441,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "bir karakter string bekleniyor"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/uk/LC_MESSAGES/frontend.po b/ui/locale/uk/LC_MESSAGES/frontend.po
index aacc9e317c6..5b234375ba3 100644
--- a/ui/locale/uk/LC_MESSAGES/frontend.po
+++ b/ui/locale/uk/LC_MESSAGES/frontend.po
@@ -13392,6 +13392,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Підраховуються тригери тільки у вузлів мережі під спостереженням та які залежать від активних елементів даних"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17804,6 +17808,16 @@ msgstr "Цей місяць по нині"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20561,6 +20575,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "очікується рядок символів"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/vi/LC_MESSAGES/frontend.po b/ui/locale/vi/LC_MESSAGES/frontend.po
index bf8d6eb8abf..940bfa89779 100644
--- a/ui/locale/vi/LC_MESSAGES/frontend.po
+++ b/ui/locale/vi/LC_MESSAGES/frontend.po
@@ -13167,6 +13167,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "Chỉ các trigger được gán đến các host đã kích hoạt và tùy thuộc vào các item đã kích hoạt mới được tính"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17555,6 +17559,16 @@ msgstr "Tháng này đến nay"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20288,6 +20302,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "Chuỗi kí tự được mong đợi "
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/zh_CN/LC_MESSAGES/frontend.po b/ui/locale/zh_CN/LC_MESSAGES/frontend.po
index 1bac70ee151..0168733340f 100644
--- a/ui/locale/zh_CN/LC_MESSAGES/frontend.po
+++ b/ui/locale/zh_CN/LC_MESSAGES/frontend.po
@@ -13165,6 +13165,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "只计算指派给启用的主机的和相依于启用的项目的触发器"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17552,6 +17556,16 @@ msgstr "这个月到目前为止"
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20285,6 +20299,10 @@ msgstr ""
msgid "a character string is expected"
msgstr "请在字符串中指定"
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/locale/zh_TW/LC_MESSAGES/frontend.po b/ui/locale/zh_TW/LC_MESSAGES/frontend.po
index 21a8059a7b1..955e5ba93e0 100644
--- a/ui/locale/zh_TW/LC_MESSAGES/frontend.po
+++ b/ui/locale/zh_TW/LC_MESSAGES/frontend.po
@@ -13171,6 +13171,10 @@ msgstr ""
msgid "Only triggers assigned to enabled hosts and depending on enabled items are counted"
msgstr "只計算指派給啟用的主機的和相依於啟用的項目的觸發器"
+#: app/views/popup.mediatypetest.edit.php:52 app/views/popup.scriptexec.php:40
+msgid "Open log"
+msgstr ""
+
#: include/httptest.inc.php:421
msgid "Opera"
msgstr "Opera"
@@ -17559,6 +17563,16 @@ msgstr ""
msgid "This setting applies only to numeric data. Non-numeric data will always be taken from history."
msgstr ""
+#: app/partials/administration.system.info.php:199
+#: app/views/administration.housekeeping.edit.php:134
+msgid "This setting should be enabled, because history tables contain compressed chunks."
+msgstr ""
+
+#: app/partials/administration.system.info.php:213
+#: app/views/administration.housekeeping.edit.php:163
+msgid "This setting should be enabled, because trend tables contain compressed chunks."
+msgstr ""
+
#: include/views/configuration.item.edit.php:123
#: include/views/configuration.item.prototype.edit.php:109
msgid "This type of information may not match the key."
@@ -20292,6 +20306,10 @@ msgstr ""
msgid "a character string is expected"
msgstr ""
+#: include/classes/validators/CApiInputValidator.php:854
+msgid "a character string, integer or floating point value is expected"
+msgstr ""
+
#: include/classes/validators/CApiInputValidator.php:2560
msgid "a date in YYYY-MM-DD format is expected"
msgstr ""
diff --git a/ui/tests/api_json/ApiJsonTests.php b/ui/tests/api_json/ApiJsonTests.php
index f98587de7ca..0208b8e032b 100644
--- a/ui/tests/api_json/ApiJsonTests.php
+++ b/ui/tests/api_json/ApiJsonTests.php
@@ -55,6 +55,19 @@ require_once dirname(__FILE__).'/testMap.php';
require_once dirname(__FILE__).'/testDiscoveryRule.php';
require_once dirname(__FILE__).'/testDependentItems.php';
require_once dirname(__FILE__).'/testAuthentication.php';
+require_once dirname(__FILE__).'/testAuditlogAction.php';
+require_once dirname(__FILE__).'/testAuditlogAutoregistration.php';
+require_once dirname(__FILE__).'/testAuditlogDashboard.php';
+require_once dirname(__FILE__).'/testAuditlogEventCorrelation.php';
+require_once dirname(__FILE__).'/testAuditlogIconMap.php';
+require_once dirname(__FILE__).'/testAuditlogMaintenance.php';
+require_once dirname(__FILE__).'/testAuditlogMediaType.php';
+require_once dirname(__FILE__).'/testAuditlogProxy.php';
+require_once dirname(__FILE__).'/testAuditlogScheduledReport.php';
+require_once dirname(__FILE__).'/testAuditlogSettings.php';
+require_once dirname(__FILE__).'/testAuditlogToken.php';
+require_once dirname(__FILE__).'/testAuditlogUser.php';
+require_once dirname(__FILE__).'/testAuditlogUserGroups.php';
use PHPUnit\Framework\TestSuite;
@@ -98,6 +111,19 @@ class ApiJsonTests {
$suite->addTestSuite('testMap');
$suite->addTestSuite('testDiscoveryRule');
$suite->addTestSuite('testAuthentication');
+ $suite->addTestSuite('testAuditlogAction');
+ $suite->addTestSuite('testAuditlogAutoregistration');
+ $suite->addTestSuite('testAuditlogDashboard');
+ $suite->addTestSuite('testAuditlogEventCorrelation');
+ $suite->addTestSuite('testAuditlogIconMap');
+ $suite->addTestSuite('testAuditlogMaintenance');
+ $suite->addTestSuite('testAuditlogMediaType');
+ $suite->addTestSuite('testAuditlogProxy');
+ $suite->addTestSuite('testAuditlogScheduledReport');
+ $suite->addTestSuite('testAuditlogSettings');
+ $suite->addTestSuite('testAuditlogToken');
+ $suite->addTestSuite('testAuditlogUser');
+ $suite->addTestSuite('testAuditlogUserGroups');
return $suite;
}
diff --git a/ui/tests/api_json/common/testAuditlogCommon.php b/ui/tests/api_json/common/testAuditlogCommon.php
new file mode 100755
index 00000000000..9c4547c8c67
--- /dev/null
+++ b/ui/tests/api_json/common/testAuditlogCommon.php
@@ -0,0 +1,77 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/../../include/CAPITest.php';
+
+class testAuditlogCommon extends CAPITest {
+
+ /**
+ * Audit log Add action id.
+ */
+ public $add_actionid = 0;
+
+ /**
+ * Audit log Update action id.
+ */
+ public $update_actionid = 1;
+
+ /**
+ * Audit log Delete action id.
+ */
+ public $delete_actionid = 2;
+
+ /**
+ * Audit log Logout action id.
+ */
+ public $logout_actionid = 4;
+
+ /**
+ * Audit log Login action id.
+ */
+ public $login_actionid = 8;
+
+ /**
+ * Audit log Failed Login action id.
+ */
+ public $failedlogin_actionid = 9;
+
+ /**
+ * Send auditlog.get request and check returned values.
+ *
+ * @param string $parameter what parameter need to be checked in audit
+ * @param integer $actionid action id
+ * @param string $expected what should be returned in request
+ * @param integer $resourceid resource id
+ */
+ public function getAuditDetails($parameter, $actionid, $expected, $resourceid) {
+ $get = $this->call('auditlog.get', [
+ 'output' => [$parameter],
+ 'sortfield' => 'clock',
+ 'sortorder' => 'DESC',
+ 'filter' => [
+ 'resourceid' => $resourceid,
+ 'action' => $actionid
+ ]
+ ]);
+
+ $this->assertEquals($expected, $get['result'][0][$parameter]);
+ }
+}
diff --git a/ui/tests/api_json/testAPIInfo.php b/ui/tests/api_json/testAPIInfo.php
index 00d5e9d5684..c881a4cba43 100644
--- a/ui/tests/api_json/testAPIInfo.php
+++ b/ui/tests/api_json/testAPIInfo.php
@@ -36,6 +36,6 @@ class testAPIInfo extends CAPITest {
$this->disableAuthorization();
$result = $this->call('apiinfo.version', []);
- $this->assertSame('6.0.9', $result['result']);
+ $this->assertSame('6.0.10', $result['result']);
}
}
diff --git a/ui/tests/api_json/testAuditlogAction.php b/ui/tests/api_json/testAuditlogAction.php
new file mode 100755
index 00000000000..6972da9d5a8
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogAction.php
@@ -0,0 +1,225 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup actions
+ */
+class testAuditlogAction extends testAuditlogCommon {
+
+ /**
+ * Existing Action ID.
+ */
+ private const ACTIONID = 3;
+
+ public function testAuditlogAction_Create() {
+ $create = $this->call('action.create', [
+ [
+ 'name' => 'Audit action',
+ 'eventsource' => 0,
+ 'status' => 0,
+ 'esc_period' => '2m',
+ 'filter' => [
+ 'evaltype' => 0,
+ 'conditions' => [
+ [
+ 'conditiontype' => 1,
+ 'operator' => 0,
+ 'value' => 10084
+ ]
+ ]
+ ],
+ 'operations' => [
+ [
+ 'operationtype' => 0,
+ 'esc_period' => '0s',
+ 'esc_step_from' => 1,
+ 'esc_step_to' => 2,
+ 'evaltype' => 0,
+ 'opmessage_grp' => [
+ [
+ 'usrgrpid' => 7
+ ]
+ ],
+ 'opmessage' => [
+ 'default_msg' => 1,
+ 'mediatypeid' => 1
+ ]
+ ]
+ ],
+ 'recovery_operations' => [
+ [
+ 'operationtype' => 11,
+ 'opmessage' => [
+ 'default_msg' => 1
+ ]
+ ]
+ ],
+ 'update_operations' => [
+ [
+ 'operationtype' => 12,
+ 'opmessage' => [
+ 'default_msg' => 0,
+ 'message' => 'Custom update operation message body',
+ 'subject' => 'Custom update operation message subject'
+ ]
+ ]
+ ],
+ 'pause_suppressed' => 0,
+ 'notify_if_canceled' => 0
+ ]
+ ]);
+
+ $resourceid = $create['result']['actionids'][0];
+ $operationid = CDBHelper::getAll('SELECT operationid FROM operations WHERE actionid='.
+ zbx_dbstr($resourceid).' AND operationtype In (0,11,12)'
+ );
+ $conditiodid = CDBHelper::getRow('SELECT conditionid FROM conditions WHERE actionid='.zbx_dbstr($resourceid));
+ $op_group = CDBHelper::getRow('SELECT opmessage_grpid FROM opmessage_grp WHERE operationid='.
+ zbx_dbstr($operationid[0]['operationid'])
+ );
+
+ $created = json_encode([
+ 'action.name' => ['add', 'Audit action'],
+ 'action.esc_period' => ['add', '2m'],
+ 'action.filter' => ['add'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].']' => ['add'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].'].conditiontype' => ['add', '1'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].'].value' => ['add', '10084'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].'].conditionid' => ['add', $conditiodid['conditionid']],
+ 'action.operations['.$operationid[0]['operationid'].']' => ['add'],
+ 'action.operations['.$operationid[0]['operationid'].'].esc_period' => ['add', '0s'],
+ 'action.operations['.$operationid[0]['operationid'].'].esc_step_to' => ['add', '2'],
+ 'action.operations['.$operationid[0]['operationid'].'].opmessage_grp['.$op_group['opmessage_grpid'].']' => ['add'],
+ 'action.operations['.$operationid[0]['operationid'].'].opmessage_grp['.$op_group['opmessage_grpid'].'].usrgrpid'
+ => ['add', '7'],
+ 'action.operations['.$operationid[0]['operationid'].'].opmessage_grp['.$op_group['opmessage_grpid'].'].opmessage_grpid'
+ => ['add', $op_group['opmessage_grpid']],
+ 'action.operations['.$operationid[0]['operationid'].'].opmessage' => ['add'],
+ 'action.operations['.$operationid[0]['operationid'].'].opmessage.mediatypeid' => ['add', '1'],
+ 'action.operations['.$operationid[0]['operationid'].'].operationid' => ['add', $operationid[0]['operationid']],
+ 'action.recovery_operations['.$operationid[1]['operationid'].']' => ['add'],
+ 'action.recovery_operations['.$operationid[1]['operationid'].'].operationtype' => ['add', '11'],
+ 'action.recovery_operations['.$operationid[1]['operationid'].'].opmessage' => ['add'],
+ 'action.recovery_operations['.$operationid[1]['operationid'].'].recovery' => ['add', '1'],
+ 'action.recovery_operations['.$operationid[1]['operationid'].'].operationid' => ['add', $operationid[1]['operationid']],
+ 'action.update_operations['.$operationid[2]['operationid'].']' => ['add'],
+ 'action.update_operations['.$operationid[2]['operationid'].'].operationtype' => ['add', '12'],
+ 'action.update_operations['.$operationid[2]['operationid'].'].opmessage' => ['add'],
+ 'action.update_operations['.$operationid[2]['operationid'].'].opmessage.default_msg' => ['add', '0'],
+ 'action.update_operations['.$operationid[2]['operationid'].'].opmessage.message'
+ => ['add', 'Custom update operation message body'],
+ 'action.update_operations['.$operationid[2]['operationid'].'].opmessage.subject'
+ => ['add', 'Custom update operation message subject'],
+ 'action.update_operations['.$operationid[2]['operationid'].'].recovery' => ['add', '2'],
+ 'action.update_operations['.$operationid[2]['operationid'].'].operationid' => ['add', $operationid[2]['operationid']],
+ 'action.pause_suppressed' => ['add', '0'],
+ 'action.notify_if_canceled' => ['add', '0'],
+ 'action.actionid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogAction_Update() {
+ $this->call('action.update', [
+ [
+ 'actionid' => self::ACTIONID,
+ 'name' => 'Updated action audit',
+ 'status' => 1,
+ 'esc_period' => '15m',
+ 'filter' => [
+ 'evaltype' => 2,
+ 'conditions' => [
+ [
+ 'conditiontype' => 3,
+ 'operator' => 2,
+ 'value' => 'Trigger name'
+ ]
+ ]
+ ],
+ 'operations' => [
+ [
+ 'operationtype' => 0,
+ 'esc_period' => 1000,
+ 'esc_step_from' => 1,
+ 'esc_step_to' => 2,
+ 'evaltype' => 1,
+ 'opmessage_grp' => [
+ [
+ 'usrgrpid' => 9
+ ]
+ ],
+ 'opmessage' => [
+ 'default_msg' => 0,
+ 'message' => 'Updated audit message',
+ 'subject' => 'Updated audit message'
+ ]
+ ]
+ ],
+ 'pause_suppressed' => 1,
+ 'notify_if_canceled' => 1
+ ]
+ ]);
+
+ $operationid = CDBHelper::getRow('SELECT operationid FROM operations WHERE (actionid, operationtype)=('
+ .zbx_dbstr(self::ACTIONID).', 0)'
+ );
+ $conditiodid = CDBHelper::getRow('SELECT conditionid FROM conditions WHERE actionid='.zbx_dbstr(self::ACTIONID));
+ $op_group = CDBHelper::getRow('SELECT opmessage_grpid FROM opmessage_grp WHERE operationid='.
+ zbx_dbstr($operationid['operationid'])
+ );
+
+ $updated = json_encode([
+ 'action.operations['.$operationid['operationid'].'].opmessage_grp[1]' => ['delete'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].']' => ['add'],
+ 'action.operations['.$operationid['operationid'].'].opmessage_grp['.$op_group['opmessage_grpid'].']' => ['add'],
+ 'action.name' => ['update', 'Updated action audit', 'Report problems to Zabbix administrators'],
+ 'action.esc_period' => ['update', '15m', '1h'],
+ 'action.filter' => ['update'],
+ 'action.filter.evaltype' => ['update', '2', '0'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].'].conditiontype' => ['add', '3'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].'].operator' => ['add', '2'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].'].value' => ['add', 'Trigger name'],
+ 'action.filter.conditions['.$conditiodid['conditionid'].'].conditionid' => ['add', $conditiodid['conditionid']],
+ 'action.operations['.$operationid['operationid'].']' => ['update'],
+ 'action.operations['.$operationid['operationid'].'].esc_period' => ['update', '1000', '0'],
+ 'action.operations['.$operationid['operationid'].'].esc_step_to' => ['update', '2', '1'],
+ 'action.operations['.$operationid['operationid'].'].evaltype' => ['update', '1', '0'],
+ 'action.operations['.$operationid['operationid'].'].opmessage_grp['.$op_group['opmessage_grpid'].'].usrgrpid'
+ => ['add', '9'],
+ 'action.operations['.$operationid['operationid'].'].opmessage_grp['.$op_group['opmessage_grpid'].'].opmessage_grpid'
+ => ['add', $op_group['opmessage_grpid']],
+ 'action.operations['.$operationid['operationid'].'].opmessage' => ['update'],
+ 'action.operations['.$operationid['operationid'].'].opmessage.default_msg' => ['update', '0', '1'],
+ 'action.operations['.$operationid['operationid'].'].opmessage.message' => ['update', 'Updated audit message', ''],
+ 'action.operations['.$operationid['operationid'].'].opmessage.subject' => ['update', 'Updated audit message', '']
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::ACTIONID);
+ }
+
+ public function testAuditlogAction_Delete() {
+ $this->call('action.delete', [self::ACTIONID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'Updated action audit', self::ACTIONID);
+ }
+}
diff --git a/src/go/plugins/postgres/handler_cache.go b/ui/tests/api_json/testAuditlogAutoregistration.php
index 84ce45cf3ce..b6a7aeea425 100644..100755
--- a/src/go/plugins/postgres/handler_cache.go
+++ b/ui/tests/api_json/testAuditlogAutoregistration.php
@@ -1,3 +1,4 @@
+<?php
/*
** Zabbix
** Copyright (C) 2001-2022 Zabbix SIA
@@ -17,36 +18,27 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
-package postgres
-import (
- "context"
- "errors"
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
- "git.zabbix.com/ap/plugin-support/zbxerr"
- "github.com/jackc/pgx/v4"
-)
+/**
+ * @backup config_autoreg_tls, config
+ */
+class testAuditlogAutoregistration extends testAuditlogCommon {
-// cacheHandler finds cache hit percent and returns int64 if all is OK or nil otherwise.
-func cacheHandler(ctx context.Context, conn PostgresClient,
- _ string, _ map[string]string, _ ...string) (interface{}, error) {
- var cache float64
+ public function testAuditlogAutoregistration_Update() {
+ $updated = json_encode([
+ 'autoregistration.tls_accept' => ['update', '3', '1'],
+ 'autoregistration.tls_psk_identity' => ['update', '******', '******'],
+ 'autoregistration.tls_psk' => ['update', '******', '******']
+ ]);
- query := `SELECT round(sum(blks_hit)*100/sum(blks_hit+blks_read), 2) FROM pg_catalog.pg_stat_database;`
+ $this->call('autoregistration.update', [
+ 'tls_accept' => 3,
+ 'tls_psk_identity' => 'PSK 001',
+ 'tls_psk' => '11111595725ac58dd977beef14b97461a7c1045b9a1c923453302c5473193478'
+ ]);
- row, err := conn.QueryRow(ctx, query)
- if err != nil {
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
+ $this->getAuditDetails('details', $this->update_actionid, $updated, 1);
}
-
- err = row.Scan(&cache)
- if err != nil {
- if errors.Is(err, pgx.ErrNoRows) {
- return nil, zbxerr.ErrorEmptyResult.Wrap(err)
- }
-
- return nil, zbxerr.ErrorCannotFetchData.Wrap(err)
- }
-
- return cache, nil
}
diff --git a/ui/tests/api_json/testAuditlogDashboard.php b/ui/tests/api_json/testAuditlogDashboard.php
new file mode 100755
index 00000000000..87e5d49c3b0
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogDashboard.php
@@ -0,0 +1,220 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup dashboard
+ */
+class testAuditlogDashboard extends testAuditlogCommon {
+
+ /**
+ * Existing Dashboard ID.
+ */
+ private const DASHBOARDID = 1;
+
+ public function testAuditlogDashboard_Create() {
+ $create = $this->call('dashboard.create', [
+ [
+ 'name' => 'Audit dashboard',
+ 'display_period' => 30,
+ 'auto_start' => 1,
+ 'pages' => [
+ [
+ 'widgets' => [
+ [
+ 'type' => 'problems',
+ 'x' => 0,
+ 'y' => 0,
+ 'width' => 12,
+ 'height' => 5,
+ 'view_mode' => 0,
+ 'fields' => [
+ [
+ 'type' => 1,
+ 'name' => 'tags.tag.0',
+ 'value' => 'service'
+ ],
+ [
+ 'type' => 0,
+ 'name' => 'tags.operator.0',
+ 'value' => 1
+ ],
+ [
+ 'type' => 1,
+ 'name' => 'tags.value.0',
+ 'value' => 'zabbix_server'
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ 'userGroups' => [
+ [
+ 'usrgrpid' => 7,
+ 'permission' => 2
+ ]
+ ],
+ 'users' => [
+ [
+ 'userid' => 1,
+ 'permission' => 2
+ ]
+ ]
+ ]
+ ]);
+
+ $resourceid = $create['result']['dashboardids'][0];
+ $pageid = CDBHelper::getRow('SELECT dashboard_pageid FROM dashboard_page WHERE dashboardid='.zbx_dbstr($resourceid));
+ $widgetid = CDBHelper::getRow('SELECT widgetid FROM widget WHERE dashboard_pageid='.
+ zbx_dbstr($pageid['dashboard_pageid'])
+ );
+ $fieldid = CDBHelper::getAll('SELECT widget_fieldid FROM widget_field WHERE widgetid ='.
+ zbx_dbstr($widgetid['widgetid']).' ORDER BY widget_fieldid ASC'
+ );
+ $dashboard_userid = CDBHelper::getRow('SELECT dashboard_userid FROM dashboard_user WHERE dashboardid='.
+ zbx_dbstr($resourceid)
+ );
+ $dashboard_usrgrpid = CDBHelper::getRow('SELECT dashboard_usrgrpid FROM dashboard_usrgrp WHERE dashboardid='.
+ zbx_dbstr($resourceid)
+ );
+
+ $created = json_encode([
+ 'dashboard.name' => ['add', 'Audit dashboard'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].']' => ['add'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].type' => ['add', 'problems'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].width' => ['add', '12'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].height' => ['add', '5'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[0]['widget_fieldid'].']' => ['add'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[0]['widget_fieldid'].'].type' => ['add', '1'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[0]['widget_fieldid'].'].name' => ['add', 'tags.tag.0'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[0]['widget_fieldid'].'].value' => ['add', 'service'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[0]['widget_fieldid'].'].widget_fieldid' => ['add', $fieldid[0]['widget_fieldid']],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[1]['widget_fieldid'].']' => ['add'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[1]['widget_fieldid'].'].name' => ['add', 'tags.operator.0'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[1]['widget_fieldid'].'].value' => ['add', '1'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[1]['widget_fieldid'].'].widget_fieldid' => ['add', $fieldid[1]['widget_fieldid']],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[2]['widget_fieldid'].']' => ['add'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[2]['widget_fieldid'].'].type' => ['add', '1'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[2]['widget_fieldid'].'].name' => ['add', 'tags.value.0'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[2]['widget_fieldid'].'].value' => ['add', 'zabbix_server'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'fields['.$fieldid[2]['widget_fieldid'].'].widget_fieldid' => ['add', $fieldid[2]['widget_fieldid']],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].'.
+ 'widgetid' => ['add', $widgetid['widgetid']],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].']' => ['add'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].dashboard_pageid' => ['add', $pageid['dashboard_pageid']],
+ 'dashboard.userGroups['.$dashboard_usrgrpid['dashboard_usrgrpid'].']' => ['add'],
+ 'dashboard.userGroups['.$dashboard_usrgrpid['dashboard_usrgrpid'].'].usrgrpid' => ['add', '7'],
+ 'dashboard.userGroups['.$dashboard_usrgrpid['dashboard_usrgrpid'].'].dashboard_usrgrpid'
+ => ['add', $dashboard_usrgrpid['dashboard_usrgrpid']],
+ 'dashboard.users['.$dashboard_userid['dashboard_userid'].']' => ['add'],
+ 'dashboard.users['.$dashboard_userid['dashboard_userid'].'].userid' => ['add', '1'],
+ 'dashboard.users['.$dashboard_userid['dashboard_userid'].'].dashboard_userid'
+ => ['add', $dashboard_userid['dashboard_userid']],
+ 'dashboard.userid' => ['add', '1'],
+ 'dashboard.dashboardid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogDashboard_Update() {
+ $this->call('dashboard.update', [
+ [
+ 'dashboardid' => self::DASHBOARDID,
+ 'name' => 'Updated dashboard name',
+ 'display_period' => 60,
+ 'auto_start' => 0,
+ 'pages' => [
+ [
+ 'widgets' => [
+ [
+ 'type' => 'clock',
+ 'x' => 0,
+ 'y' => 0,
+ 'width' => 4,
+ 'height' => 3
+ ]
+ ]
+ ]
+ ],
+ 'userGroups' => [
+ [
+ 'usrgrpid' => 7,
+ 'permission' => 3
+ ]
+ ]
+ ]
+ ]);
+
+ $pageid = CDBHelper::getRow('SELECT dashboard_pageid FROM dashboard_page WHERE dashboardid='.
+ zbx_dbstr(self::DASHBOARDID)
+ );
+ $widgetid = CDBHelper::getRow('SELECT widgetid FROM widget WHERE dashboard_pageid='.
+ zbx_dbstr($pageid['dashboard_pageid'])
+ );
+ $dashboard_usrgrpid = CDBHelper::getRow('SELECT dashboard_usrgrpid FROM dashboard_usrgrp WHERE dashboardid='.
+ zbx_dbstr(self::DASHBOARDID)
+ );
+
+ $updated = json_encode([
+ 'dashboard.pages[1]' => ['delete'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].']' => ['add'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].']' => ['add'],
+ 'dashboard.userGroups['.$dashboard_usrgrpid['dashboard_usrgrpid'].']' => ['add'],
+ 'dashboard.name' => ['update', 'Updated dashboard name', 'Global view'],
+ 'dashboard.display_period' => ['update', '60', '30'],
+ 'dashboard.auto_start' => ['update', '0', '1'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].type' => ['add', 'clock'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].width' => ['add', '4'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].height' => ['add', '3'],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].widgets['.$widgetid['widgetid'].'].widgetid'
+ => ['add', $widgetid['widgetid']],
+ 'dashboard.pages['.$pageid['dashboard_pageid'].'].dashboard_pageid' => ['add', $pageid['dashboard_pageid']],
+ 'dashboard.userGroups['.$dashboard_usrgrpid['dashboard_usrgrpid'].'].usrgrpid' => ['add', '7'],
+ 'dashboard.userGroups['.$dashboard_usrgrpid['dashboard_usrgrpid'].'].permission' => ['add', '3'],
+ 'dashboard.userGroups['.$dashboard_usrgrpid['dashboard_usrgrpid'].'].dashboard_usrgrpid'
+ => ['add', $dashboard_usrgrpid['dashboard_usrgrpid']]
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::DASHBOARDID);
+ }
+
+ public function testAuditlogDashboard_Delete() {
+ $this->call('dashboard.delete', [self::DASHBOARDID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'Updated dashboard name', self::DASHBOARDID);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogEventCorrelation.php b/ui/tests/api_json/testAuditlogEventCorrelation.php
new file mode 100755
index 00000000000..3cb13136666
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogEventCorrelation.php
@@ -0,0 +1,126 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup correlation
+ */
+class testAuditlogEventCorrelation extends testAuditlogCommon {
+
+ /**
+ * Existing Event correlation ID.
+ */
+ private const CORRELATIONID = 99001;
+
+ public function testAuditlogEventCorrelation_Create() {
+ $create = $this->call('correlation.create', [
+ [
+ 'name' => 'New event correlation for audit',
+ 'filter' => [
+ 'evaltype' => 0,
+ 'conditions' => [
+ [
+ 'type' => 1,
+ 'tag' => 'ok'
+ ]
+ ]
+ ],
+ 'operations' => [
+ [
+ 'type' => 1
+ ]
+ ]
+ ]
+ ]);
+
+ $resourceid = $create['result']['correlationids'][0];
+ $conditionid = CDBHelper::getRow('SELECT corr_conditionid FROM corr_condition WHERE correlationid='.
+ zbx_dbstr($resourceid)
+ );
+
+ $created = json_encode([
+ 'correlation.name' => ['add', 'New event correlation for audit'],
+ 'correlation.filter' => ['add'],
+ 'correlation.filter.conditions['.$conditionid['corr_conditionid'].']' => ['add'],
+ 'correlation.filter.conditions['.$conditionid['corr_conditionid'].'].type' => ['add', '1'],
+ 'correlation.filter.conditions['.$conditionid['corr_conditionid'].'].tag' => ['add', 'ok'],
+ 'correlation.filter.conditions['.$conditionid['corr_conditionid'].'].corr_conditionid'
+ => ['add', $conditionid['corr_conditionid']],
+ 'correlation.operations['.$resourceid.']' => ['add'],
+ 'correlation.operations['.$resourceid.'].type' => ['add', '1'],
+ 'correlation.operations['.$resourceid.'].corr_operationid' => ['add', $resourceid],
+ 'correlation.correlationid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogEventCorrelation_Update() {
+ // Correlation name before update
+ $correlation_name = CDBHelper::getRow('SELECT name FROM correlation WHERE correlationid ='.
+ zbx_dbstr(self::CORRELATIONID)
+ );
+
+ $this->call('correlation.update', [
+ [
+ 'correlationid' => self::CORRELATIONID,
+ 'name' => 'Updated event correlation name',
+ 'filter' => [
+ 'evaltype' => 2,
+ 'conditions' => [
+ [
+ 'type' => 0,
+ 'tag' => 'not ok'
+ ]
+ ]
+ ],
+ 'operations' => [
+ [
+ 'type' => 0
+ ]
+ ]
+ ]
+ ]);
+
+ $condition = CDBHelper::getRow('SELECT corr_conditionid FROM corr_condition WHERE correlationid ='.
+ zbx_dbstr(self::CORRELATIONID)
+ );
+
+ $updated = json_encode([
+ 'correlation.filter.conditions[99001]' => ['delete'],
+ 'correlation.filter.conditions['.$condition['corr_conditionid'].']' => ['add'],
+ 'correlation.name' => ['update', 'Updated event correlation name', $correlation_name['name']],
+ 'correlation.filter' => ['update'],
+ 'correlation.filter.evaltype' => ['update', '2', '0'],
+ 'correlation.filter.conditions['.$condition['corr_conditionid'].'].tag' => ['add', 'not ok'],
+ 'correlation.filter.conditions['.$condition['corr_conditionid'].'].corr_conditionid'
+ => ['add', $condition['corr_conditionid']]
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::CORRELATIONID);
+ }
+
+ public function testAuditlogEventCorrelation_Delete() {
+ $this->call('correlation.delete', [self::CORRELATIONID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'Updated event correlation name', self::CORRELATIONID);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogIconMap.php b/ui/tests/api_json/testAuditlogIconMap.php
new file mode 100755
index 00000000000..e11c8796ad4
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogIconMap.php
@@ -0,0 +1,102 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup icon_mapping
+ */
+class testAuditlogIconMap extends testAuditlogCommon {
+
+ /**
+ * Existing Icon map ID.
+ */
+ private const ICONMAPID = 1;
+
+ public function testAuditlogIconMap_Create() {
+ $create = $this->call('iconmap.create', [
+ [
+ 'name' => 'icon_mapping',
+ 'default_iconid' => 5,
+ 'mappings' => [
+ [
+ 'inventory_link' => 1,
+ 'expression' => 'created_mapping',
+ 'iconid' => 2
+ ]
+ ]
+ ]
+ ]);
+
+ $resourceid = $create['result']['iconmapids'][0];
+ $icon_map = CDBHelper::getRow('SELECT iconmappingid FROM icon_mapping WHERE iconmapid='.zbx_dbstr($resourceid));
+
+ $created = json_encode([
+ 'iconmap.name' => ['add', 'icon_mapping'],
+ 'iconmap.default_iconid' => ['add', '5'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].']' => ['add'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].inventory_link' => ['add', '1'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].expression' => ['add', 'created_mapping'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].iconid' => ['add', '2'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].iconmappingid' => ['add', $icon_map['iconmappingid']],
+ 'iconmap.iconmapid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogIconMap_Update() {
+ $this->call('iconmap.update', [
+ [
+ 'iconmapid' => self::ICONMAPID,
+ 'name' => 'updated_icon_mapping',
+ 'default_iconid' => 4,
+ 'mappings' => [
+ [
+ 'inventory_link' => 2,
+ 'expression' => 'updated_created_mapping',
+ 'iconid' => 3
+ ]
+ ]
+ ]
+ ]);
+
+ $icon_map = CDBHelper::getRow('SELECT iconmappingid FROM icon_mapping WHERE iconmapid='.zbx_dbstr(self::ICONMAPID));
+
+ $updated = json_encode([
+ 'iconmap.mappings[1]' => ['delete'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].']' => ['add'],
+ 'iconmap.name' => ['update', 'updated_icon_mapping', 'API icon map'],
+ 'iconmap.default_iconid' => ['update', '4', '2'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].inventory_link' => ['add', '2'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].expression' => ['add', 'updated_created_mapping'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].iconid' => ['add', '3'],
+ 'iconmap.mappings['.$icon_map['iconmappingid'].'].iconmappingid' => ['add', $icon_map['iconmappingid']]
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::ICONMAPID);
+ }
+
+ public function testAuditlogIconMap_Delete() {
+ $this->call('iconmap.delete', [self::ICONMAPID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'updated_icon_mapping', self::ICONMAPID);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogMaintenance.php b/ui/tests/api_json/testAuditlogMaintenance.php
new file mode 100755
index 00000000000..8fabc9eca59
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogMaintenance.php
@@ -0,0 +1,166 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup maintenances
+ */
+class testAuditlogMaintenance extends testAuditlogCommon {
+
+ /**
+ * Existing Maintenance ID.
+ */
+ private const MAINTENANCEID = 60002;
+
+ public function testAuditlogMaintenance_Create() {
+ $create = $this->call('maintenance.create', [
+ [
+ 'name' => 'audit_maintenance',
+ 'active_since' => 1358844540,
+ 'active_till' => 1390466940,
+ 'tags_evaltype' => 0,
+ 'groups' => [
+ 'groupid' => 2
+ ],
+ 'timeperiods' => [
+ [
+ 'period' => 3600,
+ 'timeperiod_type' => 3,
+ 'start_time' => 64800,
+ 'every' => 1,
+ 'dayofweek' => 64
+ ]
+ ],
+ 'tags' => [
+ [
+ 'tag' => 'audit',
+ 'operator' => 0,
+ 'value' => 'details'
+ ]
+ ]
+ ]
+ ]);
+
+ $resourceid = $create['result']['maintenanceids'][0];
+ $groupid = CDBHelper::getRow('SELECT maintenance_groupid FROM maintenances_groups WHERE maintenanceid='.
+ zbx_dbstr($resourceid)
+ );
+ $timeperiod = CDBHelper::getRow('SELECT timeperiodid FROM timeperiods ORDER BY timeperiodid DESC');
+ $tags = CDBHelper::getRow('SELECT maintenancetagid FROM maintenance_tag WHERE maintenanceid='.zbx_dbstr($resourceid));
+
+ $created = json_encode([
+ 'maintenance.name' => ['add', 'audit_maintenance'],
+ 'maintenance.active_since' => ['add', '1358844540'],
+ 'maintenance.active_till' => ['add', '1390466940'],
+ 'maintenance.groups['.$groupid['maintenance_groupid'].']' => ['add'],
+ 'maintenance.groups['.$groupid['maintenance_groupid'].'].groupid' => ['add', '2'],
+ 'maintenance.groups['.$groupid['maintenance_groupid'].'].maintenance_groupid'
+ => ['add', $groupid['maintenance_groupid']],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].']' => ['add'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].period' => ['add', '3600'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].timeperiod_type' => ['add', '3'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].start_time' => ['add', '64800'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].dayofweek' => ['add', '64'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].timeperiodid' => ['add', $timeperiod['timeperiodid']],
+ 'maintenance.tags['.$tags['maintenancetagid'].']' => ['add'],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].tag' => ['add', 'audit'],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].operator' => ['add', '0'],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].value' => ['add', 'details'],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].maintenancetagid' => ['add', $tags['maintenancetagid']],
+ 'maintenance.maintenanceid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogMaintenance_Update() {
+ $this->call('maintenance.update', [
+ [
+ 'maintenanceid' => self::MAINTENANCEID,
+ 'name' => 'updated_maintenance',
+ 'active_since' => 1458844540,
+ 'active_till' => 1490466940,
+ 'tags_evaltype' => 0,
+ 'groups' => [
+ 'groupid' => 2
+ ],
+ 'timeperiods' => [
+ [
+ 'period' => 7200,
+ 'timeperiod_type' => 4,
+ 'start_time' => 68800,
+ 'every' => 3,
+ 'day' => 4,
+ 'month' => 5
+ ]
+ ],
+ 'tags' => [
+ [
+ 'tag' => 'updated_audit',
+ 'operator' => 0,
+ 'value' => 'updated_details'
+ ]
+ ]
+ ]
+ ]);
+
+ $groupid = CDBHelper::getRow('SELECT maintenance_groupid FROM maintenances_groups WHERE maintenanceid='.
+ zbx_dbstr(self::MAINTENANCEID)
+ );
+ $timeperiod = CDBHelper::getRow('SELECT timeperiodid FROM timeperiods ORDER BY timeperiodid DESC');
+ $tags = CDBHelper::getRow('SELECT maintenancetagid FROM maintenance_tag WHERE maintenanceid='.
+ zbx_dbstr(self::MAINTENANCEID)
+ );
+
+ $updated = json_encode([
+ 'maintenance.groups[1]' => ['delete'],
+ 'maintenance.timeperiods[2]' => ['delete'],
+ 'maintenance.groups['.$groupid['maintenance_groupid'].']' => ['add'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].']' => ['add'],
+ 'maintenance.tags['.$tags['maintenancetagid'].']' => ['add'],
+ 'maintenance.name' => ['update', 'updated_maintenance', 'maintenance_has_only_group'],
+ 'maintenance.active_since' => ['update', '1458844500', '1539723600'],
+ 'maintenance.active_till' => ['update', '1490466900', '1539810000'],
+ 'maintenance.groups['.$groupid['maintenance_groupid'].'].groupid' => ['add', '2'],
+ 'maintenance.groups['.$groupid['maintenance_groupid'].'].maintenance_groupid'
+ => ['add', $groupid['maintenance_groupid']],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].period' => ['add', '7200'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].timeperiod_type' => ['add', '4'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].start_time' => ['add', '68760'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].every' => ['add', '3'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].day' => ['add', '4'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].month' => ['add', '5'],
+ 'maintenance.timeperiods['.$timeperiod['timeperiodid'].'].timeperiodid' => ['add', $timeperiod['timeperiodid']],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].tag' => ['add', 'updated_audit'],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].operator' => ['add', '0'],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].value' => ['add', 'updated_details'],
+ 'maintenance.tags['.$tags['maintenancetagid'].'].maintenancetagid' => ['add', $tags['maintenancetagid']]
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::MAINTENANCEID);
+ }
+
+ public function testAuditlogMaintenance_Delete() {
+ $this->call('maintenance.delete', [self::MAINTENANCEID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'updated_maintenance', self::MAINTENANCEID);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogMediaType.php b/ui/tests/api_json/testAuditlogMediaType.php
new file mode 100755
index 00000000000..4da89165df8
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogMediaType.php
@@ -0,0 +1,142 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup media_type
+ */
+class testAuditlogMediaType extends testAuditlogCommon {
+
+ /**
+ * Existing Media type ID.
+ */
+ private const MEDIATYPEID = 1;
+
+ public function testAuditlogMediaType_Create() {
+ $create = $this->call('mediatype.create', [
+ [
+ 'type' => 0,
+ 'name' => 'email_media',
+ 'smtp_server' => 'test.test.com',
+ 'smtp_helo' => 'test.com',
+ 'smtp_email' => 'test@test.com',
+ 'smtp_port' => 587,
+ 'content_type' => 1,
+ 'message_templates' => [
+ [
+ 'eventsource' => 0,
+ 'recovery' => 0,
+ 'subject' => 'Subject message',
+ 'message' => 'Main message'
+ ]
+ ],
+ 'maxsessions' => 50,
+ 'maxattempts' => 5,
+ 'attempt_interval' => '50s'
+ ]
+ ]);
+
+ $resourceid = $create['result']['mediatypeids'][0];
+ $message = CDBHelper::getRow('SELECT mediatype_messageid FROM media_type_message WHERE mediatypeid='.
+ zbx_dbstr($resourceid)
+ );
+
+ $created = json_encode([
+ 'mediatype.name' => ['add', 'email_media'],
+ 'mediatype.smtp_server' => ['add', 'test.test.com'],
+ 'mediatype.smtp_helo' => ['add', 'test.com'],
+ 'mediatype.smtp_email' => ['add', 'test@test.com'],
+ 'mediatype.smtp_port' => ['add', '587'],
+ 'mediatype.message_templates['.$message['mediatype_messageid'].']' => ['add'],
+ 'mediatype.message_templates['.$message['mediatype_messageid'].'].eventsource' => ['add', '0'],
+ 'mediatype.message_templates['.$message['mediatype_messageid'].'].recovery' => ['add', '0'],
+ 'mediatype.message_templates['.$message['mediatype_messageid'].'].subject' => ['add', 'Subject message'],
+ 'mediatype.message_templates['.$message['mediatype_messageid'].'].message' => ['add', 'Main message'],
+ 'mediatype.message_templates['.$message['mediatype_messageid'].'].mediatype_messageid'
+ => ['add', $message['mediatype_messageid']],
+ 'mediatype.maxsessions' => ['add', '50'],
+ 'mediatype.maxattempts' => ['add', '5'],
+ 'mediatype.attempt_interval' => ['add', '50s'],
+ 'mediatype.mediatypeid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogMediaType_Update() {
+ $this->call('mediatype.update', [
+ [
+ 'mediatypeid' => self::MEDIATYPEID,
+ 'status' => 1,
+ 'name' => 'updated_email_media',
+ 'smtp_server' => 'updated_test.test.com',
+ 'smtp_helo' => 'updated_test.com',
+ 'smtp_email' => 'updated_test@test.com',
+ 'smtp_port' => 589,
+ 'content_type' => 0,
+ 'message_templates' => [
+ [
+ 'eventsource' => 1,
+ 'recovery' => 0,
+ 'subject' => 'Updated subject message',
+ 'message' => 'Updated main message'
+ ]
+ ],
+ 'maxsessions' => 40,
+ 'maxattempts' => 10,
+ 'attempt_interval' => '30s'
+ ]
+ ]);
+
+ $updated = json_encode([
+ 'mediatype.message_templates[1]' => ['delete'],
+ 'mediatype.message_templates[2]' => ['delete'],
+ 'mediatype.message_templates[3]' => ['delete'],
+ 'mediatype.message_templates[5]' => ['delete'],
+ 'mediatype.status' => ['update', '1', '0'],
+ 'mediatype.name' => ['update', 'updated_email_media', 'Email'],
+ 'mediatype.smtp_server' => ['update', 'updated_test.test.com', 'mail.example.com'],
+ 'mediatype.smtp_helo' => ['update', 'updated_test.com', 'example.com'],
+ 'mediatype.smtp_email' => ['update', 'updated_test@test.com', 'zabbix@example.com'],
+ 'mediatype.smtp_port' => ['update', '589', '25'],
+ 'mediatype.message_templates[4]' => ['update'],
+ 'mediatype.message_templates[4].subject' => ['update', 'Updated subject message', 'Discovery: '.
+ '{DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'],
+ 'mediatype.message_templates[4].message' => ['update', 'Updated main message', "Discovery rule: ".
+ "{DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: ".
+ "{DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: ".
+ "{DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: ".
+ "{DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: ".
+ "{DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}"],
+ 'mediatype.maxsessions' => ['update', '40', '1'],
+ 'mediatype.maxattempts' => ['update', '10', '3'],
+ 'mediatype.attempt_interval' => ['update', '30s', '10s']
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::MEDIATYPEID);
+ }
+
+ public function testAuditlogMediaType_Delete() {
+ $this->call('mediatype.delete', [self::MEDIATYPEID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'updated_email_media', self::MEDIATYPEID);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogProxy.php b/ui/tests/api_json/testAuditlogProxy.php
new file mode 100755
index 00000000000..ebbd9f670aa
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogProxy.php
@@ -0,0 +1,93 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup hosts
+ */
+class testAuditlogProxy extends testAuditlogCommon {
+
+ /**
+ * Existing Proxy ID.
+ */
+ private const PROXYID = 99000;
+
+ public function testAuditlogProxy_Create() {
+ $create = $this->call('proxy.create', [
+ [
+ 'host' => 'Audit proxy',
+ 'status' => 5,
+ 'description' => 'Proxy audit description',
+ 'tls_accept' => 2,
+ 'proxy_address' => 'localhost',
+ 'tls_psk_identity' => 'Audit',
+ 'tls_psk' => '11111595725ac58dd977beef14b97461a7c1045b9a1c923453302c5473193478'
+ ]
+ ]);
+
+ $resourceid = $create['result']['proxyids'][0];
+
+ $created = json_encode([
+ 'proxy.host' => ['add', 'Audit proxy'],
+ 'proxy.status' => ['add', '5'],
+ 'proxy.description' => ['add', 'Proxy audit description'],
+ 'proxy.tls_accept' => ['add', '2'],
+ 'proxy.proxy_address' => ['add', 'localhost'],
+ 'proxy.tls_psk_identity' => ['add', '******'],
+ 'proxy.tls_psk' => ['add', '******'],
+ 'proxy.proxyid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogProxy_Update() {
+ $updated = json_encode([
+ 'proxy.host' => ['update', 'Updated Audit proxy', 'Api active proxy for delete0'],
+ 'proxy.description' => ['update', 'Update proxy audit description', ''],
+ 'proxy.tls_accept' => ['update', '2', '1'],
+ 'proxy.proxy_address' => ['update', 'updated_address', ''],
+ 'proxy.tls_psk_identity' => ['update', '******', '******'],
+ 'proxy.tls_psk' => ['update', '******', '******']
+ ]);
+
+ $this->call('proxy.update', [
+ [
+ 'proxyid' => self::PROXYID,
+ 'host' => 'Updated Audit proxy',
+ 'status' => 5,
+ 'description' => 'Update proxy audit description',
+ 'tls_accept' => 2,
+ 'proxy_address' => 'updated_address',
+ 'tls_psk_identity' => 'Updated_TSK',
+ 'tls_psk' => '11111595725ac58dd977beef14b97461a7c1045b9a1c923453302c5473193111'
+ ]
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::PROXYID);
+ }
+
+ public function testAuditlogProxy_Delete() {
+ $this->call('proxy.delete', [self::PROXYID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'Updated Audit proxy', self::PROXYID);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogScheduledReport.php b/ui/tests/api_json/testAuditlogScheduledReport.php
new file mode 100755
index 00000000000..4365e1111f6
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogScheduledReport.php
@@ -0,0 +1,188 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup report
+ */
+class testAuditlogScheduledReport extends testAuditlogCommon {
+
+ /**
+ * Created scheduled report id
+ */
+ protected static $resourceid;
+
+ /**
+ * Created scheduled reports user group id (before update)
+ */
+ protected static $before_usrgrp;
+
+ /**
+ * Created scheduled reports user id (before update)
+ */
+ protected static $before_user;
+
+ public function testAuditlogScheduledReport_Create() {
+ $create = $this->call('report.create', [
+ [
+ 'userid' => 1,
+ 'name' => 'Report for audit',
+ 'dashboardid' => 1,
+ 'period' => 1,
+ 'cycle' => 1,
+ 'start_time' => 43200,
+ 'weekdays' => 31,
+ 'active_since' => '2021-04-01',
+ 'active_till' => '2021-08-31',
+ 'subject' => 'Weekly report',
+ 'message' => 'Report accompanying text',
+ 'status' => 1,
+ 'description' => 'Report description',
+ 'users' => [
+ [
+ 'userid' => 1,
+ 'access_userid' => 1,
+ 'exclude' => 0
+ ]
+ ],
+ 'user_groups' => [
+ [
+ 'usrgrpid' => 7,
+ 'access_userid' => 0
+ ]
+ ]
+ ]
+ ]);
+
+ self::$resourceid = $create['result']['reportids'][0];
+ self::$before_usrgrp = CDBHelper::getRow('SELECT reportusrgrpid FROM report_usrgrp WHERE reportid='.
+ zbx_dbstr(self::$resourceid)
+ );
+ self::$before_user = CDBHelper::getRow('SELECT reportuserid FROM report_user WHERE reportid='.
+ zbx_dbstr(self::$resourceid)
+ );
+
+ $created = json_encode([
+ 'report.userid' => ['add', '1'],
+ 'report.name' => ['add', 'Report for audit'],
+ 'report.dashboardid' => ['add', '1'],
+ 'report.period' => ['add', '1'],
+ 'report.cycle' => ['add', '1'],
+ 'report.start_time' => ['add', '43200'],
+ 'report.weekdays' => ['add', '31'],
+ 'report.active_since' => ['add', '1617235200'],
+ 'report.active_till' => ['add', '1630454399'],
+ 'report.subject' => ['add', 'Weekly report'],
+ 'report.message' => ['add', 'Report accompanying text'],
+ 'report.status' => ['add', '1'],
+ 'report.description' => ['add', 'Report description'],
+ 'report.users['.self::$before_user['reportuserid'].']' => ['add'],
+ 'report.users['.self::$before_user['reportuserid'].'].userid' => ['add', '1'],
+ 'report.users['.self::$before_user['reportuserid'].'].access_userid' => ['add', '1'],
+ 'report.users['.self::$before_user['reportuserid'].'].reportuserid' => ['add', self::$before_user['reportuserid']],
+ 'report.user_groups['.self::$before_usrgrp['reportusrgrpid'].']' => ['add'],
+ 'report.user_groups['.self::$before_usrgrp['reportusrgrpid'].'].usrgrpid' => ['add', '7'],
+ 'report.user_groups['.self::$before_usrgrp['reportusrgrpid'].'].access_userid' => ['add', '0'],
+ 'report.user_groups['.self::$before_usrgrp['reportusrgrpid'].'].reportusrgrpid'
+ => ['add', self::$before_usrgrp['reportusrgrpid']],
+ 'report.reportid' => ['add', self::$resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, self::$resourceid);
+ }
+
+ /**
+ * @depends testAuditlogScheduledReport_Create
+ */
+ public function testAuditlogScheduledReport_Update() {
+ $this->call('report.update', [
+ [
+ 'reportid' => self::$resourceid,
+ 'userid' => 1,
+ 'name' => 'Updated report for audit',
+ 'dashboardid' => 2,
+ 'period' => 3,
+ 'cycle' => 2,
+ 'start_time' => 44200,
+ 'weekdays' => 0,
+ 'active_since' => '2022-01-01',
+ 'active_till' => '2022-03-31',
+ 'subject' => 'Updated subject',
+ 'message' => 'Updated message',
+ 'status' => 0,
+ 'description' => 'Updated description',
+ 'users' => [
+ [
+ 'userid' => 2,
+ 'access_userid' => 0,
+ 'exclude' => 1
+ ]
+ ],
+ 'user_groups' => [
+ [
+ 'usrgrpid' => 8,
+ 'access_userid' => 1
+ ]
+ ]
+ ]
+ ]);
+
+ $usrgrp = CDBHelper::getRow('SELECT reportusrgrpid FROM report_usrgrp WHERE reportid='.zbx_dbstr(self::$resourceid));
+ $user = CDBHelper::getRow('SELECT reportuserid FROM report_user WHERE reportid='.zbx_dbstr(self::$resourceid));
+
+ $updated = json_encode([
+ 'report.users['.self::$before_user['reportuserid'].']' => ['delete'],
+ 'report.user_groups['.self::$before_usrgrp['reportusrgrpid'].']' => ['delete'],
+ 'report.users['.$user['reportuserid'].']' => ['add'],
+ 'report.user_groups['.$usrgrp['reportusrgrpid'].']' => ['add'],
+ 'report.name' => ['update', 'Updated report for audit', 'Report for audit'],
+ 'report.dashboardid' => ['update', '2', '1'],
+ 'report.period' => ['update', '3', '1'],
+ 'report.cycle' => ['update', '2', '1'],
+ 'report.start_time' => ['update', '44200', '43200'],
+ 'report.weekdays' => ['update', '0', '31'],
+ 'report.active_since' => ['update', '1640995200', '1617235200'],
+ 'report.active_till' => ['update', '1648771199', '1630454399'],
+ 'report.subject' => ['update', 'Updated subject', 'Weekly report'],
+ 'report.message' => ['update', 'Updated message', 'Report accompanying text'],
+ 'report.status' => ['update', '0', '1'],
+ 'report.description' => ['update', 'Updated description', 'Report description'],
+ 'report.users['.$user['reportuserid'].'].userid' => ['add', '2'],
+ 'report.users['.$user['reportuserid'].'].access_userid' => ['add', '0'],
+ 'report.users['.$user['reportuserid'].'].exclude' => ['add', '1'],
+ 'report.users['.$user['reportuserid'].'].reportuserid' => ['add', $user['reportuserid']],
+ 'report.user_groups['.$usrgrp['reportusrgrpid'].'].usrgrpid' => ['add', '8'],
+ 'report.user_groups['.$usrgrp['reportusrgrpid'].'].access_userid' => ['add', '1'],
+ 'report.user_groups['.$usrgrp['reportusrgrpid'].'].reportusrgrpid' => ['add', $usrgrp['reportusrgrpid']]
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::$resourceid);
+ }
+
+ /**
+ * @depends testAuditlogScheduledReport_Create
+ */
+ public function testAuditlogScheduledReport_Delete() {
+ $this->call('report.delete', [self::$resourceid]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'Updated report for audit', self::$resourceid);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogSettings.php b/ui/tests/api_json/testAuditlogSettings.php
new file mode 100755
index 00000000000..d70ab51396e
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogSettings.php
@@ -0,0 +1,124 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup config
+ */
+class testAuditlogSettings extends testAuditlogCommon {
+
+ public function testAuditlogSettings_Update() {
+ $updated = json_encode([
+ 'settings.default_lang' => ['update', 'en_GB', 'en_US'],
+ 'settings.default_theme' => ['update', 'dark-theme', 'blue-theme'],
+ 'settings.search_limit' => ['update', '500', '1000'],
+ 'settings.max_overview_table_size' => ['update', '60', '50'],
+ 'settings.max_in_table' => ['update', '60', '50'],
+ 'settings.server_check_interval' => ['update', '0', '10'],
+ 'settings.history_period' => ['update', '48h', '24h'],
+ 'settings.period_default' => ['update', '2h', '1h'],
+ 'settings.max_period' => ['update', '1y', '2y'],
+ 'settings.severity_color_0' => ['update', '97AAB2', '97AAB3'],
+ 'settings.severity_color_1' => ['update', '7498FF', '7499FF'],
+ 'settings.severity_color_2' => ['update', 'FFC858', 'FFC859'],
+ 'settings.severity_color_3' => ['update', 'FFA058', 'FFA059'],
+ 'settings.severity_color_4' => ['update', 'E97658', 'E97659'],
+ 'settings.severity_color_5' => ['update', 'E45958', 'E45959'],
+ 'settings.severity_name_0' => ['update', 'Updated Not classified', 'Not classified'],
+ 'settings.severity_name_1' => ['update', 'Updated Information', 'Information'],
+ 'settings.severity_name_2' => ['update', 'Updated Warning', 'Warning'],
+ 'settings.severity_name_3' => ['update', 'Updated Average', 'Average'],
+ 'settings.severity_name_4' => ['update', 'Updated High', 'High'],
+ 'settings.severity_name_5' => ['update', 'Updated Disaster', 'Disaster'],
+ 'settings.custom_color' => ['update', '1', '0'],
+ 'settings.ok_period' => ['update', '6m', '5m'],
+ 'settings.blink_period' => ['update', '3m', '2m'],
+ 'settings.problem_unack_color' => ['update', 'CC0001', 'CC0000'],
+ 'settings.problem_ack_color' => ['update', 'CC0001', 'CC0000'],
+ 'settings.ok_unack_color' => ['update', '009901', '009900'],
+ 'settings.ok_ack_color' => ['update', '009901', '009900'],
+ 'settings.problem_unack_style' => ['update', '0', '1'],
+ 'settings.problem_ack_style' => ['update', '0', '1'],
+ 'settings.ok_unack_style' => ['update', '0', '1'],
+ 'settings.ok_ack_style' => ['update', '0', '1'],
+ 'settings.default_inventory_mode' => ['update', '1', '-1'],
+ 'settings.snmptrap_logging' => ['update', '0', '1'],
+ 'settings.login_attempts' => ['update', '4', '5'],
+ 'settings.login_block' => ['update', '35s', '30s'],
+ 'settings.validate_uri_schemes' => ['update', '0', '1'],
+ 'settings.connect_timeout' => ['update', '4s', '3s'],
+ 'settings.socket_timeout' => ['update', '4s', '3s'],
+ 'settings.media_type_test_timeout' => ['update', '60s', '65s'],
+ 'settings.item_test_timeout' => ['update', '50s', '60s'],
+ 'settings.script_timeout' => ['update', '50s', '60s'],
+ 'settings.report_test_timeout' => ['update', '50s', '60s']
+ ]);
+
+ $this->call('settings.update', [
+ 'default_lang' => 'en_GB',
+ 'default_theme' => 'dark-theme',
+ 'search_limit' => '500',
+ 'max_overview_table_size' => '60',
+ 'max_in_table' => '60',
+ 'server_check_interval' => '0',
+ 'history_period' => '48h',
+ 'period_default' => '2h',
+ 'max_period' => '1y',
+ 'severity_color_0' => '97AAB2',
+ 'severity_color_1' => '7498FF',
+ 'severity_color_2' => 'FFC858',
+ 'severity_color_3' => 'FFA058',
+ 'severity_color_4' => 'E97658',
+ 'severity_color_5' => 'E45958',
+ 'severity_name_0' => 'Updated Not classified',
+ 'severity_name_1' => 'Updated Information',
+ 'severity_name_2' => 'Updated Warning',
+ 'severity_name_3' => 'Updated Average',
+ 'severity_name_4' => 'Updated High',
+ 'severity_name_5' => 'Updated Disaster',
+ 'custom_color' => '1',
+ 'ok_period' => '6m',
+ 'blink_period' => '3m',
+ 'problem_unack_color' => 'CC0001',
+ 'problem_ack_color' => 'CC0001',
+ 'ok_unack_color' => '009901',
+ 'ok_ack_color' => '009901',
+ 'problem_unack_style' => '0',
+ 'problem_ack_style' => '0',
+ 'ok_unack_style' => '0',
+ 'ok_ack_style' => '0',
+ 'default_inventory_mode' => '1',
+ 'snmptrap_logging' => '0',
+ 'login_attempts' => '4',
+ 'login_block' => '35s',
+ 'validate_uri_schemes' => '0',
+ 'connect_timeout' => '4s',
+ 'socket_timeout' => '4s',
+ 'media_type_test_timeout' => '60s',
+ 'item_test_timeout' => '50s',
+ 'script_timeout' => '50s',
+ 'report_test_timeout' => '50s'
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, 1);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogToken.php b/ui/tests/api_json/testAuditlogToken.php
new file mode 100755
index 00000000000..84636f20a38
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogToken.php
@@ -0,0 +1,84 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup token
+ */
+class testAuditlogToken extends testAuditlogCommon {
+
+ /**
+ * Existing Token ID.
+ */
+ private const TOKENID = 11;
+
+ public function testAuditlogToken_Create() {
+ $create = $this->call('token.create', [
+ [
+ 'name' => 'Audit token',
+ 'userid' => 1,
+ 'expires_at' => 1611238072,
+ 'description' => 'Audit description',
+ 'status' => 1
+ ]
+ ]);
+
+ $resourceid = $create['result']['tokenids'][0];
+
+ $created = json_encode([
+ 'token.name' => ['add', 'Audit token'],
+ 'token.userid' => ['add', '1'],
+ 'token.expires_at' => ['add', '1611238072'],
+ 'token.description' => ['add', 'Audit description'],
+ 'token.status' => ['add', '1'],
+ 'token.tokenid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogToken_Update() {
+ $this->call('token.update', [
+ [
+ 'tokenid' => self::TOKENID,
+ 'name' => 'Updated audit token',
+ 'expires_at' => 1611238090,
+ 'description' => 'Updated description',
+ 'status' => 1
+ ]
+ ]);
+
+ $updated = json_encode([
+ 'token.name' => ['update', 'Updated audit token', 'test-token'],
+ 'token.expires_at' => ['update', '1611238090', '0'],
+ 'token.description' => ['update', 'Updated description', ''],
+ 'token.status' => ['update', '1', '0']
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::TOKENID);
+ }
+
+ public function testAuditlogToken_Delete() {
+ $this->call('token.delete', [self::TOKENID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'Updated audit token', self::TOKENID);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogUser.php b/ui/tests/api_json/testAuditlogUser.php
new file mode 100755
index 00000000000..a4abc22839f
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogUser.php
@@ -0,0 +1,179 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup users
+ */
+class testAuditlogUser extends testAuditlogCommon {
+
+ /**
+ * Created user id
+ */
+ private static $resourceid;
+
+ /**
+ * Created users user group id (before update)
+ */
+ private static $before_usrgroup;
+
+ /**
+ * Created users media id (before update)
+ */
+ private static $before_media;
+
+ public function testAuditlogUser_Create() {
+ $create = $this->call('user.create', [
+ [
+ 'username' => 'Audit',
+ 'passwd' => 'zabbixzabbix',
+ 'name' => 'Audit_name',
+ 'surname' => 'Audit_surname',
+ 'roleid' => 3,
+ 'usrgrps' => [
+ [
+ 'usrgrpid' => 7
+ ]
+ ],
+ 'medias' => [
+ [
+ 'mediatypeid' => 1,
+ 'sendto' => [
+ 'audit@audit.com'
+ ],
+ 'active' => 0,
+ 'severity' => 63,
+ 'period' => '1-7,00:00-24:00'
+ ]
+ ]
+ ]
+ ]);
+
+ self::$resourceid = $create['result']['userids'][0];
+ self::$before_usrgroup = CDBHelper::getRow('SELECT id FROM users_groups WHERE userid='.zbx_dbstr(self::$resourceid));
+ self::$before_media = CDBHelper::getRow('SELECT mediaid FROM media WHERE userid='.zbx_dbstr(self::$resourceid));
+
+ $created = json_encode([
+ 'user.username' => ['add', 'Audit'],
+ 'user.passwd' => ['add', '******'],
+ 'user.name' => ['add', 'Audit_name'],
+ 'user.surname' => ['add', 'Audit_surname'],
+ 'user.roleid' => ['add', '3'],
+ 'user.usrgrps['.self::$before_usrgroup['id'].']' => ['add'],
+ 'user.usrgrps['.self::$before_usrgroup['id'].'].usrgrpid' => ['add', '7'],
+ 'user.usrgrps['.self::$before_usrgroup['id'].'].id' => ['add', self::$before_usrgroup['id']],
+ 'user.medias['.self::$before_media['mediaid'].']' => ['add'],
+ 'user.medias['.self::$before_media['mediaid'].'].mediatypeid' => ['add', '1'],
+ 'user.medias['.self::$before_media['mediaid'].'].sendto' => ['add', 'audit@audit.com'],
+ 'user.medias['.self::$before_media['mediaid'].'].mediaid' => ['add', self::$before_media['mediaid']],
+ 'user.userid' => ['add', self::$resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, self::$resourceid);
+ }
+
+ /**
+ * @depends testAuditlogUser_Create
+ */
+ public function testAuditlogUser_Update() {
+ $this->call('user.update', [
+ [
+ 'userid' => self::$resourceid,
+ 'username' => 'updated_Audit',
+ 'passwd' => 'updatezabbix',
+ 'name' => 'Updated_Audit_name',
+ 'surname' => 'Updated_Audit_surname',
+ 'usrgrps' => [
+ [
+ 'usrgrpid' => 11
+ ]
+ ],
+ 'medias' => [
+ [
+ 'mediatypeid' => 1,
+ 'sendto' => [
+ 'update_audit@audit.com'
+ ],
+ 'active' => 0,
+ 'severity' => 63,
+ 'period' => '1-7,00:00-24:00'
+ ]
+ ]
+ ]
+ ]);
+ $after_usrgroup = CDBHelper::getRow('SELECT id FROM users_groups WHERE userid='.zbx_dbstr(self::$resourceid));
+ $after_media = CDBHelper::getRow('SELECT mediaid FROM media WHERE userid='.zbx_dbstr(self::$resourceid));
+
+ $updated = json_encode([
+ 'user.usrgrps['.self::$before_usrgroup['id'].']' => ['delete'],
+ 'user.medias['.self::$before_media['mediaid'].']' => ['delete'],
+ 'user.usrgrps['.$after_usrgroup['id'].']' => ['add'],
+ 'user.medias['.$after_media['mediaid'].']' => ['add'],
+ 'user.username' => ['update', 'updated_Audit', 'Audit'],
+ 'user.passwd' => ['update', '******', '******'],
+ 'user.name' => ['update', 'Updated_Audit_name', 'Audit_name'],
+ 'user.surname' => ['update', 'Updated_Audit_surname', 'Audit_surname'],
+ 'user.usrgrps['.$after_usrgroup['id'].'].usrgrpid' => ['add', '11'],
+ 'user.usrgrps['.$after_usrgroup['id'].'].id' => ['add', $after_usrgroup['id']],
+ 'user.medias['.$after_media['mediaid'].'].mediatypeid' => ['add', '1'],
+ 'user.medias['.$after_media['mediaid'].'].sendto' => ['add', 'update_audit@audit.com'],
+ 'user.medias['.$after_media['mediaid'].'].mediaid' => ['add', $after_media['mediaid']]
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::$resourceid);
+ }
+
+ /**
+ * @depends testAuditlogUser_Update
+ */
+ public function testAuditlogUser_Login() {
+ $this->authorize('updated_Audit', 'updatezabbix');
+ $this->getAuditDetails('username', $this->login_actionid, 'updated_Audit', self::$resourceid);
+ }
+
+ /**
+ * @depends testAuditlogUser_Update
+ */
+ public function testAuditlogUser_Logout() {
+ $this->authorize('updated_Audit', 'updatezabbix');
+ $this->call('user.logout', []);
+ $this->authorize('Admin', 'zabbix');
+ $this->getAuditDetails('username', $this->logout_actionid, 'updated_Audit', self::$resourceid);
+ }
+
+ /**
+ * @depends testAuditlogUser_Update
+ */
+ public function testAuditlogUser_FailedLogin() {
+ $this->authorize('updated_Audit', 'incorrect_pas');
+ $this->authorize('Admin', 'zabbix');
+ $this->getAuditDetails('username', $this->failedlogin_actionid, 'updated_Audit', self::$resourceid);
+ }
+
+ /**
+ * @depends testAuditlogUser_Create
+ */
+ public function testAuditlogUser_Delete() {
+ $this->call('user.delete', [self::$resourceid]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'updated_Audit', self::$resourceid);
+ }
+}
diff --git a/ui/tests/api_json/testAuditlogUserGroups.php b/ui/tests/api_json/testAuditlogUserGroups.php
new file mode 100755
index 00000000000..c617e9650fd
--- /dev/null
+++ b/ui/tests/api_json/testAuditlogUserGroups.php
@@ -0,0 +1,89 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/common/testAuditlogCommon.php';
+
+/**
+ * @backup usrgrp
+ */
+class testAuditlogUserGroups extends testAuditlogCommon {
+
+ /**
+ * Existing User group ID.
+ */
+ private const USRGRPID = 12;
+
+ public function testAuditlogUserGroups_Create() {
+ $create = $this->call('usergroup.create', [
+ [
+ 'name' => 'Audit user groups',
+ 'rights' => [
+ 'permission' => 0,
+ 'id' => 2
+ ],
+ 'users' => [
+ 'userid' => 2
+ ]
+ ]
+ ]);
+
+ $resourceid = $create['result']['usrgrpids'][0];
+ $rights = CDBHelper::getRow('SELECT rightid FROM rights WHERE groupid='.zbx_dbstr($resourceid));
+ $id = CDBHelper::getRow('SELECT id FROM users_groups WHERE usrgrpid='.zbx_dbstr($resourceid));
+
+ $created = json_encode([
+ 'usergroup.name' => ['add', 'Audit user groups'],
+ 'usergroup.rights['.$rights['rightid'].']' => ['add'],
+ 'usergroup.rights['.$rights['rightid'].'].id' => ['add', '2'],
+ 'usergroup.rights['.$rights['rightid'].'].rightid' => ['add', $rights['rightid']],
+ 'usergroup.users['.$id['id'].']' => ['add'],
+ 'usergroup.users['.$id['id'].'].userid' => ['add', '2'],
+ 'usergroup.users['.$id['id'].'].id' => ['add', $id['id']],
+ 'usergroup.usrgrpid' => ['add', $resourceid]
+ ]);
+
+ $this->getAuditDetails('details', $this->add_actionid, $created, $resourceid);
+ }
+
+ public function testAuditlogUserGroups_Update() {
+ $this->call('usergroup.update', [
+ [
+ 'usrgrpid' => self::USRGRPID,
+ 'users_status' => 1,
+ 'debug_mode' => 1,
+ 'name' => 'Updated user group name'
+ ]
+ ]);
+
+ $updated = json_encode([
+ 'usergroup.users_status' => ['update', '1', '0'],
+ 'usergroup.debug_mode' => ['update', '1', '0'],
+ 'usergroup.name' => ['update', 'Updated user group name', 'No access to the frontend']
+ ]);
+
+ $this->getAuditDetails('details', $this->update_actionid, $updated, self::USRGRPID);
+ }
+
+ public function testAuditlogUserGroups_Delete() {
+ $this->call('usergroup.delete', [self::USRGRPID]);
+ $this->getAuditDetails('resourcename', $this->delete_actionid, 'Updated user group name', self::USRGRPID);
+ }
+}
diff --git a/ui/tests/api_json/testHistory.php b/ui/tests/api_json/testHistory.php
index 66625e2b737..06e9556b5f4 100644
--- a/ui/tests/api_json/testHistory.php
+++ b/ui/tests/api_json/testHistory.php
@@ -191,7 +191,7 @@ class testHistory extends CAPITest {
'output' => ['value', 'clock'],
'history' => 0,
'filter' => [
- 'value' => ["1.5", 1.0001, -1, -1.5]
+ 'value' => ['1.5', 1.0001, -1, -1.5, 'abc']
]
],
'expected_result' => [
@@ -228,7 +228,7 @@ class testHistory extends CAPITest {
]
],
'expected_result' => null,
- 'expected_error' => 'Invalid parameter "/filter/value/1": a floating point value is expected.'
+ 'expected_error' => 'Invalid parameter "/filter/value/1": a character string, integer or floating point value is expected.'
]
];
}
@@ -240,10 +240,10 @@ class testHistory extends CAPITest {
$result = $this->call('history.get', $api_request, $expected_error);
if ($expected_error === false) {
- $this->assertSame($result['result'], $expected_result);
+ $this->assertSame($expected_result, $result['result']);
}
else {
- $this->assertSame($result['error']['data'], $expected_error);
+ $this->assertSame($expected_error, $result['error']['data']);
}
}
}
diff --git a/ui/tests/api_json/testServices.php b/ui/tests/api_json/testServices.php
index 83fd4586251..c9ae0a84866 100644
--- a/ui/tests/api_json/testServices.php
+++ b/ui/tests/api_json/testServices.php
@@ -3321,7 +3321,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/serviceid": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3333,7 +3333,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/serviceid/1": a number is expected.',
+ 'error' => 'Invalid parameter "/filter/serviceid/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3345,7 +3345,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/serviceid/1": a number is expected.',
+ 'error' => 'Invalid parameter "/filter/serviceid/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3357,7 +3357,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/serviceid/1": a number is expected.',
+ 'error' => 'Invalid parameter "/filter/serviceid/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3369,7 +3369,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/serviceid/1": a number is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3381,7 +3381,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/serviceid/1": a number is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3393,7 +3393,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/serviceid/1": a number is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3417,7 +3417,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/name": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3429,7 +3429,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/name/1": a character string is expected.',
+ 'error' => 'Invalid parameter "/filter/name/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3441,7 +3441,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/name/1": a character string is expected.',
+ 'error' => 'Invalid parameter "/filter/name/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3453,7 +3453,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/name/1": a character string is expected.',
+ 'error' => 'Invalid parameter "/filter/name/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3465,7 +3465,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/name/1": a character string is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3489,7 +3489,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3501,7 +3501,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3513,11 +3513,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": value must be one of '.
- implode(', ', array_merge(
- [ZBX_SEVERITY_OK],
- range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)
- )).'.',
+ 'error' => null,
'result' => []
]
],
@@ -3529,11 +3525,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": value must be one of '.
- implode(', ', array_merge(
- [ZBX_SEVERITY_OK],
- range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)
- )).'.',
+ 'error' => null,
'result' => []
]
],
@@ -3545,7 +3537,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": an integer is expected.',
+ 'error' => 'Invalid parameter "/filter/status/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3557,7 +3549,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": an integer is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3569,7 +3561,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": an integer is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3581,11 +3573,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": value must be one of '.
- implode(', ', array_merge(
- [ZBX_SEVERITY_OK],
- range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)
- )).'.',
+ 'error' => null,
'result' => []
]
],
@@ -3597,11 +3585,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": value must be one of '.
- implode(', ', array_merge(
- [ZBX_SEVERITY_OK],
- range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)
- )).'.',
+ 'error' => null,
'result' => []
]
],
@@ -3625,7 +3609,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3637,7 +3621,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3649,12 +3633,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm/1": value must be one of '.
- implode(', ', [
- ZBX_SERVICE_STATUS_CALC_SET_OK,
- ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ALL,
- ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ONE
- ]).'.',
+ 'error' => null,
'result' => []
]
],
@@ -3666,7 +3645,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm/1": an integer is expected.',
+ 'error' => 'Invalid parameter "/filter/algorithm/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3678,7 +3657,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm/1": an integer is expected.',
+ 'error' => 'Invalid parameter "/filter/algorithm/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
@@ -3690,7 +3669,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm/1": an integer is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3702,7 +3681,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm/1": an integer is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -3714,12 +3693,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm/1": value must be one of '.
- implode(', ', [
- ZBX_SERVICE_STATUS_CALC_SET_OK,
- ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ALL,
- ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ONE
- ]).'.',
+ 'error' => null,
'result' => []
]
],
@@ -3731,12 +3705,7 @@ class testServices extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/algorithm/1": value must be one of '.
- implode(', ', [
- ZBX_SERVICE_STATUS_CALC_SET_OK,
- ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ALL,
- ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ONE
- ]).'.',
+ 'error' => null,
'result' => []
]
],
@@ -4305,7 +4274,7 @@ class testServices extends CAPITest {
return;
}
- $this->assertEquals($response['result'], $expected['error']);
+ $this->assertEquals($response['result'], $expected['result']);
}
public static function service_update_data_invalid(): array {
diff --git a/ui/tests/api_json/testToken.php b/ui/tests/api_json/testToken.php
index b8a79055360..74e3d6500a2 100644
--- a/ui/tests/api_json/testToken.php
+++ b/ui/tests/api_json/testToken.php
@@ -578,7 +578,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/tokenid/1": a number is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -590,7 +590,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/tokenid": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -602,7 +602,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/userid": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -614,7 +614,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/userid/1": a number is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -626,7 +626,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/lastaccess/1": an integer is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -638,7 +638,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/lastaccess": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -650,7 +650,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": value must be one of 0, 1.',
+ 'error' => null,
'result' => []
]
],
@@ -662,7 +662,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/status/1": value must be one of 0, 1.',
+ 'error' => null,
'result' => []
]
],
@@ -674,7 +674,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/expires_at/1": an integer is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -686,7 +686,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/expires_at": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -698,7 +698,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/created_at/1": an integer is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -710,7 +710,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/created_at": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -722,7 +722,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/creator_userid": an array is expected.',
+ 'error' => null,
'result' => []
]
],
@@ -734,7 +734,7 @@ class testToken extends CAPITest {
]
],
'expected' => [
- 'error' => 'Invalid parameter "/filter/creator_userid/1": a number is expected.',
+ 'error' => null,
'result' => []
]
],
diff --git a/ui/tests/api_json/testWebScenario.php b/ui/tests/api_json/testWebScenario.php
index 3ecffc76f5a..b332ff89458 100644
--- a/ui/tests/api_json/testWebScenario.php
+++ b/ui/tests/api_json/testWebScenario.php
@@ -198,6 +198,10 @@ class testWebScenario extends CAPITest {
[
'name' => 'header_name-symbols☺æų""\\//!@#$%^&*()_+',
'value' => 'header_value-symbols☺æų""\\//!@#$%^&*()_+'
+ ],
+ [
+ 'name' => 'header_name-without-value',
+ 'value' => ''
]
],
'variables' => [
@@ -704,27 +708,6 @@ class testWebScenario extends CAPITest {
// Check web headers.
[
'httptest' => [
- 'name' => 'Api web with wrong headers',
- 'headers' => [
- ['name' => '☺', 'value' => '']
- ]
- ],
- 'expected_error' => 'Invalid parameter "/1/headers/1/value": cannot be empty.'
- ],
- [
- 'httptest' => [
- 'name' => 'Api web with empty headers value',
- 'headers' => [
- [
- 'name' => 'login',
- 'value' => ''
- ]
- ]
- ],
- 'expected_error' => 'Invalid parameter "/1/headers/1/value": cannot be empty.'
- ],
- [
- 'httptest' => [
'name' => 'Api web with empty headers name',
'headers' => [
[
diff --git a/ui/tests/include/CAPITest.php b/ui/tests/include/CAPITest.php
index d315ce0fc63..88dc6b0544e 100644
--- a/ui/tests/include/CAPITest.php
+++ b/ui/tests/include/CAPITest.php
@@ -97,14 +97,14 @@ class CAPITest extends CTest {
/**
* Enable authorization/session for the following API calls.
*/
- public function enableAuthorization() {
+ public static function enableAuthorization() {
CAPIHelper::setSessionId(null);
}
/**
* Disable authorization/session for the following API calls.
*/
- public function disableAuthorization() {
+ public static function disableAuthorization() {
CAPIHelper::setSessionId(false);
}
diff --git a/ui/tests/include/CIntegrationTest.php b/ui/tests/include/CIntegrationTest.php
index fd13b1f704d..b5e5b4f59e4 100644
--- a/ui/tests/include/CIntegrationTest.php
+++ b/ui/tests/include/CIntegrationTest.php
@@ -33,8 +33,9 @@ class CIntegrationTest extends CAPITest {
const WAIT_ITERATIONS = 60;
// Default delays (in seconds):
- const WAIT_ITERATION_DELAY = 1; // Wait iteration delay.
- const CACHE_RELOAD_DELAY = 5; // Configuration cache reload delay.
+ const WAIT_ITERATION_DELAY = 1; // Wait iteration delay.
+ const CACHE_RELOAD_DELAY = 5; // Configuration cache reload delay.
+ const HOUSEKEEPER_EXEC_DELAY = 5; // Housekeeper execution delay.
const DATA_PROCESSING_DELAY = 5; // Data processing delay.
// Zabbix component constants.
@@ -811,6 +812,19 @@ class CIntegrationTest extends CAPITest {
}
/**
+ * @param string $component component name or null for active component
+ */
+ protected function executeHousekeeper($component = null) {
+ if ($component === null) {
+ $component = $this->getActiveComponent();
+ }
+
+ self::executeCommand(PHPUNIT_BINARY_DIR.'zabbix_'.$component, ['--runtime-control', 'housekeeper_execute']);
+
+ sleep(self::HOUSEKEEPER_EXEC_DELAY);
+ }
+
+ /**
* Request data from API until data is present (@see call).
*
* @param string $method API method to be called
diff --git a/ui/tests/include/helpers/CAPIHelper.php b/ui/tests/include/helpers/CAPIHelper.php
index 38d8e7c600b..a957ff95b10 100644
--- a/ui/tests/include/helpers/CAPIHelper.php
+++ b/ui/tests/include/helpers/CAPIHelper.php
@@ -54,6 +54,9 @@ class CAPIHelper {
*/
public static function callRaw($data) {
global $URL;
+ if (!is_string($URL)) {
+ $URL = PHPUNIT_URL.'api_jsonrpc.php';
+ }
if (is_array($data)) {
$data = json_encode($data);
diff --git a/ui/tests/include/helpers/CDBHelper.php b/ui/tests/include/helpers/CDBHelper.php
index 59642ba3075..52f0b14eaf5 100644
--- a/ui/tests/include/helpers/CDBHelper.php
+++ b/ui/tests/include/helpers/CDBHelper.php
@@ -44,6 +44,8 @@ class CDBHelper {
*/
static $backups = [];
+ static $db_extension;
+
/**
* Perform select query and check the result.
*
@@ -260,6 +262,14 @@ class CDBHelper {
$suffix = '_tmp'.count(self::$backups);
if ($DB['TYPE'] === ZBX_DB_POSTGRESQL) {
+ if (self::$db_extension == null) {
+ $res = DBfetch(DBselect('SELECT db_extension FROM config'));
+
+ if ($res) {
+ self::$db_extension = $res['db_extension'];
+ }
+ }
+
if ($DB['PASSWORD'] !== '') {
putenv('PGPASSWORD='.$DB['PASSWORD']);
}
@@ -278,6 +288,10 @@ class CDBHelper {
$cmd .= ' --username='.$DB['USER'].' --format=d --jobs=5 --dbname='.$DB['DATABASE'];
$cmd .= ' --table='.implode(' --table=', $tables).' --file='.$file;
+ if (self::$db_extension == ZBX_DB_EXTENSION_TIMESCALEDB) {
+ $cmd .= ' 2>/dev/null';
+ }
+
exec($cmd, $output, $result_code);
if ($result_code != 0) {
@@ -333,18 +347,29 @@ class CDBHelper {
$cmd = 'pg_restore';
if ($DB['SERVER'] !== 'v') {
- $cmd .= ' --host='.$DB['SERVER'];
+ $server = ' --host='.$DB['SERVER'];
}
+ $cmd .= $server;
+ $port = '';
if ($DB['PORT'] !== '' && $DB['PORT'] != 0) {
- $cmd .= ' --port='.$DB['PORT'];
+ $port .= ' --port='.$DB['PORT'];
}
+ $cmd .= $port;
$file = PHPUNIT_COMPONENT_DIR.$DB['DATABASE'].$suffix.'.dump';
$cmd .= ' --username='.$DB['USER'].' --format=d --jobs=5 --clean --dbname='.$DB['DATABASE'];
$cmd .= ' '.$file;
- exec($cmd, $output, $result_code);
+ if (self::$db_extension == ZBX_DB_EXTENSION_TIMESCALEDB) {
+ $cmd_tdb = 'psql --username='.$DB['USER'].$server.$port.' --dbname='.$DB['DATABASE'].' --command="SELECT timescaledb_pre_restore();"; ';
+ $cmd_tdb .= $cmd .' 2>/dev/null; ';
+ $cmd_tdb .= 'psql --username='.$DB['USER'].$server.$port.' --dbname='.$DB['DATABASE'].' --command="SELECT timescaledb_post_restore();" ';
+ exec($cmd_tdb, $output, $result_code);
+ }
+ else {
+ exec($cmd, $output, $result_code);
+ }
if ($result_code != 0) {
throw new Exception('Failed to restore "'.$file.'".');
diff --git a/ui/tests/include/web/CElement.php b/ui/tests/include/web/CElement.php
index 637263bd8e2..734621e8078 100644
--- a/ui/tests/include/web/CElement.php
+++ b/ui/tests/include/web/CElement.php
@@ -717,7 +717,7 @@ class CElement extends CBaseElement implements IWaitable {
$expected = json_encode($expected);
}
- throw new Exception('Element value '.$value.' doesn\'t match expected '.$expected.'.');
+ throw new Exception('Element value "'.$value.'" doesn\'t match expected "'.$expected.'".');
}
return ($expected == $value);
diff --git a/ui/tests/include/web/elements/CDashboardElement.php b/ui/tests/include/web/elements/CDashboardElement.php
index 74099858a5a..eedb1fec9b4 100644
--- a/ui/tests/include/web/elements/CDashboardElement.php
+++ b/ui/tests/include/web/elements/CDashboardElement.php
@@ -113,6 +113,19 @@ class CDashboardElement extends CElement {
}
/**
+ * Open dashboard properties overlay dialog.
+ *
+ * @return COverlayDialogElement
+ */
+ public function editProperties() {
+ $this->checkIfEditable();
+ $this->getControls()->query('id:dashboard-config')->one()->click();
+
+ return $this->query('xpath://div[contains(@class, "overlay-dialogue")][@data-dialogueid="dashboard_properties"]')
+ ->waitUntilVisible()->asOverlayDialog()->one()->waitUntilReady();
+ }
+
+ /**
* Open widget adding form.
* Dashboard should be in editing mode.
*
@@ -159,7 +172,9 @@ class CDashboardElement extends CElement {
$controls = $this->getControls();
if ($controls->query('xpath:.//nav[@class="dashboard-edit"]')->one()->isDisplayed()) {
- $controls->query('id:dashboard-save')->one()->waitUntilClickable()->click(true);
+ $button = $controls->query('id:dashboard-save')->one()->waitUntilClickable();
+ $button->getLocationOnScreenOnceScrolledIntoView();
+ $button->click();
$controls->query('xpath:.//nav[@class="dashboard-edit"]')->waitUntilNotVisible();
}
@@ -267,4 +282,16 @@ class CDashboardElement extends CElement {
return $this;
}
+
+ /**
+ * Select dashboard page by name.
+ *
+ * @param string $name page name to be selected
+ * @param integer $index expected number of pages with the provided name
+ */
+ public function selectPage($name, $index = 1) {
+ $selection = '//ul[@class="sortable-list"]//span[@title='.CXPathHelper::escapeQuotes($name);
+ $this->query('xpath:('.$selection.'])['.$index.']')->waitUntilClickable()->one()->click();
+ $this->query('xpath:'.$selection.']/../../div[@class="selected-tab"]')->one()->waitUntilPresent();
+ }
}
diff --git a/ui/tests/include/web/elements/CInputGroupElement.php b/ui/tests/include/web/elements/CInputGroupElement.php
index ac5ef339491..d4fa5bc70bb 100644
--- a/ui/tests/include/web/elements/CInputGroupElement.php
+++ b/ui/tests/include/web/elements/CInputGroupElement.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once 'vendor/autoload.php';
require_once dirname(__FILE__).'/../CElement.php';
@@ -28,6 +29,7 @@ class CInputGroupElement extends CElement {
const TYPE_SECRET = 'Secret text';
const TYPE_TEXT = 'Text';
+ const TYPE_VAULT = 'Vault';
/**
* Get value of InputGroup element.
@@ -77,10 +79,18 @@ class CInputGroupElement extends CElement {
* @return string
*/
public function getInputType() {
- $xpath = 'xpath:.//button['.CXPathHelper::fromClass('icon-text').']';
- $type = ($this->query($xpath)->exists()) ? self::TYPE_TEXT : self::TYPE_SECRET;
+ $xpath_vault = 'xpath:./../div[contains(@class, "macro-value-vault")]';
+ $xpath_secret = 'xpath:.//div[@class="input-secret"]/..//button[contains(@id, "type_button")]';
+
+ if ($this->query($xpath_secret)->exists()) {
+ return self::TYPE_SECRET;
+ }
+
+ if ($this->query($xpath_vault)->exists()) {
+ return self::TYPE_VAULT;
+ }
- return $type;
+ return self::TYPE_TEXT;
}
/**
diff --git a/ui/tests/include/web/elements/CMultiselectElement.php b/ui/tests/include/web/elements/CMultiselectElement.php
index 6b1c02009b2..f3dbece5026 100644
--- a/ui/tests/include/web/elements/CMultiselectElement.php
+++ b/ui/tests/include/web/elements/CMultiselectElement.php
@@ -338,7 +338,12 @@ class CMultiselectElement extends CElement {
* @inheritdoc
*/
public function getValue() {
- return $this->getSelected();
+ $selected = $this->getSelected();
+ if (is_array($selected) && count($selected) === 0) {
+ $selected = '';
+ }
+
+ return $selected;
}
/**
diff --git a/ui/tests/include/web/elements/CTableElement.php b/ui/tests/include/web/elements/CTableElement.php
index 41215230a25..17c944fd920 100644
--- a/ui/tests/include/web/elements/CTableElement.php
+++ b/ui/tests/include/web/elements/CTableElement.php
@@ -35,7 +35,7 @@ class CTableElement extends CElement {
protected $selectors = [
'header' => 'xpath:./thead/tr/th',
'row' => 'xpath:./tbody/tr',
- 'column' => 'xpath:./td'
+ 'column' => 'xpath:./*'
];
/**
diff --git a/ui/tests/integration/IntegrationTests.php b/ui/tests/integration/IntegrationTests.php
index e833788652b..b69c7e94411 100644
--- a/ui/tests/integration/IntegrationTests.php
+++ b/ui/tests/integration/IntegrationTests.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+require_once dirname(__FILE__).'/testTimescaleDb.php';
require_once dirname(__FILE__).'/testDataCollection.php';
require_once dirname(__FILE__).'/testDiagnosticDataTask.php';
require_once dirname(__FILE__).'/testLowLevelDiscovery.php';
@@ -44,6 +45,10 @@ use PHPUnit\Framework\TestSuite;
class IntegrationTests {
public static function suite() {
$suite = new TestSuite('Integration');
+
+ if (substr(getenv('DB'), 0, 4) === "tsdb" ) {
+ $suite->addTestSuite('testTimescaleDb');
+ }
$suite->addTestSuite('testDataCollection');
$suite->addTestSuite('testDiagnosticDataTask');
$suite->addTestSuite('testLowLevelDiscovery');
diff --git a/ui/tests/integration/testDataCollection.php b/ui/tests/integration/testDataCollection.php
index 7baf07fcafb..b3b1db8e9bc 100644
--- a/ui/tests/integration/testDataCollection.php
+++ b/ui/tests/integration/testDataCollection.php
@@ -165,6 +165,8 @@ class testDataCollection extends CIntegrationTest {
self::waitForLogLineToBePresent(self::COMPONENT_SERVER, 'update interface set');
self::waitForLogLineToBePresent(self::COMPONENT_SERVER, 'commit;');
+ $this->reloadConfigurationCache();
+
$data = $this->call('hostinterface.get', [
'output' => ['available'],
'hostids' => self::$hostids['agent'],
diff --git a/ui/tests/integration/testHighAvailability.php b/ui/tests/integration/testHighAvailability.php
index 3214d901078..17d9883aa50 100644
--- a/ui/tests/integration/testHighAvailability.php
+++ b/ui/tests/integration/testHighAvailability.php
@@ -209,6 +209,8 @@ class testHighAvailability extends CIntegrationTest {
$this->waitForLogLineToBePresent(self::COMPONENT_SERVER_HANODE1, '"'.self::NODE2_NAME.'" node switched to "active" mode');
$this->startComponent(self::COMPONENT_SERVER, 'HA manager started in standby mode');
+ $this->waitForLogLineToBePresent(self::COMPONENT_SERVER_HANODE1, 'started [trigger housekeeper');
+ sleep(1);
self::killComponent(self::COMPONENT_SERVER_HANODE1);
diff --git a/ui/tests/integration/testTimescaleDb.php b/ui/tests/integration/testTimescaleDb.php
new file mode 100644
index 00000000000..d074508821b
--- /dev/null
+++ b/ui/tests/integration/testTimescaleDb.php
@@ -0,0 +1,234 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/../include/CIntegrationTest.php';
+
+/**
+ * Test Timescale DB extension.
+ *
+ * @required-components server
+ * @hosts test_timescale
+ * @backup history
+ */
+class testTimescaleDb extends CIntegrationTest {
+
+ const HOSTNAME = 'test_timescale';
+ const TRAPNAME = 'trap_timescale';
+ const TABLENAME = 'history_uint';
+ const HIST_COUNT = 3000;
+ /*
+ storing old data deep in the past - 20 days, which is way longer that the minimum 7days,
+ and must be guaranteed to be compressed
+ */
+ const COMPRESSION_OLDER_THAN = 20 * 24 * 3600;
+ static $db_extension = '';
+ private static $itemid;
+
+ /**
+ * Component configuration provider.
+ *
+ * @return array
+ */
+ public function serverConfigurationProvider() {
+ return [
+ self::COMPONENT_SERVER => [
+ 'DebugLevel' => 5,
+ 'LogFileSize' => 0
+ ]
+ ];
+ }
+
+ private function retrieveExtention() {
+ self::$db_extension = '';
+
+ $sql = 'SELECT db_extension'.
+ ' FROM config';
+
+ $res = DBfetch(DBselect($sql));
+
+ if ($res) {
+ self::$db_extension = $res['db_extension'];
+ }
+ }
+
+ /**
+ * Test TimescaleDb extension.
+ */
+ private function clearChunks() {
+ $sql = 'SELECT drop_chunks(\''.self::TABLENAME.'\', older_than => '.time().')';
+
+ $res = DBfetch(DBselect($sql));
+ }
+
+ /**
+ * Test server is up with TimescaleDb.
+ *
+ * @required-components server
+ * @configurationDataProvider serverConfigurationProvider
+ */
+ public function testTimescaleDb_checkServerUp() {
+ $this->assertEquals(self::$db_extension, ZBX_DB_EXTENSION_TIMESCALEDB);
+
+ self::waitForLogLineToBePresent(self::COMPONENT_SERVER, 'TimescaleDB version:');
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function prepareData() {
+
+ $this->retrieveExtention();
+
+ // Create host "test_timescale"
+ $response = $this->call('host.create', [
+ [
+ 'host' => self::HOSTNAME,
+ 'interfaces' => [
+ 'type' => 1,
+ 'main' => 1,
+ 'useip' => 1,
+ 'ip' => '127.0.0.1',
+ 'dns' => '',
+ 'port' => $this->getConfigurationValue(self::COMPONENT_AGENT, 'ListenPort')
+ ],
+ 'groups' => [['groupid' => 4]],
+ 'status' => HOST_STATUS_NOT_MONITORED
+ ]
+ ]);
+
+ $this->assertArrayHasKey('hostids', $response['result']);
+ $this->assertArrayHasKey(0, $response['result']['hostids']);
+ $hostid = $response['result']['hostids'][0];
+
+ $response = $this->call('item.create', [
+ 'hostid' => $hostid,
+ 'name' => self::TRAPNAME,
+ 'key_' => self::TRAPNAME,
+ 'type' => ITEM_TYPE_TRAPPER,
+ 'value_type' => ITEM_VALUE_TYPE_UINT64
+ ]);
+ $this->assertArrayHasKey('itemids', $response['result']);
+ $this->assertEquals(1, count($response['result']['itemids']));
+ self::$itemid = $response['result']['itemids'][0];
+
+ $response = $this->call('housekeeping.update',
+ ['compression_status' => 0]
+ );
+ $this->assertArrayHasKey(0, $response['result']);
+
+ $this->clearChunks();
+
+ return true;
+ }
+
+ /**
+ * Get number of records in history_uint table.
+ */
+ public function getHistoryCount() {
+ $res = DBfetch(DBselect('SELECT count(*) FROM '.self::TABLENAME.' WHERE itemid = '.self::$itemid));
+
+ if ($res) {
+ return $res['count'];
+ }
+
+ return -1;
+ }
+
+ /**
+ * Check compression of the chunk.
+ */
+ public function getCheckCompression() {
+ $req = DBselect('SELECT number_compressed_chunks FROM hypertable_compression_stats(\''.self::TABLENAME.'\')');
+ $compress = DBfetch($req);
+ $this->assertArrayHasKey('number_compressed_chunks', $compress);
+ if ($compress['number_compressed_chunks'] == 0) {
+
+ $res = DBfetch(DBselect('SELECT show_chunks(\''.self::TABLENAME.'\')'));
+ $this->assertArrayHasKey('show_chunks', $res);
+
+ $chunk = $res['show_chunks'];
+ $res_compr = DBfetch(DBselect('SELECT compress_chunk(\''.$chunk.'\')'));
+ $this->assertArrayHasKey('compress_chunk', $res_compr);
+
+ $res2 = DBfetch(DBselect('
+ SELECT number_compressed_chunks FROM hypertable_compression_stats(\''.self::TABLENAME.'\')'));
+ $this->assertArrayHasKey('number_compressed_chunks', $res2);
+ $this->assertEquals($res2['number_compressed_chunks'], count($res));
+ $res_compr = DBfetch(DBselect('SELECT decompress_chunk(\''.$chunk.'\')'));
+ $this->assertArrayHasKey('decompress_chunk', $res_compr);
+ }
+ }
+
+ /**
+ * Test history table TimescaleDb.
+ *
+ * @required-components server
+ * @configurationDataProvider serverConfigurationProvider
+ */
+ public function testTimescaleDb_checkHistoryRecords() {
+ $this->assertEquals(self::$db_extension, ZBX_DB_EXTENSION_TIMESCALEDB);
+
+ $this->reloadConfigurationCache();
+
+ $count_start = $this->getHistoryCount();
+ $this->assertNotEquals(-1, $count_start);
+
+ $c = time() - self::COMPRESSION_OLDER_THAN;
+ $n = 1;
+ for ($i = 0; $i < self::HIST_COUNT; $i++) {
+ $sender_data[$i] = ['value' => $c, 'clock' => $c, 'ns' => $n, 'host' => self::HOSTNAME,
+ 'key' => self::TRAPNAME];
+ $n += 10;
+ }
+ $this->sendDataValues('sender', $sender_data , self::COMPONENT_SERVER);
+
+ self::waitForLogLineToBePresent(self::COMPONENT_SERVER, 'trapper got');
+ self::waitForLogLineToBePresent(self::COMPONENT_SERVER, 'End of zbx_send_response_ext():SUCCEED', true, 5);
+ $this->reloadConfigurationCache();
+ sleep(1);
+
+ $count_end = $this->getHistoryCount();
+ $this->assertNotEquals(-1, $count_end);
+ $this->assertEquals($count_end - $count_start, self::HIST_COUNT);
+
+ $response = $this->call('housekeeping.update',
+ ['compression_status' => 1]
+ );
+ $this->assertArrayHasKey(0, $response['result']);
+ $this->assertEquals('compression_status', $response['result'][0]);
+ $this->reloadConfigurationCache();
+ $this->executeHousekeeper();
+ }
+
+ /**
+ * Test compression TimescaleDb.
+ *
+ * @required-components server
+ * @configurationDataProvider serverConfigurationProvider
+ */
+ public function testTimescaleDb_checkCompression() {
+ $this->assertEquals(self::$db_extension, ZBX_DB_EXTENSION_TIMESCALEDB);
+
+ $this->executeHousekeeper();
+
+ $this->getCheckCompression();
+ }
+}
diff --git a/ui/tests/selenium/SeleniumTests.php b/ui/tests/selenium/SeleniumTests.php
index 4fc940f1424..73ee06d4595 100644
--- a/ui/tests/selenium/SeleniumTests.php
+++ b/ui/tests/selenium/SeleniumTests.php
@@ -20,11 +20,11 @@
require_once dirname(__FILE__).'/testGeneric.php';
require_once dirname(__FILE__).'/testGraphAxis.php';
-require_once dirname(__FILE__).'/testPageDashboard.php';
require_once dirname(__FILE__).'/testPageDashboardWidgets.php';
require_once dirname(__FILE__).'/testPageLatestData.php';
require_once dirname(__FILE__).'/testPageWeb.php';
-require_once dirname(__FILE__).'/testPageProblems.php';
+require_once dirname(__FILE__).'/problems/testFormUpdateProblem.php';
+require_once dirname(__FILE__).'/problems/testPageProblems.php';
require_once dirname(__FILE__).'/testPageActions.php';
require_once dirname(__FILE__).'/testPageAdministrationDMProxies.php';
require_once dirname(__FILE__).'/testFormAdministrationGeneralAutoregistration.php';
@@ -184,12 +184,17 @@ require_once dirname(__FILE__).'/dashboard/testDashboardCopyWidgets.php';
require_once dirname(__FILE__).'/dashboard/testDashboardGraphPrototypeWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardGeomapWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardDynamicItemWidgets.php';
+require_once dirname(__FILE__).'/dashboard/testDashboardFavoriteGraphsWidget.php';
+require_once dirname(__FILE__).'/dashboard/testDashboardFavoriteMapsWidget.php';
+require_once dirname(__FILE__).'/dashboard/testDashboardForm.php';
+require_once dirname(__FILE__).'/dashboard/testDashboardViewMode.php';
require_once dirname(__FILE__).'/dashboard/testDashboardGraphWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardHostAvailabilityWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardProblemsBySeverityWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardItemValueWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardSystemInformationWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardTopHostsWidget.php';
+require_once dirname(__FILE__).'/dashboard/testDashboardTriggerOverviewWidget.php';
require_once dirname(__FILE__).'/dashboard/testDashboardPages.php';
require_once dirname(__FILE__).'/dashboard/testFormTemplateDashboards.php';
require_once dirname(__FILE__).'/dashboard/testPageTemplateDashboards.php';
@@ -225,11 +230,11 @@ class SeleniumTests {
$suite->addTestSuite('testPageApiTokensAdministrationGeneral');
$suite->addTestSuite('testPageApiTokensUserSettings');
$suite->addTestSuite('testPageAvailabilityReport');
- $suite->addTestSuite('testPageDashboard');
$suite->addTestSuite('testPageDashboardList');
$suite->addTestSuite('testPageDashboardWidgets');
$suite->addTestSuite('testPageEventCorrelation');
$suite->addTestSuite('testPageGraphPrototypes');
+ $suite->addTestSuite('testFormUpdateProblem');
$suite->addTestSuite('testPageProblems');
$suite->addTestSuite('testPageHistory');
$suite->addTestSuite('testPageHostGraph');
@@ -384,13 +389,18 @@ class SeleniumTests {
$suite->addTestSuite('testDashboardGraphPrototypeWidget');
$suite->addTestSuite('testDashboardGeomapWidget');
$suite->addTestSuite('testDashboardDynamicItemWidgets');
+ $suite->addTestSuite('testDashboardFavoriteGraphsWidget');
+ $suite->addTestSuite('testDashboardFavoriteMapsWidget');
+ $suite->addTestSuite('testDashboardForm');
$suite->addTestSuite('testDashboardGraphWidget');
$suite->addTestSuite('testDashboardHostAvailabilityWidget');
$suite->addTestSuite('testDashboardProblemsBySeverityWidget');
$suite->addTestSuite('testDashboardItemValueWidget');
$suite->addTestSuite('testDashboardSystemInformationWidget');
$suite->addTestSuite('testDashboardTopHostsWidget');
+ $suite->addTestSuite('testDashboardTriggerOverviewWidget');
$suite->addTestSuite('testDashboardPages');
+ $suite->addTestSuite('testDashboardViewMode');
$suite->addTestSuite('testFormTemplateDashboards');
$suite->addTestSuite('testPageTemplateDashboards');
$suite->addTestSuite('testFormScheduledReport');
diff --git a/ui/tests/selenium/common/testFormAdministrationGeneral.php b/ui/tests/selenium/common/testFormAdministrationGeneral.php
index c50ca397667..48c03403e88 100644
--- a/ui/tests/selenium/common/testFormAdministrationGeneral.php
+++ b/ui/tests/selenium/common/testFormAdministrationGeneral.php
@@ -145,8 +145,8 @@ class testFormAdministrationGeneral extends CWebTest {
// In Other parameters form these fields have no default value, so can be filled with anything.
$form->checkValue(
[
- 'Group for discovered hosts' => [],
- 'User group for database down message' => []
+ 'Group for discovered hosts' => '',
+ 'User group for database down message' => ''
]
);
$form->fill(
diff --git a/ui/tests/selenium/common/testFormApiTokens.php b/ui/tests/selenium/common/testFormApiTokens.php
index f7ad216078b..f1602ac0ffe 100644
--- a/ui/tests/selenium/common/testFormApiTokens.php
+++ b/ui/tests/selenium/common/testFormApiTokens.php
@@ -77,7 +77,7 @@ class testFormApiTokens extends CWebTest {
// Check the presence of User field and that it is empty by default if it exists.
if ($source === 'administration') {
- $this->assertEquals([], $form->getField('User')->getValue());
+ $this->assertEquals('', $form->getField('User')->getValue());
}
else {
$this->assertFalse($form->query('xpath://label[text()="User"]')->one(false)->isDisplayed());
diff --git a/ui/tests/selenium/common/testFormFilter.php b/ui/tests/selenium/common/testFormFilter.php
index 14efd8aee3f..113bc438d9a 100644
--- a/ui/tests/selenium/common/testFormFilter.php
+++ b/ui/tests/selenium/common/testFormFilter.php
@@ -117,9 +117,7 @@ class testFormFilter extends CWebTest {
$this->query('xpath://li[@data-target="tabfilter_0"]/a')->one()->click();
$this->page->waitUntilReady();
- $this->assertEquals('italic', $this->query('xpath://li[@data-target="tabfilter_1"]/a[@class="tabfilter-item-link"]')
- ->one()->getCSSValue('font-style')
- );
+ $this->assertFalse($this->query('xpath://li[@data-target="tabfilter_1"]//span')->one()->hasClass('display-none'));
$filter_container->selectTab('update_tab');
diff --git a/ui/tests/selenium/common/testFormHost.php b/ui/tests/selenium/common/testFormHost.php
index 2f1605ba735..40ff6b5ec94 100644
--- a/ui/tests/selenium/common/testFormHost.php
+++ b/ui/tests/selenium/common/testFormHost.php
@@ -1903,13 +1903,14 @@ class testFormHost extends CWebTest {
* @return CFormElement
*/
public function filterAndSelectHost($host) {
+ $table = $this->query('xpath://table[@class="list-table"]')->asTable()->one()->waitUntilVisible();
$this->query('button:Reset')->one()->click();
+ $table->waitUntilReloaded();
$this->query('name:zbx_filter')->asForm()->waitUntilReady()->one()->fill(['Name' => $host]);
$this->query('button:Apply')->one()->waitUntilClickable()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
- $host_link = $this->query('xpath://table[@class="list-table"]')->asTable()->one()->waitUntilVisible()
- ->findRow('Name', $host)->getColumn('Name')->query('tag:a')->waitUntilClickable();
+ $host_link = $table->findRow('Name', $host)->getColumn('Name')->query('tag:a')->waitUntilClickable();
if ($this->monitoring) {
$host_link->asPopupButton()->one()->select('Configuration');
diff --git a/ui/tests/selenium/common/testFormMacros.php b/ui/tests/selenium/common/testFormMacros.php
index 3c971457199..0fac87209f3 100644
--- a/ui/tests/selenium/common/testFormMacros.php
+++ b/ui/tests/selenium/common/testFormMacros.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once 'vendor/autoload.php';
require_once dirname(__FILE__).'/../traits/MacrosTrait.php';
@@ -513,7 +514,7 @@ abstract class testFormMacros extends CLegacyWebTest {
$form_type = ($host_type === 'host prototype') ? 'hostPrototype' : $host_type.'s';
if ($update) {
if ($host_type === 'host') {
- $this->page->login()->open('zabbix.php?action=host.view')->waitUntilReady();
+ $this->page->login()->open('zabbix.php?action=host.view&filter_selected=0&filter_reset=1')->waitUntilReady();
$column = $this->query('xpath://table[@class="list-table"]')->asTable()->one()->findRow('Name', $name)->getColumn('Name');
$column->query('link', $name)->asPopupButton()->one()->select('Configuration');
$form = COverlayDialogElement::find()->asForm()->one()->waitUntilVisible();
@@ -531,7 +532,7 @@ abstract class testFormMacros extends CLegacyWebTest {
}
else {
if ($host_type === 'host') {
- $this->page->login()->open('zabbix.php?action=host.view')->waitUntilReady();
+ $this->page->login()->open('zabbix.php?action=host.view&filter_selected=0&filter_reset=1')->waitUntilReady();
$this->query('button:Create host')->one()->waitUntilClickable()->click();
$form = COverlayDialogElement::find()->asForm()->one()->waitUntilVisible();
}
diff --git a/ui/tests/selenium/common/testSystemInformation.php b/ui/tests/selenium/common/testSystemInformation.php
index 181874c04d4..6834b4fc11e 100644
--- a/ui/tests/selenium/common/testSystemInformation.php
+++ b/ui/tests/selenium/common/testSystemInformation.php
@@ -30,7 +30,6 @@ class testSystemInformation extends CWebTest {
public static $standby_lastaccess;
public static $stopped_lastaccess;
public static $unavailable_lastaccess;
- public static $standalone_lastaccess;
public static $skip_fields;
@@ -43,7 +42,6 @@ class testSystemInformation extends CWebTest {
self::$standby_lastaccess = self::$active_lastaccess - 1;
self::$stopped_lastaccess = self::$active_lastaccess - 240;
self::$unavailable_lastaccess = self::$active_lastaccess - 180105;
- self::$standalone_lastaccess = self::$active_lastaccess - 20;
$nodes = [
[
@@ -81,15 +79,6 @@ class testSystemInformation extends CWebTest {
'lastaccess' => self::$active_lastaccess,
'status' => 3,
'ha_sessionid' => 'ckvaw9wjo0000td7p8j66e74x'
- ],
- [
- 'ha_nodeid' => 'ckvawe0t00001h57pcotna8nz',
- 'name' => '',
- 'address' => '192.168.133.100',
- 'port' => 10051,
- 'lastaccess' => self::$standalone_lastaccess,
- 'status' => 0,
- 'ha_sessionid' => 'ckvawe0rx0000gv7pi74mzlqp'
]
];
@@ -147,8 +136,7 @@ class testSystemInformation extends CWebTest {
'Active node' => self::$active_lastaccess,
'Unavailable node' => self::$unavailable_lastaccess,
'Stopped node' => self::$stopped_lastaccess,
- 'Standby node' => self::$standby_lastaccess,
- '<standalone server>' => self::$standalone_lastaccess
+ 'Standby node' => self::$standby_lastaccess
];
/**
@@ -215,13 +203,13 @@ class testSystemInformation extends CWebTest {
$table = $this->query('xpath://table[@class="list-table sticky-header"]')->asTable()->waitUntilVisible()->one();
// Check that before failover delay passes frontend thinks that Zabbix server is running.
- $this->assertEquals('Yes', $table->findRow('Parameter', 'Zabbix server is running')->getColumn(0)->getText());
+ $this->assertEquals('Yes', $table->findRow('Parameter', 'Zabbix server is running')->getColumn('Value')->getText());
// Wait for failover delay to pass.
sleep(self::$update_timestamp + self::FAILOVER_DELAY - time());
// Check that after failover delay passes frontend re-validates Zabbix server status.
$this->page->refresh();
- $this->assertEquals('No', $table->findRow('Parameter', 'Zabbix server is running')->getColumn(0)->getText());
+ $this->assertEquals('No', $table->findRow('Parameter', 'Zabbix server is running')->getColumn('Value')->getText());
}
}
diff --git a/ui/tests/selenium/dashboard/testDashboardDynamicItemWidgets.php b/ui/tests/selenium/dashboard/testDashboardDynamicItemWidgets.php
index 5197239bbac..d34fb9af5e6 100644
--- a/ui/tests/selenium/dashboard/testDashboardDynamicItemWidgets.php
+++ b/ui/tests/selenium/dashboard/testDashboardDynamicItemWidgets.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__) . '/../../include/CWebTest.php';
/**
diff --git a/ui/tests/selenium/dashboard/testDashboardFavoriteGraphsWidget.php b/ui/tests/selenium/dashboard/testDashboardFavoriteGraphsWidget.php
new file mode 100644
index 00000000000..cbcf1076d7d
--- /dev/null
+++ b/ui/tests/selenium/dashboard/testDashboardFavoriteGraphsWidget.php
@@ -0,0 +1,118 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/../../include/CWebTest.php';
+
+/**
+ * @backup profiles
+ *
+ * @onBefore prepareDashboardData
+ */
+class testDashboardFavoriteGraphsWidget extends CWebTest {
+
+ protected static $dashboardid;
+ public $graph_cpu = 'CPU utilization';
+ public $host_name = 'ЗАББИКС Сервер';
+ public $graph_memory = 'Available memory in %';
+
+ public static function prepareDashboardData() {
+ $response = CDataHelper::call('dashboard.create', [
+ [
+ 'name' => 'Dashboard with favorite graphs widget',
+ 'private' => 1,
+ 'pages' => [
+ [
+ 'widgets' => [
+ [
+ 'type' => 'favgraphs',
+ 'x' => 0,
+ 'y' => 0,
+ 'width' => 12,
+ 'height' => 4
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]);
+ self::$dashboardid = $response['dashboardids'][0];
+ }
+
+ public function testDashboardFavoriteGraphsWidget_AddFavoriteGraphs() {
+ $cpu_itemid = CDBHelper::getValue('SELECT itemid FROM items WHERE hostid=10084 AND name='.zbx_dbstr($this->graph_cpu));
+ $memory_itemid = CDBHelper::getValue('SELECT itemid FROM items WHERE hostid=10084 AND name='.zbx_dbstr($this->graph_memory));
+
+ $this->page->login()->open('zabbix.php?action=latest.view&filter_selected=0&filter_reset=1')->waitUntilReady();
+ $this->page->assertHeader('Latest data');
+ $filter = $this->query('name:zbx_filter')->asForm()->one();
+ $table = $this->query('xpath://table['.CXPathHelper::fromClass('overflow-ellipsis').']')->asTable()->one();
+
+ foreach ([$this->graph_cpu, $this->graph_memory] as $graph) {
+ $filter->fill(['Hosts' => $this->host_name, 'Name' => $graph]);
+ $filter->submit();
+ $table->waitUntilReloaded()->invalidate();
+ $table->findRow('Host', $this->host_name)->query('link:Graph')->waitUntilClickable()->one()->click();
+
+ // Add graph to favorite.
+ $this->page->waitUntilReady();
+ $button = $this->query('xpath://button[@id="addrm_fav"]')->waitUntilVisible()->one();
+ $this->assertEquals('Add to favorites', $button->getAttribute('title'));
+ $button->waitUntilClickable()->click();
+ $button->waitUntilAttributesPresent(['title' => 'Remove from favorites']);
+ $this->page->open('zabbix.php?action=latest.view')->waitUntilReady();
+ $this->query('button:Reset')->waitUntilClickable()->one()->click();
+ $table->waitUntilReloaded();
+ }
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid)->waitUntilReady();
+ $widget = CDashboardElement::find()->one()->getWidget('Favorite graphs')->waitUntilReady()->getContent();
+
+ // Check favorite graphs in widget.
+ foreach ([$this->graph_cpu => $cpu_itemid, $this->graph_memory => $memory_itemid] as $graph => $itemid) {
+ $this->assertEquals('history.php?action=showgraph&itemids%5B0%5D='.$itemid,
+ $widget->query('link', $this->host_name.': '.$graph)->one()->getAttribute('href')
+ );
+ $this->assertEquals(1, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='.
+ zbx_dbstr('web.favorite.graphids').' AND value_id='.zbx_dbstr($itemid))
+ );
+ }
+ }
+
+ public function testDashboardFavoriteGraphsWidget_RemoveFavoriteGraphs() {
+ $favorite_graphs = CDBHelper::getAll('SELECT value_id FROM profiles WHERE idx='.zbx_dbstr('web.favorite.graphids'));
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid)->waitUntilReady();
+ $widget = CDashboardElement::find()->one()->getWidget('Favorite graphs')->waitUntilReady()->getContent();
+
+ foreach ($favorite_graphs as $graph) {
+ // Added variable due to External Hook.
+ $xpath = ".//button[@onclick=\"rm4favorites('itemid','".$graph['value_id'];
+ $remove_item = $widget->query('xpath', $xpath."')\"]")->waituntilClickable()->one();
+ $remove_item->click();
+ $remove_item->waitUntilNotVisible();
+ }
+
+ $this->assertEquals('No graphs added.', $widget->query('class:nothing-to-show')->one()->getText());
+ $this->assertEquals(0, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='.
+ zbx_dbstr('web.favorite.graphids'))
+ );
+ }
+}
diff --git a/ui/tests/selenium/dashboard/testDashboardFavoriteMapsWidget.php b/ui/tests/selenium/dashboard/testDashboardFavoriteMapsWidget.php
new file mode 100644
index 00000000000..ddef3a4c8d4
--- /dev/null
+++ b/ui/tests/selenium/dashboard/testDashboardFavoriteMapsWidget.php
@@ -0,0 +1,98 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/../../include/CWebTest.php';
+
+/**
+ * @backup profiles
+ *
+ * @onBefore prepareDashboardData
+ */
+class testDashboardFavoriteMapsWidget extends CWebTest {
+
+ protected static $dashboardid;
+ public $map_test = 'Test map 1';
+ public $mapid = 3;
+
+ public static function prepareDashboardData() {
+ $response = CDataHelper::call('dashboard.create', [
+ [
+ 'name' => 'Dashboard with favorite maps widget',
+ 'private' => 1,
+ 'pages' => [
+ [
+ 'widgets' => [
+ [
+ 'type' => 'favmaps',
+ 'x' => 0,
+ 'y' => 0,
+ 'width' => 12,
+ 'height' => 4
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]);
+ self::$dashboardid = $response['dashboardids'][0];
+ }
+
+ public function testDashboardFavoriteMapsWidget_AddFavoriteMap() {
+ $this->page->login()->open('sysmaps.php')->waitUntilReady();
+ $this->page->assertHeader('Maps');
+ $this->query('link', $this->map_test)->waitUntilClickable()->one()->click();
+
+ $this->page->waitUntilReady();
+ $button = $this->query('xpath://button[@id="addrm_fav"]')->waitUntilVisible()->one();
+ $this->assertEquals('Add to favorites', $button->getAttribute('title'));
+ $button->waitUntilClickable()->click();
+ $this->query('id:addrm_fav')->one()->waitUntilAttributesPresent(['title' => 'Remove from favorites']);
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid)->waitUntilReady();
+ $widget = CDashboardElement::find()->one()->getWidget('Favorite maps')->waitUntilReady()->getContent();
+ $this->assertEquals('zabbix.php?action=map.view&sysmapid='.$this->mapid,
+ $widget->query('link', $this->map_test)->one()->getAttribute('href')
+ );
+ $this->assertEquals(1, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='.
+ zbx_dbstr('web.favorite.sysmapids').' AND value_id='.zbx_dbstr($this->mapid))
+ );
+ }
+
+ public function testDashboardFavoriteMapsWidget_RemoveFavoriteMaps() {
+ $favorite_maps = CDBHelper::getAll('SELECT value_id FROM profiles WHERE idx='.zbx_dbstr('web.favorite.sysmapids'));
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid)->waitUntilReady();
+ $widget = CDashboardElement::find()->one()->getWidget('Favorite maps')->getContent();
+
+ foreach ($favorite_maps as $map) {
+ // Added variable due to External Hook.
+ $xpath = ".//button[@onclick=\"rm4favorites('sysmapid','".$map['value_id'];
+ $remove_item = $widget->query('xpath', $xpath."')\"]")->waituntilClickable()->one();
+ $remove_item->click();
+ $remove_item->waitUntilNotVisible();
+ }
+
+ $this->assertTrue($widget->query('xpath:.//td[text()="No maps added."]')->waitUntilVisible()->one()->isPresent());
+ $this->assertEquals(0, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='.
+ zbx_dbstr('web.favorite.sysmapids'))
+ );
+ }
+}
diff --git a/ui/tests/selenium/dashboard/testDashboardForm.php b/ui/tests/selenium/dashboard/testDashboardForm.php
new file mode 100644
index 00000000000..c171410cafd
--- /dev/null
+++ b/ui/tests/selenium/dashboard/testDashboardForm.php
@@ -0,0 +1,920 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+require_once dirname(__FILE__).'/../../include/CWebTest.php';
+require_once dirname(__FILE__).'/../traits/TableTrait.php';
+
+/**
+ * @backup dashboard, profiles
+ *
+ * @onBefore prepareDashboardData
+ *
+ * @dataSource LoginUsers
+ */
+class testDashboardForm extends CWebTest {
+
+ use TableTrait;
+
+ /**
+ * Dashboard ids grouped by name.
+ *
+ * @var array
+ */
+ protected static $ids;
+
+ /**
+ * Get all dashboard related tables hash values.
+ */
+ public static function getHash() {
+ return [
+ 'dashboard' => CDBHelper::getHash('SELECT * FROM dashboard'),
+ 'dashboard_user' => CDBHelper::getHash('SELECT * FROM dashboard_user ORDER by dashboard_userid'),
+ 'dashboard_usrgrp' => CDBHelper::getHash('SELECT * FROM dashboard_usrgrp ORDER by dashboard_usrgrpid'),
+ 'dashboard_page' => CDBHelper::getHash('SELECT * FROM dashboard_page ORDER by dashboard_pageid'),
+ 'widget' => CDBHelper::getHash('SELECT * FROM widget ORDER by widgetid')
+ ];
+ }
+
+ /**
+ * Default values of dashboard properties.
+ */
+ private $default_values = [
+ 'Owner' => 'Admin (Zabbix Administrator)',
+ 'Name' => 'New dashboard',
+ 'Default page display period' => '30 seconds',
+ 'Start slideshow automatically' => true
+ ];
+
+ /**
+ * Dashboard properties for cancellation test.
+ */
+ private $update_values = [
+ 'Owner' => 'guest',
+ 'Name' => 'Dashboard to test properties changes',
+ 'Default page display period' => '1 hour',
+ 'Start slideshow automatically' => false
+ ];
+
+ /**
+ * Attach MessageBehavior to the test.
+ *
+ * @return array
+ */
+ public function getBehaviors() {
+ return ['class' => CMessageBehavior::class];
+ }
+
+ public function prepareDashboardData() {
+ $response = CDataHelper::call('dashboard.create', [
+ [
+ 'name' => 'Dashboard for update',
+ 'userid' => 2,
+ 'display_period' => 60,
+ 'auto_start' => 0,
+ 'private' => 1,
+ 'pages' => [[]]
+ ],
+ [
+ 'name' => 'Dashboard for clone and delete',
+ 'userid' => 2,
+ 'display_period' => 3600,
+ 'auto_start' => 0,
+ 'private' => 0,
+ 'pages' => [
+ [
+ 'name' => 'Page name',
+ 'display_period' => 1800,
+ 'widgets' => [
+ [
+ 'type' => 'clock',
+ 'name' => 'Custom clock name',
+ 'x' => 0,
+ 'y' => 0,
+ 'width' => 12,
+ 'height' => 4,
+ 'fields' => [
+ [
+ 'type' => 0,
+ 'name' => 'rf_rate',
+ 'value' => 0
+ ],
+ [
+ 'type' => 0,
+ 'name' => 'time_type',
+ 'value' => 1
+ ]
+ ]
+ ]
+ ]
+ ]
+ ],
+ 'users' => [
+ [
+ 'userid' => 1,
+ 'permission' => 3
+ ]
+ ],
+ 'userGroups' => [
+ [
+ 'usrgrpid' => 7,
+ 'permission' => 2
+ ]
+ ]
+ ],
+ [
+ 'name' => 'Dashboard for share',
+ 'userid' => 1,
+ 'pages' => [[]],
+ 'users' => [
+ [
+ 'userid' => 4,
+ 'permission' => 3
+ ],
+ [
+ 'userid' => CDataHelper::get('LoginUsers.userids.disabled-user'),
+ 'permission' => 2
+ ]
+ ],
+ 'userGroups' => [
+ [
+ 'usrgrpid' => 11,
+ 'permission' => 2
+ ],
+ [
+ 'usrgrpid' => 12,
+ 'permission' => 3
+ ]
+ ]
+ ]
+ ]);
+ $this->assertArrayHasKey('dashboardids', $response);
+ self::$ids = CDataHelper::getIds('name');
+ }
+
+ public function testDashboardForm_Layout() {
+ $this->page->login()->open('zabbix.php?action=dashboard.list')->waitUntilReady();
+ $this->query('button:Create dashboard')->one()->click();
+ $this->page->assertHeader('New dashboard');
+ $this->page->assertTitle('Dashboard');
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $this->assertEquals('Dashboard properties', $dialog->getTitle());
+ $form = $dialog->asForm();
+
+ // Check default values.
+ $form->checkValue($this->default_values);
+ $this->assertEquals('255', $form->query('id:name')->one()->getAttribute('maxlength'));
+
+ // Check available display periods.
+ $this->assertEquals(['10 seconds', '30 seconds', '1 minute', '2 minutes', '10 minutes', '30 minutes', '1 hour'],
+ $form->getField('Default page display period')->getOptions()->asText()
+ );
+
+ // Close the dialog.
+ $dialog->query('button:Cancel')->one()->click();
+ COverlayDialogElement::ensureNotPresent();
+
+ // Check if dashboard is empty.
+ $dashboard = CDashboardElement::find()->one();
+ $this->assertTrue($dashboard->isEmpty());
+
+ // Cancel dashboard editing.
+ $dashboard->cancelEditing();
+ }
+
+ public static function getPropertiesData() {
+ return [
+ [
+ [
+ 'expected' => TEST_BAD,
+ 'dashboard_properties' => [
+ 'Name' => ''
+ ],
+ 'error_message' => 'Incorrect value for field "name": cannot be empty.'
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_BAD,
+ 'dashboard_properties' => [
+ 'Name' => ' '
+ ],
+ 'error_message' => 'Incorrect value for field "name": cannot be empty.'
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_BAD,
+ 'dashboard_properties' => [
+ 'Owner' => ''
+ ],
+ 'error_message' => 'Field "userid" is mandatory.'
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_BAD,
+ 'dashboard_properties' => [
+ 'Name' => 'Global view'
+ ],
+ 'error_message' => 'Dashboard "Global view" already exists.',
+ 'save_dashboard' => true
+ ]
+ ],
+ // Creation with default values or simple update without data changes.
+ [
+ [
+ 'expected' => TEST_GOOD,
+ 'dashboard_properties' => []
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_GOOD,
+ 'dashboard_properties' => [
+ 'Name' => 'Empty dashboard'
+ ]
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_GOOD,
+ 'dashboard_properties' => [
+ 'Name' => '!@#$%^&*()_+=-09[]{};:\'"',
+ 'Default page display period' => '10 seconds'
+ ]
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_GOOD,
+ 'dashboard_properties' => [
+ 'Owner' => 'guest',
+ 'Name' => 'кириллица',
+ 'Start slideshow automatically' => false
+ ]
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_GOOD,
+ 'dashboard_properties' => [
+ 'Owner' => 'guest',
+ 'Name' => '☺æų☺',
+ 'Default page display period' => '1 minute',
+ 'Start slideshow automatically' => false
+ ]
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_GOOD,
+ 'dashboard_properties' => [
+ 'Name' => ' Trailing & leading spaces ',
+ 'Start slideshow automatically' => false
+ ],
+ 'trim' => true
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * Check validation of the Dashboard properties overlay dialog when creating a dashboard.
+ *
+ * @dataProvider getPropertiesData
+ */
+ public function testDashboardForm_Create($data) {
+ $old_hash = ($data['expected'] === TEST_BAD) ? $this->getHash() : null;
+ $this->page->login()->open('zabbix.php?action=dashboard.view&new=1');
+ $dashboard = CDashboardElement::find()->one();
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $this->checkProperties($data, 'create', $dashboard, $dialog, $old_hash);
+ }
+
+ /**
+ * Check validation of the Dashboard properties overlay dialog when updating a dashboard.
+ *
+ * @dataProvider getPropertiesData
+ */
+ public function testDashboardForm_Update($data) {
+ $old_hash = ($data['expected'] === TEST_BAD || empty($data['dashboard_properties'])) ? $this->getHash() : null;
+
+ if (CTestArrayHelper::get($data, 'dashboard_properties.Name', false) && $data['expected'] === TEST_GOOD) {
+ $data['dashboard_properties']['Name'] = $data['dashboard_properties']['Name'].microtime();
+ }
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$ids['Dashboard for update']);
+ $dashboard = CDashboardElement::find()->one();
+ $dashboard->edit();
+ $dialog = $dashboard->editProperties();
+ $this->checkProperties($data, 'update', $dashboard, $dialog, $old_hash);
+ }
+
+ /**
+ * Check dashboard properties after form submit.
+ *
+ * @param array $data data provider
+ * @param string $action action that should be checked, create or update dashboard
+ * @param CDashboardElement $dashboard dashboard element
+ * @param COverlayDialogElement $dialog dasboard properties overlay dialog
+ * @param array $old_hash hashes values before form submit
+ */
+ private function checkProperties($data, $action, $dashboard, $dialog, $old_hash = null) {
+ $form = $dialog->asForm();
+ $form->fill($data['dashboard_properties']);
+ $form->submit();
+
+ if (CTestArrayHelper::get($data, 'trim', false)) {
+ $data['dashboard_properties']['Name'] = trim($data['dashboard_properties']['Name']);
+ }
+
+ if (CTestArrayHelper::get($data, 'expected', TEST_GOOD) === TEST_BAD) {
+ if (CTestArrayHelper::get($data, 'save_dashboard')) {
+ $this->query('button:Save changes')->one()->click();
+ $this->assertMessage(TEST_BAD, null, $data['error_message']);
+ }
+ else {
+ $this->assertMessage(TEST_BAD, null, $data['error_message']);
+ $form->invalidate();
+ $form->checkValue($data['dashboard_properties']);
+ $dialog->close();
+ }
+
+ $dashboard->cancelEditing();
+ $this->assertEquals($old_hash, $this->getHash());
+ }
+ else {
+ COverlayDialogElement::ensureNotPresent();
+ $dashboard->save();
+ $this->page->waitUntilReady();
+ $this->assertMessage(TEST_GOOD, 'Dashboard '.$action.'d');
+ $default_name = ($action === 'create') ? $this->default_values['Name'] : 'Dashboard for update';
+
+ if (CTestArrayHelper::get($data, 'trim', false)) {
+ $title = trim(preg_replace('/\s\s+/', ' ', str_replace("\n", " ", $data['dashboard_properties']['Name'])));
+ }
+ else {
+ $title = CTestArrayHelper::get($data, 'dashboard_properties.Name', $default_name);
+ }
+
+ $this->assertEquals($title, $dashboard->getTitle());
+
+ // Open dashboard from dashboard list.
+ $this->page->login()->open('zabbix.php?action=dashboard.list')->waitUntilReady();
+ $this->query('link', $title)->one()->waitUntilClickable()->click();
+ $this->page->waitUntilReady();
+ $dashboard->edit();
+
+ if (empty($data['dashboard_properties'])) {
+ if ($action === 'create') {
+ $data['dashboard_properties'] = $this->default_values;
+ }
+ else {
+ $this->assertEquals($old_hash, $this->getHash());
+ }
+ }
+
+ // Check dashboard properties.
+ $dashboard->editProperties();
+ $form->invalidate();
+ $form->checkValue($data['dashboard_properties']);
+ $dashboard->cancelEditing();
+ }
+ }
+
+ public static function getCancelCreateData() {
+ return [
+ [
+ [
+ 'save_properties' => true
+ ]
+ ],
+ [
+ [
+ 'save_properties' => false,
+ 'opened_dashboard' => 'Global view'
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * Test cancelling dashboard creation and remembering the previous dashboard page.
+ *
+ * @dataProvider getCancelCreateData
+ */
+ public function testDashboardForm_CancelCreate($data) {
+ $old_hash = $this->getHash();
+
+ $this->page->login()->open('zabbix.php?action=dashboard.list')->waitUntilReady();
+
+ if (CTestArrayHelper::get($data, 'opened_dashboard', false)) {
+ $this->query('link', $data['opened_dashboard'])->one()->click();
+ $this->page->assertHeader($data['opened_dashboard']);
+ $this->page->assertTitle('Dashboard');
+ $this->query('id:dashboard-actions')->one()->click();
+ CPopupMenuElement::find()->waitUntilVisible()->one()->select('Create new');
+ }
+ else {
+ $this->query('button:Create dashboard')->one()->click();
+ }
+
+ $dashboard = CDashboardElement::find()->one();
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $form = $dialog->asForm();
+ $form->fill($this->update_values);
+
+ // Save dashboard properties or discard changes to the dashboard properties.
+ if ($data['save_properties']) {
+ $form->submit();
+ }
+ else {
+ $dialog->close();
+ }
+
+ $dashboard->cancelEditing();
+
+ if (CTestArrayHelper::get($data, 'opened_dashboard', false)) {
+ $url = 'zabbix.php?action=dashboard.view&cancel=1';
+ $title = $data['opened_dashboard'];
+ }
+ else {
+ $url = 'zabbix.php?action=dashboard.list';
+ $title = 'Dashboards';
+ }
+
+ $this->page->assertHeader($title);
+ $this->assertEquals(PHPUNIT_URL . $url, $this->page->getCurrentUrl());
+ $this->assertEquals($old_hash, $this->getHash());
+ }
+
+ public static function getCancelData() {
+ return [
+ [
+ [
+ 'action' => 'update',
+ 'save_properties' => true
+ ]
+ ],
+ [
+ [
+ 'action' => 'update',
+ 'save_properties' => false
+ ]
+ ],
+ [
+ [
+ 'action' => 'Delete'
+ ]
+ ],
+ [
+ [
+ 'action' => 'Clone',
+ 'save_properties' => true
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * Test cancel dashboard update, delete and clone.
+ *
+ * @dataProvider getCancelData
+ */
+ public function testDashboardForm_Cancel($data) {
+ $old_hash = $this->getHash();
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$ids['Dashboard for update']);
+ $dashboard = CDashboardElement::find()->one();
+
+ // Open dashboard properties overlay dialog for update and clone action.
+ if ($data['action'] === 'update') {
+ $dashboard->edit();
+ $dialog = $dashboard->editProperties();
+ }
+ else {
+ $this->query('id:dashboard-actions')->one()->click();
+ CPopupMenuElement::find()->waitUntilVisible()->one()->select($data['action']);
+
+ if ($data['action'] === 'Delete') {
+ $this->assertEquals('Delete dashboard?', $this->page->getAlertText());
+ $this->page->dismissAlert();
+ $this->assertEquals($old_hash, $this->getHash());
+ return;
+ }
+
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ }
+
+ // Change dashboard properties.
+ $form = $dialog->asForm();
+ $form->fill($this->update_values);
+
+ if ($data['save_properties']) {
+ $form->submit();
+ // Cancel saving the dashboard if the dashboard properties have changed.
+ $dashboard->cancelEditing();
+ }
+ else {
+ $dialog->close();
+ // Save the dashboard if the dashboard properties haven't changed.
+ $dashboard->save();
+ }
+
+ $this->assertEquals($old_hash, $this->getHash());
+ }
+
+ public function testDashboardForm_Clone() {
+ $original_values = [
+ 'Name' => 'Dashboard for clone and delete',
+ 'Owner' => 'guest',
+ 'Default page display period' => '1 hour',
+ 'Start slideshow automatically' => false
+ ];
+ $cloned_name = 'Cloned dashboard';
+ $original_hashes = $this->getDashboardHashes($original_values['Name']);
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.
+ self::$ids['Dashboard for clone and delete'])->waitUntilReady();
+ $dashboard = CDashboardElement::find()->one();
+
+ // Clone dashboard.
+ $this->query('id:dashboard-actions')->one()->click();
+ CPopupMenuElement::find()->waitUntilVisible()->one()->select('Clone');
+ $this->assertEquals($original_values['Name'], $dashboard->getTitle());
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $this->assertEquals('Dashboard properties', $dialog->getTitle());
+ $form = $dialog->asForm();
+
+ // Check the properties values of the cloned dashboard.
+ $original_values['Owner'] = 'Admin (Zabbix Administrator)';
+ $form->checkValue($original_values);
+
+ // Change name and save dashboard properties.
+ $form->fill(['Name' => $cloned_name]);
+ $original_values['Name'] = $cloned_name;
+ $form->submit();
+ $dashboard->save();
+
+ $this->page->waitUntilReady();
+ $this->assertMessage(TEST_GOOD, 'Dashboard created');
+ $this->assertEquals($cloned_name, $dashboard->getTitle());
+ $dashboard->getWidget('Custom clock name');
+ $dashboard->edit();
+ $dashboard->editProperties();
+ $form->invalidate();
+
+ // Check and compare dashboard properties and hashes.
+ $form->checkValue($original_values);
+ $actual_hashes = $this->getDashboardHashes($cloned_name);
+ $this->assertEquals($original_hashes, $actual_hashes);
+
+ $dashboard->cancelEditing();
+ }
+
+ /**
+ * Get all related dashboard tables hashes for cloning test.
+ *
+ * @param string $name dashboard name
+ *
+ * @return array
+ */
+ private function getDashboardHashes($name) {
+ $ids = [];
+ $query_value = $name;
+ $query_id = [
+ 'dashboardid' => 'SELECT dashboardid FROM dashboard WHERE name=',
+ 'pageid' => 'SELECT dashboard_pageid FROM dashboard_page WHERE dashboardid=',
+ 'widgetid' => 'SELECT widgetid FROM widget WHERE dashboard_pageid='
+ ];
+
+ foreach ($query_id as $id => $hash) {
+ $ids[$id] = CDBHelper::getValue($hash . zbx_dbstr($query_value));
+ // Save previous id value for next query.
+ $query_value = $ids[$id];
+ }
+
+ $result = [];
+ $query_hash = [
+ 'dashboard' => 'SELECT private, templateid, display_period, auto_start, uuid FROM dashboard WHERE dashboardid='.$ids['dashboardid'],
+ 'dashboard_user' => 'SELECT userid, permission FROM dashboard_user WHERE dashboardid='.$ids['dashboardid'],
+ 'dashboard_usrgrp' => 'SELECT usrgrpid, permission FROM dashboard_usrgrp WHERE dashboardid='.$ids['dashboardid'],
+ 'dashboard_page' => 'SELECT name, display_period, sortorder FROM dashboard_page WHERE dashboard_pageid='.$ids['pageid'],
+ 'widget' => 'SELECT type, name, x, y, width, height, view_mode FROM widget WHERE dashboard_pageid='.$ids['pageid'],
+ 'widget_field' => 'SELECT type, name, value_int, value_str, value_groupid FROM widget_field WHERE widgetid='.$ids['widgetid']
+ ];
+ foreach ($query_hash as $table => $hash) {
+ $result[$table] = CDBHelper::getHash($hash);
+ }
+
+ return $result;
+ }
+
+ public static function getShareData() {
+ return [
+ // Add new user.
+ [
+ [
+ 'dashboard' => 'Dashboard for update',
+ 'groups' => [
+ [
+ 'name' => 'Zabbix administrators'
+ ]
+ ]
+ ]
+ ],
+ // Add new group.
+ [
+ [
+ 'dashboard' => 'Dashboard for update',
+ 'users' => [
+ [
+ 'name' => 'Admin',
+ 'full_name' => 'Admin (Zabbix Administrator)'
+ ]
+ ]
+ ]
+ ],
+ // Add new user and group.
+ [
+ [
+ 'dashboard' => 'Dashboard for update',
+ 'type' => 'Public',
+ 'groups' => [
+ [
+ 'name' => 'Guests'
+ ]
+ ],
+ 'users' => [
+ [
+ 'name' => 'guest'
+ ]
+ ]
+ ]
+ ],
+ // Update existen user and group permissions.
+ [
+ [
+ 'dashboard' => 'Dashboard for clone and delete',
+ 'type' => 'Private',
+ 'groups' => [
+ [
+ 'action' => USER_ACTION_UPDATE,
+ 'name' => 'Zabbix administrators',
+ 'permissions' => 'Read-write'
+ ]
+ ],
+ 'users' => [
+ [
+ 'action' => USER_ACTION_UPDATE,
+ 'name' => 'Admin (Zabbix Administrator)',
+ 'permissions' => 'Read-only'
+ ]
+ ]
+ ]
+ ],
+ // Add, update and remove user and groups.
+ [
+ [
+ 'dashboard' => 'Dashboard for share',
+ 'groups' => [
+ [
+ 'name' => 'Selenium user group',
+ 'permissions' => 'Read-only'
+ ],
+ [
+ 'action' => USER_ACTION_UPDATE,
+ 'name' => 'Enabled debug mode',
+ 'permissions' => 'Read-write'
+ ],
+ [
+ 'action' => USER_ACTION_REMOVE,
+ 'name' => 'No access to the frontend'
+ ]
+ ],
+ 'users' => [
+ [
+ 'name' => 'user-zabbix',
+ 'permission' => 'Read-write'
+ ],
+ [
+ 'action' => USER_ACTION_UPDATE,
+ 'name' => 'admin-zabbix',
+ 'permissions' => 'Read-only'
+ ],
+ [
+ 'action' => USER_ACTION_REMOVE,
+ 'name' => 'disabled-user'
+ ]
+ ]
+ ]
+ ],
+ // Add all users and groups.
+ [
+ [
+ 'dashboard' => 'Dashboard for share',
+ 'groups' => ['all'],
+ 'users' => ['all']
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * Test dashboard sharing form.
+ *
+ * @dataProvider getShareData
+ */
+ public function testDashboardForm_SharingPopup($data) {
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$ids[$data['dashboard']]);
+ CDashboardElement::find()->one()->waitUntilReady();
+ $this->query('id:dashboard-actions')->one()->click();
+ CPopupMenuElement::find()->waitUntilVisible()->one()->select('Sharing');
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $this->assertEquals('Dashboard sharing', $dialog->getTitle());
+ $form = $dialog->asForm();
+
+ // Fill form.
+ $type = CTestArrayHelper::get($data, 'type', 'Private');
+ $form->fill(['Type' => $type]);
+ $this->fillSharingForm(CTestArrayHelper::get($data, 'groups', false), 'User groups');
+ $this->fillSharingForm(CTestArrayHelper::get($data, 'users', false), 'Users');
+ $form->submit();
+ COverlayDialogElement::ensureNotPresent();
+ $this->assertMessage(TEST_GOOD, 'Dashboard updated');
+
+ // Check sharing popup form.
+ $this->query('id:dashboard-actions')->one()->click();
+ CPopupMenuElement::find()->waitUntilVisible()->one()->select('Sharing');
+ $form->invalidate();
+ $form->checkValue(['Type' => $type]);
+ $this->checkSharingForm(CTestArrayHelper::get($data, 'users', false), 'Users', $form, $type);
+ $this->checkSharingForm(CTestArrayHelper::get($data, 'groups', false), 'User groups', $form, $type);
+ $dialog->close();
+ }
+
+ /**
+ * Fill dashboard sharing form.
+ *
+ * @param array $data users or user groups data
+ * @param string $list users or user groups list
+ */
+ private function fillSharingForm($data, $list) {
+ if ($data) {
+ $dialog = COverlayDialogElement::find()->one();
+ $form = $dialog->asForm();
+ $table = $form->getField(($list === 'Users') ? 'List of user shares' : 'List of user group shares')->asTable();
+
+ foreach ($data as $share) {
+ $action = CTestArrayHelper::get($share, 'action', USER_ACTION_ADD);
+
+ switch ($action) {
+ case USER_ACTION_ADD;
+ $rows = $table->getRows()->count();
+ $table->query('button:Add')->one()->click();
+ $dialog = COverlayDialogElement::find()->all()->last()->waitUntilReady();
+
+ if ($share === 'all') {
+ // Count row with Add button.
+ $rows = 1;
+ $add_rows = $dialog->asTable()->getRows()->count();
+ $this->selectTableRows();
+ $dialog->query('button:Select')->one()->click();
+ }
+ else {
+ $dialog->query('link', $share['name'])->one()->click();
+ $add_rows = 1;
+ }
+
+ // Wait until new table row appears.
+ $table->query('xpath://tbody/tr['.($rows + $add_rows).']')->waitUntilPresent();
+
+ if (CTestArrayHelper::get($share, 'permissions', false)) {
+ $row = $table->findRow($list, $share['name']);
+ $row->getColumn('Permissions')->asSegmentedRadio()->fill($share['permissions']);
+ }
+ break;
+
+ case USER_ACTION_UPDATE;
+ $row = $table->findRow($list, $share['name']);
+ $row->getColumn('Permissions')->asSegmentedRadio()->fill($share['permissions']);
+ break;
+
+ case USER_ACTION_REMOVE;
+ $row = $table->findRow($list, $share['name']);
+ $row->getColumn('Action')->query('button:Remove')->one()->click();
+ // Wait until table row disappears.
+ $row->waitUntilNotPresent();
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Check form of dashboard share after changes.
+ *
+ * @param array $data users or user groups data
+ * @param string $list users or user groups list of shares
+ * @param CFormElement $form form element of dashboard share
+ * @param string $type dashboard sharing type, private or public
+ */
+ private function checkSharingForm($data, $list, $form, $type) {
+ if ($data) {
+ $table = $form->getField(($list === 'Users') ? 'List of user shares' : 'List of user group shares')->asTable();
+
+ if ($data[0] === 'all') {
+ if ($list === 'Users') {
+ $query = 'SELECT username FROM users';
+ $key = 'username';
+ $selector = 'xpath://label[text()="List of user shares"]/ancestor::li//table';
+ }
+ else {
+ $query = 'SELECT name FROM usrgrp';
+ $key = 'name';
+ $selector = 'xpath://label[text()="List of user group shares"]/ancestor::li//table';
+ }
+
+ $db_names = CDBHelper::getAll($query);
+
+ // Database reult format is [['username' => 'Admin'], ['username' => 'Tag-user']]
+ foreach ($db_names as $array) {
+ // Result format should be ['Admin', 'Tag-user'] to compare with table result in UI.
+ $result[] = $array[$key];
+ }
+
+ natcasesort($result);
+ $result = array_values($result);
+
+ // Add name and surname to Admin user.
+ if ($list === 'Users' && $result[0] === 'Admin') {
+ $result[0] = 'Admin (Zabbix Administrator)';
+ }
+
+ $this->assertTableHasDataColumn($result, $list, $selector);
+
+ return;
+ }
+
+ foreach ($data as $share) {
+ $action = CTestArrayHelper::get($share, 'action', USER_ACTION_ADD);
+
+ if ($action === USER_ACTION_ADD || $action === USER_ACTION_UPDATE) {
+ // Default permission value depends on the sharing type.
+ $default_permissions = ($type === 'Private') ? 'Read-only' : 'Read-write';
+ $row = $table->findRow($list, CTestArrayHelper::get($share, 'full_name', $share['name']));
+ $this->assertEquals(CTestArrayHelper::get($share, 'permissions', $default_permissions),
+ $row->getColumn('Permissions')->asSegmentedRadio()->getValue()
+ );
+ }
+ else {
+ $this->assertFalse($table->query('xpath://tbody/tr/td[text()='.
+ CXPathHelper::escapeQuotes($share['name']).']')->one(false)->isValid()
+ );
+ }
+ }
+ }
+ }
+
+ public function testDashboardForm_Delete() {
+ $pageid = CDBHelper::getValue('SELECT dashboard_pageid FROM dashboard_page WHERE dashboardid='.
+ zbx_dbstr(self::$ids['Dashboard for clone and delete']));
+ $widgetid = CDBHelper::getValue('SELECT widgetid FROM widget WHERE dashboard_pageid='.zbx_dbstr($pageid));
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$ids['Dashboard for clone and delete']);
+ CDashboardElement::find()->one()->waitUntilReady();
+ $this->query('id:dashboard-actions')->one()->click();
+ CPopupMenuElement::find()->waitUntilVisible()->one()->select('Delete');
+ $this->page->acceptAlert();
+ $this->assertMessage(TEST_GOOD, 'Dashboard deleted');
+
+ // Check related dashboard tables.
+ $tables = [
+ 'SELECT NULL FROM dashboard_page dp INNER JOIN dashboard d'.
+ ' ON d.dashboardid=dp.dashboardid WHERE d.dashboardid='.zbx_dbstr(self::$ids['Dashboard for clone and delete']),
+ 'SELECT NULL FROM dashboard_user WHERE dashboardid='.zbx_dbstr(self::$ids['Dashboard for clone and delete']),
+ 'SELECT NULL FROM dashboard_usrgrp WHERE dashboardid='.zbx_dbstr(self::$ids['Dashboard for clone and delete']),
+ 'SELECT NULL FROM widget_field wf INNER JOIN widget w ON w.widgetid=wf.widgetid WHERE w.widgetid='.$widgetid
+ ];
+ foreach ($tables as $query) {
+ $this->assertEquals(0, CDBHelper::getCount($query));
+ }
+ }
+}
diff --git a/ui/tests/selenium/dashboard/testDashboardHostAvailabilityWidget.php b/ui/tests/selenium/dashboard/testDashboardHostAvailabilityWidget.php
index cb88d95067e..9ef7e96f4cd 100644
--- a/ui/tests/selenium/dashboard/testDashboardHostAvailabilityWidget.php
+++ b/ui/tests/selenium/dashboard/testDashboardHostAvailabilityWidget.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
/**
diff --git a/ui/tests/selenium/dashboard/testDashboardPages.php b/ui/tests/selenium/dashboard/testDashboardPages.php
index b5f5a746c68..07059c6ad08 100644
--- a/ui/tests/selenium/dashboard/testDashboardPages.php
+++ b/ui/tests/selenium/dashboard/testDashboardPages.php
@@ -22,6 +22,8 @@ require_once dirname(__FILE__).'/../../include/CWebTest.php';
require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php';
+use Facebook\WebDriver\WebDriverKeys;
+
/**
* @backup dashboard
*
@@ -554,6 +556,11 @@ class testDashboardPages extends CWebTest {
// Check that Delete option is disabled when one page left.
$page_menu = $this->getPageMenu('Page 1');
$this->assertTrue($page_menu->query('xpath:.//a[@aria-label="Actions, Delete"]')->one()->isEnabled(false));
+
+ // Press Escape key to close page menu before saving the dashboard.
+ $this->page->keyPress(WebDriverKeys::ESCAPE);
+ $page_menu->waitUntilNotVisible();
+
$dashboard->save();
$this->assertEquals(['Page 1'], $this->getPagesTitles());
}
diff --git a/ui/tests/selenium/dashboard/testDashboardProblemsBySeverityWidget.php b/ui/tests/selenium/dashboard/testDashboardProblemsBySeverityWidget.php
index 22550382d15..655702da998 100644
--- a/ui/tests/selenium/dashboard/testDashboardProblemsBySeverityWidget.php
+++ b/ui/tests/selenium/dashboard/testDashboardProblemsBySeverityWidget.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
require_once dirname(__FILE__).'/../traits/TagTrait.php';
require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
diff --git a/ui/tests/selenium/dashboard/testDashboardTriggerOverviewWidget.php b/ui/tests/selenium/dashboard/testDashboardTriggerOverviewWidget.php
new file mode 100644
index 00000000000..e4e415c9a96
--- /dev/null
+++ b/ui/tests/selenium/dashboard/testDashboardTriggerOverviewWidget.php
@@ -0,0 +1,915 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/../../include/CWebTest.php';
+require_once dirname(__FILE__).'/../traits/TagTrait.php';
+require_once dirname(__FILE__).'/../traits/TableTrait.php';
+require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
+
+/**
+ * @backup widget, profiles, triggers, problem, config
+ *
+ * @onBefore prepareData
+ */
+class testDashboardTriggerOverviewWidget extends CWebTest {
+
+ use TagTrait;
+ use TableTrait;
+
+ /**
+ * Attach MessageBehavior to the test.
+ *
+ * @return array
+ */
+ public function getBehaviors() {
+ return [CMessageBehavior::class];
+ }
+
+ private static $dashboardid;
+ private static $create_page = 'Page for creation';
+ private static $update_widget = 'Trigger overview for reference';
+ private static $delete_widget = 'Trigger overview for delete';
+ private static $resolved_trigger = '1_trigger_Average';
+ private static $dependency_trigger = 'Trigger disabled with tags';
+ private static $icon_host = 'Host for triggers filtering';
+
+ private static $background_classes = [
+ '1_trigger_Average' => 'normal-bg cursor-pointer blink',
+ '1_trigger_Disaster' => 'disaster-bg',
+ '1_trigger_High' => 'high-bg',
+ '1_trigger_Not_classified' => 'na-bg',
+ '1_trigger_Warning' => 'warning-bg',
+ '2_trigger_Information' => 'info-bg',
+ '3_trigger_Average' => 'average-bg',
+ 'Trigger_for_suppression' => 'average-bg',
+ '4_trigger_Average' => 'average-bg',
+ 'Inheritance trigger with tags' => 'average-bg',
+ '3_trigger_Disaster' => 'normal-bg',
+ 'Dependent trigger ONE' => 'normal-bg',
+ 'Discovered trigger one' => 'normal-bg',
+ 'Trigger disabled with tags' => 'normal-bg'
+ ];
+
+ private static $trigger_icons = [
+ '2_trigger_Information' => 'icon-ackn',
+ '3_trigger_Average' => 'icon-ackn',
+ '4_trigger_Average' => 'icon-ackn',
+ 'Dependent trigger ONE' => 'icon-depend-down',
+ 'Inheritance trigger with tags' => 'icon-depend-down',
+ 'Trigger disabled with tags' => 'icon-depend-up'
+ ];
+
+ /**
+ * SQL query to get widget and widget_field tables to compare hash values, but without widget_fieldid
+ * because it can change.
+ */
+ private $sql = 'SELECT wf.widgetid, wf.type, wf.name, wf.value_int, wf.value_str, wf.value_groupid, wf.value_hostid,'.
+ ' wf.value_itemid, wf.value_graphid, wf.value_sysmapid, w.widgetid, w.dashboard_pageid, w.type, w.name, w.x, w.y,'.
+ ' w.width, w.height'.
+ ' FROM widget_field wf'.
+ ' INNER JOIN widget w'.
+ ' ON w.widgetid=wf.widgetid ORDER BY wf.widgetid, wf.name, wf.value_int, wf.value_str, wf.value_groupid, wf.value_hostid,'.
+ ' wf.value_itemid, wf.value_graphid';
+
+ /**
+ * Function creates dashboards with widgets and adjusts trigger and problems config for the test.
+ */
+ public static function prepareData() {
+ $response = CDataHelper::call('dashboard.create', [
+ [
+ 'name' => 'Dashboard for Trigger overview widgets',
+ 'private' => 0,
+ 'auto_start' => 0,
+ 'pages' => [
+ [
+ 'name' => 'Page with widgets',
+ 'widgets' => [
+ [
+ 'type' => 'trigover',
+ 'name' => self::$update_widget,
+ 'width' => 24,
+ 'height' => 4
+ ],
+ [
+ 'type' => 'trigover',
+ 'name' => self::$delete_widget,
+ 'x' => 0,
+ 'y' => 4,
+ 'width' => 24,
+ 'height' => 4,
+ 'fields' => [
+ [
+ 'type' => 0,
+ 'name' => 'show_suppressed',
+ 'value' => 1
+ ]
+ ]
+ ]
+ ]
+ ],
+ [
+ 'name' => self::$create_page,
+ 'widgets' => []
+ ]
+ ]
+ ]
+ ]);
+
+ self::$dashboardid = $response['dashboardids'][0];
+ $timestamp = time();
+
+ // Resolve one of existing problems to create a recent problem.
+ $triggerids = CDBHelper::getColumn('SELECT triggerid FROM triggers WHERE description IN ('.
+ zbx_dbstr(self::$resolved_trigger).', '.zbx_dbstr(self::$dependency_trigger).')', 'triggerid'
+ );
+ DBexecute('UPDATE triggers SET value=0 WHERE triggerid='.zbx_dbstr($triggerids[0]));
+ DBexecute('UPDATE triggers SET lastchange='.zbx_dbstr($timestamp).' WHERE triggerid='.zbx_dbstr($triggerids[0]));
+ DBexecute('UPDATE problem SET r_eventid=9001 WHERE objectid='.zbx_dbstr($triggerids[0]));
+ DBexecute('UPDATE problem SET r_clock='.zbx_dbstr($timestamp).' WHERE objectid='.zbx_dbstr($triggerids[0]));
+
+ // Change the resolved triggers blinking period as the default value is too small for this test.
+ CDataHelper::call('settings.update', ['blink_period' => '5m']);
+
+ // Enable the trigger that other triggers depend on.
+ CDataHelper::call('trigger.update', [['triggerid' => $triggerids[1], 'status' => 0]]);
+ }
+
+ public function testDashboardTriggerOverviewWidget_Layout() {
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid);
+ $form = CDashboardElement::find()->one()->edit()->addWidget()->asForm();
+ $form->fill(['Type' => CFormElement::RELOADABLE_FILL('Trigger overview')]);
+ $this->assertEquals(['Type', 'Name', 'Refresh interval', 'Show', 'Host groups', 'Hosts', 'Tags', '',
+ 'Show suppressed problems', 'Hosts location'], $form->getLabels()->asText()
+ );
+
+ $default_values = [
+ 'Show header' => true,
+ 'Name' => '',
+ 'Refresh interval' => 'Default (1 minute)',
+ 'Show' => 'Recent problems',
+ 'Host groups' => '',
+ 'Hosts' => '',
+ 'id:evaltype' => 'And/Or',
+ 'id:tags_0_tag' => '',
+ 'id:tags_0_value' => '',
+ 'id:tags_0_operator' => 'Contains',
+ 'Show suppressed problems' => false,
+ 'Hosts location' => 'Left'
+ ];
+
+ $form->checkValue($default_values);
+
+ // Check field lengths and placeholders.
+ foreach (['Name' => 'default', 'id:tags_0_tag' => 'tag', 'id:tags_0_value' => 'value'] as $field => $placeholder) {
+ $field = $form->getField($field);
+ $this->assertEquals(255, $field->getAttribute('maxlength'));
+ $this->assertEquals($placeholder, $field->getAttribute('placeholder'));
+ }
+
+ // Check operators dropdown options.
+ $this->assertEquals(['Exists', 'Equals', 'Contains', 'Does not exist', 'Does not equal',
+ 'Does not contain'], $form->getField('id:tags_0_operator')->asDropdown()->getOptions()->asText()
+ );
+
+ // Check possible values of radio buttons.
+ $radio_buttons = [
+ 'Show' => ['Recent problems', 'Problems', 'Any'],
+ 'Tags' => ['And/Or', 'Or'],
+ 'Hosts location' => ['Left', 'Top']
+ ];
+
+ foreach ($radio_buttons as $radio_button => $values) {
+ $radio_element = $form->getField($radio_button);
+ $this->assertEquals($values, $radio_element->getLabels()->asText());
+ }
+
+ // Check buttons in Tags table.
+ $this->assertEquals(2, $form->query('id:tags_table_tags')->one()->query('button', ['Add', 'Remove'])->all()
+ ->filter(new CElementFilter(CElementFilter::CLICKABLE))->count()
+ );
+
+ // Close the widget configuration form dialog to avoid possible alerts in following tests.
+ COverlayDialogElement::find()->one()->close();
+ }
+
+ public function getWidgetData() {
+ return [
+ // Create a widget with default values including default name.
+ [
+ [
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_Average',
+ '1_trigger_Disaster',
+ '1_trigger_High',
+ '1_trigger_Not_classified',
+ '1_trigger_Warning',
+ '2_trigger_Information'
+ ],
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average'
+ ],
+ '4_Host_to_check_Monitoring_Overview' => [
+ '4_trigger_Average'
+ ],
+ 'Host for triggers filtering' => [
+ 'Inheritance trigger with tags'
+ ]
+ ]
+ ]
+ ],
+ // Create a widget that displays only problems.
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Show problems',
+ 'Show' => 'Problems'
+ ],
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_Disaster',
+ '1_trigger_High',
+ '1_trigger_Not_classified',
+ '1_trigger_Warning',
+ '2_trigger_Information'
+ ],
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average'
+ ],
+ '4_Host_to_check_Monitoring_Overview' => [
+ '4_trigger_Average'
+ ],
+ 'Host for triggers filtering' => [
+ 'Inheritance trigger with tags'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Show all triggers for specific host',
+ 'Show' => 'Any',
+ 'Hosts' => ['3_Host_to_check_Monitoring_Overview']
+ ],
+ 'expected' => [
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average',
+ '3_trigger_Disaster'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Show problems for specific hostgroup',
+ 'Show' => 'Problems',
+ 'Host groups' => ['Group to check Overview']
+ ],
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_Disaster',
+ '1_trigger_High',
+ '1_trigger_Not_classified',
+ '1_trigger_Warning',
+ '2_trigger_Information'
+ ],
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Show problems for multiple hostgroups',
+ 'Show' => 'Problems',
+ 'Host groups' => ['Group to check Overview', 'Another group to check Overview']
+ ],
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_Disaster',
+ '1_trigger_High',
+ '1_trigger_Not_classified',
+ '1_trigger_Warning',
+ '2_trigger_Information'
+ ],
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average'
+ ],
+ '4_Host_to_check_Monitoring_Overview' => [
+ '4_trigger_Average'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Show recent problems for multiple hosts',
+ 'Show' => 'Any',
+ 'Hosts' => ['3_Host_to_check_Monitoring_Overview', '4_Host_to_check_Monitoring_Overview']
+ ],
+ 'expected' => [
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average',
+ '3_trigger_Disaster'
+ ],
+ '4_Host_to_check_Monitoring_Overview' => [
+ '4_trigger_Average'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Hostgroup without triggers',
+ 'Host groups' => ['Dynamic widgets HG1 (H1 and H2)']
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Host without triggers',
+ 'Hosts' => ['Dynamic widgets H1']
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Combination of non-related Host and Hostgroup',
+ 'Host groups' => ['Group to check Overview'],
+ 'Hosts' => ['4_Host_to_check_Monitoring_Overview']
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Show suppressed problems + hosts on top',
+ 'Show suppressed problems' => true,
+ 'Hosts location' => 'Top'
+ ],
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_Average',
+ '1_trigger_Disaster',
+ '1_trigger_High',
+ '1_trigger_Not_classified',
+ '1_trigger_Warning',
+ '2_trigger_Information'
+ ],
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average'
+ ],
+ '4_Host_to_check_Monitoring_Overview' => [
+ '4_trigger_Average'
+ ],
+ 'Host for suppression' => [
+ 'Trigger_for_suppression'
+ ],
+ 'Host for triggers filtering' => [
+ 'Inheritance trigger with tags'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Filter triggers by tag with default operator'
+ ],
+ 'tags' => [
+ ['name' => 'server', 'operator' => 'Contains', 'value' => 'sel']
+ ],
+ 'expected' => [
+ 'Host for triggers filtering' => [
+ 'Inheritance trigger with tags'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Filter triggers by tag with default operator'
+ ],
+ 'tags' => [
+ ['name' => 'server', 'operator' => 'Contains', 'value' => 'sel']
+ ],
+ 'expected' => [
+ 'Host for triggers filtering' => [
+ 'Inheritance trigger with tags'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Filter triggers by 2 tags with Or operator',
+ 'Tags' => 'Or'
+ ],
+ 'tags' => [
+ ['name' => 'Street', 'operator' => 'Exists'],
+ ['name' => 'webhook', 'operator' => 'Equals', 'value' => '1']
+ ],
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_High'
+ ],
+ 'Host for triggers filtering' => [
+ 'Inheritance trigger with tags'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Does not exists and Does not equal tag operators',
+ 'Show' => 'Problems'
+ ],
+ 'tags' => [
+ ['name' => 'Street', 'operator' => 'Does not exist'],
+ ['name' => 'webhook', 'operator' => 'Does not equal', 'value' => '1']
+ ],
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_Disaster',
+ '1_trigger_Not_classified',
+ '1_trigger_Warning',
+ '2_trigger_Information'
+ ],
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average'
+ ],
+ '4_Host_to_check_Monitoring_Overview' => [
+ '4_trigger_Average'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Виджет с tag + 良い1日を un žšī!@#$%^&*()_ vardā'
+ ],
+ 'tags' => [
+ ['name' => 'Street', 'operator' => 'Does not contain', 'value' => 'elza']
+ ],
+ 'expected' => [
+ '1_Host_to_check_Monitoring_Overview' => [
+ '1_trigger_Average',
+ '1_trigger_Disaster',
+ '1_trigger_High',
+ '1_trigger_Not_classified',
+ '1_trigger_Warning',
+ '2_trigger_Information'
+ ],
+ '3_Host_to_check_Monitoring_Overview' => [
+ '3_trigger_Average'
+ ],
+ '4_Host_to_check_Monitoring_Overview' => [
+ '4_trigger_Average'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'No result - filter triggers by 2 tags with And operator'
+ ],
+ 'tags' => [
+ ['name' => 'server', 'operator' => 'Contains', 'value' => 'sel'],
+ ['name' => 'webhook', 'operator' => 'Equals', 'value' => '1']
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Filter by 2 tags without value',
+ 'Tags' => 'Or'
+ ],
+ 'tags' => [
+ ['name' => 'server', 'operator' => 'Contains', 'value' => ''],
+ ['name' => 'webhook', 'operator' => 'Equals', 'value' => '']
+ ],
+ 'expected' => [
+ 'Host for triggers filtering' => [
+ 'Inheritance trigger with tags'
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Only tag specified only by value'
+ ],
+ 'tags' => [
+ ['name' => '', 'operator' => 'Contains', 'value' => '1']
+ ]
+ ]
+ ],
+ [
+ [
+ 'fields' => [
+ 'Name' => 'Check triggers with dependency icons',
+ 'Show' => 'Any',
+ 'Hosts' => [self::$icon_host]
+ ],
+ 'expected' => [
+ 'Host for triggers filtering' => [
+ 'Dependent trigger ONE',
+ 'Discovered trigger one',
+ 'Inheritance trigger with tags',
+ 'Trigger disabled with tags'
+ ]
+ ]
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider getWidgetData
+ */
+ public function testDashboardTriggerOverviewWidget_Create($data) {
+ $this->checkWidgetAction($data);
+ }
+
+ /**
+ * @dataProvider getWidgetData
+ */
+ public function testDashboardTriggerOverviewWidget_Update($data) {
+ $this->checkWidgetAction($data, false);
+ }
+
+ public function testDashboardTriggerOverviewWidget_SimpleUpdate() {
+ $old_hash = CDBHelper::getHash($this->sql);
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid);
+ $dashboard = CDashboardElement::find()->one();
+ $dashboard->edit();
+
+ $form = $dashboard->getWidget(self::$update_widget)->edit();
+ $form->submit();
+ COverlayDialogElement::ensureNotPresent();
+
+ $widget = $dashboard->getWidget(self::$update_widget);
+ $widget->waitUntilReady();
+ $dashboard->save();
+
+ $this->assertMessage(TEST_GOOD, 'Dashboard updated');
+ $this->assertEquals($old_hash, CDBHelper::getHash($this->sql));
+ }
+
+ public function getCancelActionsData() {
+ return [
+ // Cancel update widget.
+ [
+ [
+ 'update' => true,
+ 'save_widget' => true,
+ 'save_dashboard' => false
+ ]
+ ],
+ [
+ [
+ 'update' => true,
+ 'save_widget' => false,
+ 'save_dashboard' => true
+ ]
+ ],
+ // Cancel create widget.
+ [
+ [
+ 'save_widget' => true,
+ 'save_dashboard' => false
+ ]
+ ],
+ [
+ [
+ 'save_widget' => false,
+ 'save_dashboard' => true
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider getCancelActionsData
+ */
+ public function testDashboardTriggerOverviewWidget_Cancel($data) {
+ $old_hash = CDBHelper::getHash($this->sql);
+ $new_name = 'Widget to be cancelled';
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid);
+ $dashboard = CDashboardElement::find()->one()->edit();
+
+ // Start updating or creating a widget.
+ if (CTestArrayHelper::get($data, 'update', false)) {
+ $form = $dashboard->getWidget(self::$update_widget)->edit();
+ }
+ else {
+ $form = $dashboard->addWidget()->asForm();
+
+ if ($form->getField('Type')->getValue() !== 'Trigger overview') {
+ $form->getField('Type')->fill('Trigger overview');
+ $form->invalidate();
+ }
+ }
+
+ $form->fill([
+ 'Name' => $new_name,
+ 'Refresh interval' => '10 minutes',
+ 'Show' => 'Any',
+ 'Host groups' => ['Another group to check Overview'],
+ 'Hosts' => ['4_Host_to_check_Monitoring_Overview'],
+ 'Tags' => 'Or',
+ 'Show suppressed problems' => 'true',
+ 'Hosts location' => 'Top'
+ ]);
+
+ $this->setTagSelector('id:tags_table_tags');
+ $this->setTags([['name' => 'webhook', 'operator' => 'Equals', 'value' => '1']]);
+
+ // Save or cancel widget.
+ if (CTestArrayHelper::get($data, 'save_widget', false)) {
+ $form->submit();
+
+ // Check that changes took place on the unsaved dashboard (widget got renamed).
+ $this->assertTrue($dashboard->getWidget($new_name)->isValid());
+ }
+ else {
+ $dialog = COverlayDialogElement::find()->one();
+ $dialog->query('button:Cancel')->one()->click();
+ $dialog->ensureNotPresent();
+
+ if (CTestArrayHelper::get($data, 'update', false)) {
+ foreach ([self::$update_widget => true, $new_name => false] as $name => $valid) {
+ $this->assertTrue($dashboard->getWidget($name, $valid)->isValid($valid));
+ }
+ }
+ }
+
+ // Save or cancel dashboard update.
+ if (CTestArrayHelper::get($data, 'save_dashboard', false)) {
+ $dashboard->save();
+ }
+ else {
+ $dashboard->cancelEditing();
+ }
+ // Confirm that no changes were made to the widget.
+ $this->assertEquals($old_hash, CDBHelper::getHash($this->sql));
+ }
+
+ public function testDashboardSlaReportWidget_Delete() {
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid);
+ $dashboard = CDashboardElement::find()->one()->edit();
+ $widget = $dashboard->getWidget(self::$delete_widget);
+
+ $dashboard->deleteWidget(self::$delete_widget);
+ $widget->waitUntilNotPresent();
+ $dashboard->save();
+ $this->assertMessage(TEST_GOOD, 'Dashboard updated');
+
+ // Confirm that widget is not present on dashboard.
+ $this->assertFalse($dashboard->getWidget(self::$delete_widget, false)->isValid());
+ $widget_sql = 'SELECT null FROM widget_field wf'.
+ ' LEFT JOIN widget w'.
+ ' ON w.widgetid=wf.widgetid'.
+ ' WHERE w.name='.zbx_dbstr(self::$delete_widget);
+
+ $this->assertEquals(0, CDBHelper::getCount($widget_sql));
+ }
+
+ /**
+ * Function checks the content of the Dependent and Depends on popups.
+ * Icons with Acknowledge popup menus are not checked as they are covered in testPageTriggerUrl test.
+ */
+ public function testDashboardTriggerOverviewWidget_CheckDependencyPopups() {
+ $popup_content = [
+ 'Dependent trigger ONE' => [
+ 'Depends on' => ['Trigger disabled with tags']
+ ],
+ 'Inheritance trigger with tags' => [
+ 'Depends on' => ['Trigger disabled with tags']
+ ],
+ 'Trigger disabled with tags' => [
+ 'Dependent' => ['Inheritance trigger with tags', 'Dependent trigger ONE']
+ ]
+ ];
+
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid);
+ $dashboard = CDashboardElement::find()->one()->edit();
+
+ $form = $dashboard->getWidget(self::$update_widget)->edit();
+ $form->fill(['Show' => 'Any', 'Hosts' => [self::$icon_host]]);
+ $form->submit();
+
+ // Wait for the widget to be ready and save dashboard (the wait is performed within the getWidget() method).
+ $dashboard->getWidget(self::$update_widget);
+ $dashboard->save();
+
+ // Get the table row with all triggers (since all of them belong to a single host).
+ $row = $dashboard->getWidget(self::$update_widget)->getContent()->asTable()->findRow('Hosts', self::$icon_host);
+
+ foreach ($popup_content as $trigger => $dependency) {
+ // Locate hint and check table headers in hint.
+ $hint_table = $row->getColumn($trigger)->query('class:hint-box')->one()->asTable();
+ $this->assertEquals(array_keys($dependency), $hint_table->getHeadersText());
+
+ // Gather data from rows and compare result with reference.
+ $hint_rows = $hint_table->getRows()->asText();
+
+ $this->assertEquals(array_values($dependency), [$hint_rows]);
+ }
+ }
+
+ /**
+ * Create or update a Trigger overview widget and check the result.
+ *
+ * @param array $data widget related data from data provider
+ * @param boolean $create flag that specifies whether a create action is performed
+ */
+ public function checkWidgetAction($data, $create = true) {
+ $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid='.self::$dashboardid);
+ $dashboard = CDashboardElement::find()->one();
+ $dashboard->edit();
+
+ if ($create) {
+ $dashboard->selectPage(self::$create_page);
+ $form = $dashboard->addWidget()->asForm();
+
+ // Set type to Trigger overview in case if this field has a different value.
+ if ($form->getField('Type')->getValue() !== 'Trigger overview') {
+ $form->fill(['Type' => CFormElement::RELOADABLE_FILL('Trigger overview')]);
+ }
+ }
+ else {
+ $form = $dashboard->getWidget(self::$update_widget)->edit();
+
+ // Values from the previous cases should be cleaned-up in case of update scenario before filling-in data.
+ $this->cleanupFormBeforeFill($form, CTestArrayHelper::get($data, 'fields', []));
+ }
+
+ // Fill form in case if values that are different from widget default configuration should be filled.
+ if (array_key_exists('fields', $data)) {
+ $form->fill($data['fields']);
+ }
+
+ if (CTestArrayHelper::get($data,'tags', false)) {
+ $this->setTagSelector('id:tags_table_tags');
+ $this->setTags($data['tags']);
+ }
+
+ $form->submit();
+ COverlayDialogElement::ensureNotPresent();
+
+ $widget_name = (array_key_exists('fields', $data)) ? $data['fields']['Name'] : 'Trigger overview';
+ $widget = $dashboard->getWidget($widget_name);
+ $widget->query('xpath://div[contains(@class, "is-loading")]')->waitUntilNotPresent();
+ $dashboard->save();
+ $this->assertMessage(TEST_GOOD, 'Dashboard updated');
+
+ if ($create) {
+ $dashboard->selectPage(self::$create_page);
+ }
+ else {
+ self::$update_widget = (array_key_exists('fields', $data)) ? $data['fields']['Name'] : 'Trigger overview';
+ }
+
+ $table = $widget->getContent()->asTable();
+
+ if (CTestArrayHelper::get($data, 'fields.Hosts location') === 'Top') {
+ $expected_headers = ['Triggers'];
+ $expected_rows = [];
+ }
+ else {
+ $expected_headers = ['Hosts'];
+ $expected_rows = array_keys(CTestArrayHelper::get($data, 'expected', []));
+ }
+
+ // Check empty result widget and proceed to next case.
+ if (!array_key_exists('expected', $data)) {
+ $this->assertEquals($expected_headers, $table->getHeadersText());
+ $this->assertTableData(null, "xpath://h4[text()=".CXPathHelper::escapeQuotes($data['fields']['Name']).
+ "]/../..//table"
+ );
+
+ return;
+ }
+
+ // Check widget content based on the alignment chosen in Hosts location field.
+ foreach ($data['expected'] as $host => $triggers) {
+ if (CTestArrayHelper::get($data, 'fields.Hosts location') === 'Top') {
+ $expected_headers[] = $host;
+ foreach ($triggers as $trigger) {
+ $expected_rows[] = $trigger;
+ $cell = $table->findRow('Triggers', $trigger)->getColumn($host);
+ $this->checkTriggerCell($cell, $trigger);
+ }
+ }
+ else {
+ $row = $table->findRow('Hosts', $host);
+
+ foreach ($triggers as $trigger) {
+ $expected_headers[] = $trigger;
+ $cell = $row->getColumn($trigger);
+ $this->checkTriggerCell($cell, $trigger);
+ }
+ }
+ }
+
+ // Rows are sorted alphabetically in widget, so the same should apply to the reference array.
+ $expected_rows = array_values($expected_rows);
+ sort($expected_rows);
+
+ $this->assertEquals($expected_headers, $table->getHeadersText());
+ $this->assertTableDataColumn($expected_rows, $expected_headers[0], 'xpath://h4[text()='.
+ CXPathHelper::escapeQuotes($widget_name).']/../..//table[@class="list-table"]'
+ );
+ }
+
+ /**
+ * Remove the previously entered values from widget configuration form.
+ *
+ * @param CFormElement $form widget configuration form element
+ */
+ private function cleanupFormBeforeFill($form) {
+ $default_values = [
+ 'Name' => '',
+ 'Show' => 'Recent problems',
+ 'Host groups' => '',
+ 'Hosts' => '',
+ 'Tags' => 'And/Or',
+ 'Show suppressed problems' => false,
+ 'Hosts location' => 'Left'
+ ];
+
+ foreach ($default_values as $field_name => $value) {
+ $field = $form->getField($field_name);
+
+ if ($field->getValue() !== $value) {
+ if (in_array($field, ['Host groups', 'Hosts'])) {
+ $field->clear();
+ }
+ else {
+ $field->fill($value);
+ }
+ }
+ }
+
+ // Remove tags left from previous case and add a blank row for new data.
+ if ($form->getField('id:tags_0_tag')->getValue() !== '' || $form->getField('id:tags_0_value')->getValue() !== '') {
+ $form->query('button:Remove')->all()->click();
+ $form->query('button:Add')->one()->click();
+ }
+ }
+
+ /**
+ * Check the severity and the icon displayed in the table cell under attention.
+ *
+ * @param CElement $cell table cell that represents the trigger to be checked
+ * @param string $trigger the name of the trigger that is represented by the trigger cell
+ */
+ private function checkTriggerCell ($cell, $trigger) {
+ // Check the colour of the background.
+ $this->assertStringStartsWith(self::$background_classes[$trigger], $cell->getAttribute('class'));
+
+ // Check trigger icon if such should exist.
+ if (in_array($trigger, self::$trigger_icons)) {
+ $element = (self::$trigger_icons[$trigger] === 'icon-ackn') ? 'span' : 'a';
+ $icon = $cell->query('xpath:.//'.$element)->one();
+ $this->assertTrue($icon->isValid());
+ $this->assertStringStartsWith(self::$trigger_icons[$trigger], $cell->getAttribute('class'));
+ }
+ }
+}
diff --git a/ui/tests/selenium/dashboard/testDashboardViewMode.php b/ui/tests/selenium/dashboard/testDashboardViewMode.php
new file mode 100644
index 00000000000..200761c9606
--- /dev/null
+++ b/ui/tests/selenium/dashboard/testDashboardViewMode.php
@@ -0,0 +1,126 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
+
+use Facebook\WebDriver\WebDriverBy;
+
+/**
+ * @backup profiles
+ */
+class testDashboardViewMode extends CLegacyWebTest {
+
+ /**
+ * @onBefore removeGuestFromDisabledGroup
+ * @onAfter addGuestToDisabledGroup
+ */
+ public function testDashboardViewMode_CheckLayoutForDifferentUsers() {
+ $users = ['super-admin', 'admin', 'user', 'guest'];
+ foreach ($users as $user) {
+ switch ($user) {
+ case 'super-admin' :
+ $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55b', 1);
+ break;
+ case 'admin' :
+ $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55c', 4);
+ break;
+ case 'user';
+ $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55d', 5);
+ break;
+ case 'guest';
+ $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55e', 2);
+ break;
+ }
+ $this->zbxTestOpen('zabbix.php?action=dashboard.view&dashboardid=1');
+ $this->zbxTestCheckTitle('Dashboard');
+ $this->zbxTestCheckHeader('Global view');
+ if ($user !== 'super-admin') {
+ $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[8]//tr[@class='nothing-to-show']/td", 'No graphs added.');
+ $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[7]//tr[@class='nothing-to-show']/td", 'No maps added.');
+ $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[6]//tr[@class='nothing-to-show']/td", 'No data found.');
+ }
+ else {
+ $this->zbxTestCheckNoRealHostnames();
+ }
+ $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[8]//h4", 'Favorite graphs');
+ $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[7]//h4", 'Favorite maps');
+ $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[6]//h4", 'Problems');
+ $this->zbxTestAssertElementPresentXpath("//div[@class='dashboard-grid']/div[5]//h4[text()='Problems by severity']");
+ $this->zbxTestAssertElementPresentXpath("//div[@class='dashboard-grid']/div[4]//h4[text()='Local']");
+ $this->zbxTestAssertElementPresentXpath("//div[@class='dashboard-grid']/div[3]//h4[text()='Host availability']");
+ $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[2]//h4", 'System information');
+
+ // Logout.
+ $this->zbxTestLogout();
+ $this->zbxTestWaitForPageToLoad();
+ $this->webDriver->manage()->deleteAllCookies();
+ }
+ }
+
+ public function testDashboardViewMode_KioskMode() {
+ $this->zbxTestLogin('zabbix.php?action=dashboard.view&dashboardid=1', false);
+ $this->zbxTestCheckHeader('Global view');
+ $this->zbxTestAssertElementPresentXpath("//header");
+
+ $this->zbxTestClickXpathWait("//button[contains(@class, 'btn-kiosk')]");
+ $this->zbxTestWaitForPageToLoad();
+ $this->zbxTestWaitUntilElementPresent(WebDriverBy::xpath('//button[@title="Normal view"]'));
+ $this->zbxTestAssertElementNotPresentXpath("//header");
+ $this->zbxTestAssertElementNotPresentXpath("//header[@class='header-title']");
+ $this->zbxTestAssertElementNotPresentXpath("//ul[contains(@class, 'filter-breadcrumb')]");
+ $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-min')]", 'title', 'Normal view');
+
+ $this->query('class:btn-min')->one()->forceClick();
+ $this->zbxTestWaitForPageToLoad();
+ $this->zbxTestWaitUntilElementPresent(WebDriverBy::xpath("//button[contains(@class, 'btn-kiosk')]"));
+ $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-kiosk')]", 'title', 'Kiosk mode');
+ $this->zbxTestAssertElementPresentXpath("//header");
+ $this->zbxTestAssertElementPresentXpath("//header[@class='header-title']");
+ $this->zbxTestAssertElementPresentXpath('//ul[@class="breadcrumbs"]');
+ }
+
+ public function testDashboardViewMode_KioskModeUrlParameter() {
+ // Set layout mode to kiosk view.
+ $this->zbxTestLogin('zabbix.php?action=dashboard.view&kiosk=1', false);
+ $this->zbxTestWaitForPageToLoad();
+ $this->zbxTestWaitUntilElementPresent(WebDriverBy::xpath('//button[@title="Normal view"]'));
+ $this->zbxTestAssertElementNotPresentXpath("//header");
+ $this->zbxTestAssertElementNotPresentXpath("//header[@class='header-title']");
+ $this->zbxTestAssertElementNotPresentXpath("//ul[contains(@class, 'filter-breadcrumb')]");
+ $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-min')]", 'title', 'Normal view');
+
+ // Set layout mode to default layout.
+ $this->zbxTestOpen('zabbix.php?action=dashboard.view&kiosk=0');
+ $this->zbxTestCheckHeader('Global view');
+ $this->zbxTestAssertElementPresentXpath("//header");
+ $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-kiosk')]", 'title', 'Kiosk mode');
+ }
+
+ /**
+ * Guest user needs to be out of "Disabled" group to have access to frontend.
+ */
+ public function removeGuestFromDisabledGroup() {
+ DBexecute('DELETE FROM users_groups WHERE userid=2 AND usrgrpid=9');
+ }
+
+ public function addGuestToDisabledGroup() {
+ DBexecute('INSERT INTO users_groups (id, usrgrpid, userid) VALUES (1550, 9, 2)');
+ }
+}
diff --git a/ui/tests/selenium/dashboard/testFormTemplateDashboards.php b/ui/tests/selenium/dashboard/testFormTemplateDashboards.php
index db141728514..6120524cbf4 100644
--- a/ui/tests/selenium/dashboard/testFormTemplateDashboards.php
+++ b/ui/tests/selenium/dashboard/testFormTemplateDashboards.php
@@ -445,8 +445,8 @@ class testFormTemplateDashboards extends CWebTest {
break;
case 'multiselect':
- $default_value = [];
- $this->assertEquals($default_value, array_values($field->getValue()));
+ $default_value = '';
+ $this->assertEquals($default_value, $field->getValue());
$this->assertEquals('type here to search', $field->query('xpath:.//input')->one()->getAttribute('placeholder'));
break;
@@ -1159,7 +1159,6 @@ class testFormTemplateDashboards extends CWebTest {
* @param string $check Action that should be checked.
*/
private function checkSettings($data, $old_values, $status = 'created', $check = 'dashboard action') {
-// $this->setNetworkThrottlingMode(self::NETWORK_THROTTLING_SLOW);
if (CTestArrayHelper::get($data, 'expected', TEST_GOOD) === TEST_BAD) {
if (CTestArrayHelper::get($data, 'check_save')) {
$this->query('button:Save changes')->one()->click();
diff --git a/ui/tests/selenium/data/data_test.sql b/ui/tests/selenium/data/data_test.sql
index 2a7a7f3fa2d..e045ec3d555 100644
--- a/ui/tests/selenium/data/data_test.sql
+++ b/ui/tests/selenium/data/data_test.sql
@@ -1096,7 +1096,6 @@ INSERT INTO sysmaps_elements (selementid,sysmapid,elementid,elementtype,iconid_o
INSERT INTO sysmap_element_trigger (selement_triggerid, selementid, triggerid) VALUES (2,9,100026);
-- testPageHistory_CheckLayout
-
INSERT INTO hosts (hostid, host, name, status, description) VALUES (15003, 'testPageHistory_CheckLayout', 'testPageHistory_CheckLayout', 0, '');
INSERT INTO hosts_groups (hostgroupid, hostid, groupid) VALUES (15003, 15003, 4);
INSERT INTO interface (interfaceid, hostid, type, ip, useip, port, main) VALUES (15005, 15003, 1, '127.0.0.1', 1, '10050', 1);
@@ -1110,16 +1109,6 @@ INSERT INTO items (itemid, hostid, interfaceid, type, value_type, name, key_, de
INSERT INTO items (itemid, hostid, interfaceid, type, value_type, name, key_, delay, history, status, params, description, flags, posts, headers) VALUES (15091, 15003, 15005, 0, 2, 'item_testPageHistory_CheckLayout_Eventlog' , 'eventlog[item_testpagehistory_checklayout]' , '30s', '90d', 0, '', 'https://zabbix.com', 0, '', '');
INSERT INTO items (itemid, hostid, interfaceid, type, value_type, name, key_, delay, history, status, params, description, flags, posts, headers) VALUES (15092, 15003, 15005, 0, 2, 'item_testPageHistory_CheckLayout_Eventlog_2' , 'eventlog[item_testpagehistory_checklayout, 2]' , '30s', '90d', 0, '', 'The following url should be clickable: https://zabbix.com', 0, '', '');
--- testPageUsers, testFormLogin
-INSERT INTO users (userid, username, passwd, autologin, autologout, lang, refresh, roleid, theme, attempt_failed, attempt_clock, rows_per_page) VALUES (3, 'test-user', '$2y$10$rHT2NCiJY3ly7ORLdqWbceGrDZ3YsR6gHSb5KAZAtc4QNbs6rFAaC', 0, 0, 'en_US', 30, 1, 'default', 0, 0, 50);
-INSERT INTO users_groups (id, usrgrpid, userid) VALUES (5, 8, 3);
-INSERT INTO users (userid, username, passwd, autologin, autologout, lang, refresh, roleid, theme, attempt_failed, attempt_clock, rows_per_page) VALUES (6, 'user-for-blocking', '$2y$10$XuoeDz5QsPSjhZm9Ht.J8ujgX5en.X5QNSzLa3aYn04l9u6bu1p2u', 0, 0, 'en_US', 30, 1, 'default', 0, 0, 50);
-INSERT INTO users_groups (id, usrgrpid, userid) VALUES (8, 8, 6);
-INSERT INTO users (userid, username, passwd, autologin, autologout, lang, refresh, roleid, theme, attempt_failed, attempt_clock, rows_per_page) VALUES (7, 'disabled-user', '$2y$10$7BRRzklg43VciDKXPsLq7uUqFehlgdTGzr/WfQXDFtACVYWFiRjjO', 0, 0, 'en_US', 30, 1, 'default', 0, 0, 50);
-INSERT INTO users_groups (id, usrgrpid, userid) VALUES (9, 9, 7);
-INSERT INTO users (userid, username, passwd, autologin, autologout, lang, refresh, roleid, theme, attempt_failed, attempt_clock, rows_per_page) VALUES (8, 'no-access-to-the-frontend', '$2y$10$cExfysPEJsHzIoCkoUVH..XM0OSIwIQPE1sob2UgXDcH1Iyw8Wtny', 0, 0, 'en_US', 30, 1, 'default', 0, 0, 50);
-INSERT INTO users_groups (id, usrgrpid, userid) VALUES (10, 12, 8);
-
-- testFormFilterProblems, testFormFilterHosts
INSERT INTO users (userid, username, passwd, autologin, autologout, lang, refresh, roleid, theme, attempt_failed, attempt_clock, rows_per_page) VALUES (92, 'filter-create', '$2y$10$nA7hh4cZ5oHM.GgXPqzZ/e/vaD1LYcOi.3ZfulCjZV/9H4PFtIKnK', 0, 0, 'default', 30, 3, 'default', 0, 0, 50);
INSERT INTO users_groups (id, usrgrpid, userid) VALUES (106, 7, 92);
@@ -1307,128 +1296,6 @@ INSERT INTO hosts_templates (hosttemplateid, hostid, templateid) VALUES (50003,
INSERT INTO hostmacro (hostmacroid, hostid, macro, value, description) VALUES (99009, 90012, '{$PROTOYPE_MACRO_1}', 'Prototype macro value 1', 'Prototype macro description 1');
INSERT INTO hostmacro (hostmacroid, hostid, macro, value, description) VALUES (99010, 90012, '{$PROTOYPE_MACRO_2}', 'Prototype macro value 2', 'Prototype macro description 2');
--- adding test data to the 'alerts' table for testing Reports-> Notifications
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (8, 12, 1, 1, 1483275171, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.01.01 12:52:51', 1, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (9, 12, 1, 2, 1486039971, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.02.02 12:52:51', 1, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (10, 12, 1, 2, 1487030400, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.02.14 00:00:00', 1, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (11, 12, 1, 3, 1488545571, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.03.03 12:52:51', 1, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (12, 12, 1, 3, 1488382034, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.03.01 15:27:14', 1, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (13, 12, 1, 3, 1490701552, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.03.28 11:45:52', 1, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (14, 12, 1, 4, 1491310371, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.04 12:52:51', 2, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (15, 12, 1, 4, 1493096321, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.25 04:58:41', 2, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (16, 12, 1, 4, 1492456511, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.17 19:15:11', 2, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (17, 12, 1, 4, 1493585245, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.30 23:47:25', 2, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (18, 12, 1, 5, 1493988771, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.05 12:52:51', 0, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (19, 12, 1, 5, 1493693050, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.02 02:44:10', 0, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (20, 12, 1, 5, 1494674768, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.13 11:26:08', 0, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (21, 12, 1, 5, 1495924312, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.27 22:31:52', 0, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (22, 12, 1, 5, 1496256062, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.31 21:41:02', 0, 0, '', 1, 0, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (23, 12, 1, 6, 1496753571, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.06 12:52:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (24, 12, 1, 6, 1496524375, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.03 21:12:55', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (25, 12, 1, 6, 1497731966, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.17 20:39:26', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (26, 12, 1, 6, 1498160557, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.22 19:42:37', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (27, 12, 1, 6, 1498501846, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.26 18:30:46', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (28, 12, 1, 6, 1498759123, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.29 17:58:43', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (29, 12, 1, 7, 1499431971, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.07 12:52:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (30, 12, 1, 7, 1498870861, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.01 01:01:01', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (31, 12, 1, 7, 1498960922, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.02 02:02:02', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (32, 12, 1, 7, 1499050983, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.03 03:03:03', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (33, 12, 1, 7, 1499141044, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.04 04:04:04', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (34, 12, 1, 7, 1499231105, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.05 05:05:05', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (35, 12, 1, 7, 1499321166, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.06 06:06:06', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (36, 12, 1, 8, 1502196771, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.08 12:52:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (37, 12, 1, 8, 1502269749, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.09 09:09:09', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (38, 12, 1, 8, 1502359810, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.10 10:10:10', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (39, 12, 1, 8, 1502449871, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.11 11:11:11', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (40, 12, 1, 8, 1502539932, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.12 12:12:12', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (41, 12, 1, 8, 1502629993, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.13 13:13:13', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (42, 12, 1, 8, 1502720054, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.14 14:14:14', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (43, 12, 1, 8, 1502810115, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.15 15:15:15', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (44, 12, 1, 1, 1504961571, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.09 12:52:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (45, 12, 1, 1, 1505578576, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.16 16:16:16', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (46, 12, 1, 1, 1505668637, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.17 17:17:17', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (47, 12, 1, 1, 1505758698, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.18 18:18:18', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (48, 12, 1, 1, 1505848759, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.19 19:19:19', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (49, 12, 1, 1, 1505938820, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.20 20:20:20', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (50, 12, 1, 1, 1506028881, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.21 21:21:21', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (51, 12, 1, 1, 1506118942, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.22 22:22:22', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (52, 12, 1, 1, 1506209003, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.23 23:23:23', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (53, 12, 1, 2, 1507639971, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.10 12:52:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (54, 12, 1, 2, 1508804664, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.24 00:24:24', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (55, 12, 1, 2, 1508894725, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.25 01:25:25', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (56, 12, 1, 2, 1508984786, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.26 02:26:26', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (57, 12, 1, 2, 1509074847, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.27 03:27:27', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (58, 12, 1, 2, 1509164908, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.28 04:28:28', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (59, 12, 1, 2, 1509254969, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.29 05:29:29', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (60, 12, 1, 2, 1509345030, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.30 06:30:30', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (61, 12, 1, 2, 1509435091, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.31 07:31:31', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (62, 12, 1, 2, 1506846752, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.01 08:32:32', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (63, 12, 1, 3, 1510404771, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.11 12:52:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (64, 12, 1, 3, 1509615213, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.02 09:33:33', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (65, 12, 1, 3, 1509705274, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.03 10:34:34', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (66, 12, 1, 3, 1509795335, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.04 11:35:35', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (67, 12, 1, 3, 1509885396, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.05 12:36:36', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (68, 12, 1, 3, 1509975457, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.06 13:37:37', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (69, 12, 1, 3, 1510065518, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.07 14:38:38', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (70, 12, 1, 3, 1510155579, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.08 15:39:39', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (71, 12, 1, 3, 1510245640, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.09 16:40:40', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (72, 12, 1, 3, 1510335701, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.10 17:41:41', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (73, 12, 1, 3, 1510425762, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.11 18:42:42', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (74, 12, 1, 4, 1513083171, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.12 12:52:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (75, 12, 1, 4, 1513107823, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.12 19:43:43', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (76, 12, 1, 4, 1513197884, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.13 20:44:44', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (77, 12, 1, 4, 1513287945, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.14 21:45:45', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (78, 12, 1, 4, 1513378006, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.15 22:46:46', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (79, 12, 1, 4, 1513468067, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.16 23:47:47', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (80, 12, 1, 4, 1513471728, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.17 00:48:48', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (81, 12, 1, 4, 1513561789, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.18 01:49:49', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (82, 12, 1, 4, 1513651850, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.19 02:50:50', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (83, 12, 1, 4, 1513741911, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.20 03:51:51', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (84, 12, 1, 4, 1513831972, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.21 04:52:52', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (85, 12, 1, 4, 1513922033, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.22 05:53:53', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (86, 12, 1, 5, 1453524894, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.23 06:54:54', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (87, 12, 1, 5, 1453614955, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.24 07:55:55', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (88, 12, 1, 5, 1453705016, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.25 08:56:56', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (89, 12, 1, 5, 1453795077, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.26 09:57:57', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (90, 12, 1, 5, 1453885138, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.27 10:58:58', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (91, 12, 1, 5, 1453975199, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.28 11:59:59', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (92, 12, 1, 5, 1454061600, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.29 12:00:00', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (93, 12, 1, 5, 1454151661, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.30 13:01:01', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (94, 12, 1, 5, 1454241722, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.31 14:02:02', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (95, 12, 1, 5, 1451653383, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.01 15:03:03', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (96, 12, 1, 5, 1451743444, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.02 16:04:04', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (97, 12, 1, 5, 1451833505, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.03 17:05:05', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (98, 12, 1, 5, 1451923566, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.04 18:06:06', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (99, 12, 1, 6, 1467734827, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.05 19:07:07', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (100, 12, 1, 6, 1467824888, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.06 20:08:08', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (101, 12, 1, 6, 1467914949, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.07 21:09:09', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (102, 12, 1, 6, 1468005010, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.08 22:10:10', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (103, 12, 1, 6, 1468095071, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.09 23:11:11', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (104, 12, 1, 6, 1468098732, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.10 00:12:12', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (105, 12, 1, 6, 1468188793, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.11 01:13:13', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (106, 12, 1, 6, 1468278854, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.12 02:14:14', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (107, 12, 1, 6, 1468368915, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.13 03:15:15', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (108, 12, 1, 6, 1468458976, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.14 04:16:16', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (109, 12, 1, 6, 1468549037, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.15 05:17:17', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (110, 12, 1, 6, 1468639098, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.16 06:18:18', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (111, 12, 1, 6, 1468729159, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.17 07:19:19', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (112, 12, 1, 6, 1468819220, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.18 08:20:20', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (113, 12, 1, 7, 1479540081, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.19 09:21:21', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (114, 12, 1, 7, 1479630142, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.20 10:22:22', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (115, 12, 1, 7, 1479720203, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.21 11:23:23', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (116, 12, 1, 7, 1479810264, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.22 12:24:24', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (117, 12, 1, 7, 1479900325, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.23 13:25:25', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (118, 12, 1, 7, 1479990386, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.24 14:26:26', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (119, 12, 1, 7, 1480080447, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.25 15:27:27', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (120, 12, 1, 7, 1480170508, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.26 16:28:28', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (121, 12, 1, 7, 1480260569, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.27 17:29:29', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (122, 12, 1, 7, 1480350630, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.28 18:30:30', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (123, 12, 1, 7, 1480440691, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.29 19:31:31', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (124, 12, 1, 7, 1480530752, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.30 20:32:32', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (125, 12, 1, 7, 1478201613, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.03 21:33:33', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (126, 12, 1, 7, 1478032474, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.01 22:34:34', 1, 0, '', 1, 1, '');
-INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES (127, 12, 1, 7, 1478122535, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.02 23:35:35', 1, 0, '', 1, 1, '');
-
-- testInheritanceHostPrototype
INSERT INTO hstgrp (groupid, name, internal) VALUES (50019, 'Inheritance test', 0);
INSERT INTO hosts (hostid, host, name, flags, templateid, description) VALUES (99000, 'testInheritanceHostPrototype {#TEST}', 'testInheritanceHostPrototype {#TEST}', 2, NULL, '');
@@ -1847,7 +1714,6 @@ INSERT INTO trigger_discovery (triggerid, parent_triggerid) VALUES (100069, 1000
INSERT INTO media_type (mediatypeid, type, name, exec_path, status, script, description) VALUES (100, 1, 'Test script', 'Selenium test script', 1, '', '');
-- testFormUser
-INSERT INTO usrgrp (usrgrpid, name, gui_access, users_status,debug_mode) VALUES (16,'LDAP user group',2,0,0);
INSERT INTO sysmaps (sysmapid, name, width, height, backgroundid, label_type, label_location, highlight, expandproblem, markelements, show_unack, userid, private) VALUES (10, 'Public map with image', 800, 600, NULL, 0, 0, 1, 1, 1, 2, 1, 0);
INSERT INTO sysmaps_elements (selementid, sysmapid, elementid, elementtype, iconid_off, iconid_on, label, label_location, x, y, iconid_disabled, iconid_maintenance) VALUES (10,10,0,4,7,NULL,'Test phone icon',0,151,101,NULL,NULL);
INSERT INTO users (userid, username, passwd, autologin, autologout, lang, refresh, roleid, theme, attempt_failed, attempt_clock, rows_per_page) VALUES (91, 'http-auth-admin', '$2y$10$HuvU0X0vGitK8YhwyxILbOVU6oxYNF.BqsOhaieVBvDiGlxgxriay', 0, 0, 'en_US', 30, 2, 'default', 0, 0, 50);
@@ -2191,7 +2057,6 @@ INSERT INTO widget_field (widget_fieldid, widgetid, type, name, value_int, value
-- testFormUserMedia
INSERT INTO media (mediaid, userid, mediatypeid, sendto, active, severity, period) VALUES (4,1,10,'test@jabber.com',0,16,'1-7,00:00-24:00');
INSERT INTO media (mediaid, userid, mediatypeid, sendto, active, severity, period) VALUES (5,1,12,'test_account',0,63,'6-7,09:00-18:00');
-INSERT INTO media (mediaid, userid, mediatypeid, sendto, active, severity, period) VALUES (6,3,1,'zabbix@zabbix.com',0,60,'1-5,09:00-18:00');
-- Dashboard for Graph Prototype widget
INSERT INTO dashboard (dashboardid, name, userid, private) VALUES (1400, 'Dashboard for Graph Prototype widget', 1, 1);
diff --git a/ui/tests/selenium/data/sources/LoginUsers.php b/ui/tests/selenium/data/sources/LoginUsers.php
new file mode 100644
index 00000000000..eb973368e53
--- /dev/null
+++ b/ui/tests/selenium/data/sources/LoginUsers.php
@@ -0,0 +1,260 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+class LoginUsers {
+
+ /**
+ * Create data for autotests which use new created users.
+ *
+ * @return array
+ */
+ public static function load() {
+ CDataHelper::call('usergroup.create', [
+ [
+ 'name' => 'LDAP user group',
+ 'gui_access' => 2
+ ]
+ ]);
+ $usergrpids = CDataHelper::getIds('name');
+
+ CDataHelper::call('user.create', [
+ [
+ 'username' => 'LDAP user',
+ 'passwd' => 'zabbix12345',
+ 'autologin' => 0,
+ 'autologout' => 0,
+ 'lang' => 'default',
+ 'refresh' => '30',
+ 'roleid' => 3,
+ 'theme' => 'default',
+ 'rows_per_page' => 100,
+ 'usrgrps' => [
+ [
+ 'usrgrpid' => $usergrpids['LDAP user group']
+ ]
+ ]
+ ],
+ [
+ 'username' => 'disabled-user',
+ 'passwd' => 'zabbix12345',
+ 'autologin' => 0,
+ 'autologout' => 0,
+ 'lang' => 'en_US',
+ 'refresh' => '30',
+ 'theme' => 'default',
+ 'rows_per_page' => 50,
+ 'roleid' => 1,
+ 'usrgrps' => [
+ [
+ 'usrgrpid' => 9
+ ]
+ ]
+ ],
+ [
+ 'username' => 'test-user',
+ 'passwd' => 'zabbix12345',
+ 'autologin' => 0,
+ 'autologout' => 0,
+ 'lang' => 'en_US',
+ 'refresh' => '30',
+ 'theme' => 'default',
+ 'rows_per_page' => 50,
+ 'roleid' => 1,
+ 'usrgrps' => [
+ [
+ 'usrgrpid' => 8
+ ]
+ ],
+ 'medias' => [
+ [
+ 'mediatypeid' => '1',
+ 'sendto' => [
+ 'zabbix@zabbix.com'
+ ],
+ 'active' => 0,
+ 'severity' => 60,
+ 'period' => '1-5,09:00-18:00'
+ ]
+ ]
+ ],
+ [
+ 'username' => 'user-for-blocking',
+ 'passwd' => 'zabbix12345',
+ 'autologin' => 0,
+ 'autologout' => 0,
+ 'lang' => 'en_US',
+ 'refresh' => '30',
+ 'theme' => 'default',
+ 'rows_per_page' => 50,
+ 'roleid' => 1,
+ 'usrgrps' => [
+ [
+ 'usrgrpid' => 8
+ ]
+ ]
+ ],
+ [
+ 'username' => 'no-access-to-the-frontend',
+ 'passwd' => 'zabbix12345',
+ 'autologin' => 0,
+ 'autologout' => 0,
+ 'lang' => 'en_US',
+ 'refresh' => '30',
+ 'theme' => 'default',
+ 'rows_per_page' => 50,
+ 'roleid' => 1,
+ 'usrgrps' => [
+ [
+ 'usrgrpid' => 12
+ ]
+ ]
+ ]
+ ]);
+ $userids = CDataHelper::getIds('username');
+
+ // Adding test data to the 'alerts' table for testing Reports-> Notifications.
+ DBexecute("INSERT INTO alerts (alertid, actionid, eventid, userid, clock, mediatypeid, sendto, subject, message, status, retries, error, esc_step, alerttype, parameters) VALUES".
+ "(8, 12, 1, 1, 1483275171, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.01.01 12:52:51', 1, 0, '', 1, 0, ''),".
+ "(9, 12, 1, 2, 1486039971, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.02.02 12:52:51', 1, 0, '', 1, 0, ''),".
+ "(10, 12, 1, 2, 1487030400, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.02.14 00:00:00', 1, 0, '', 1, 0, ''),".
+ "(11, 12, 1, ".zbx_dbstr($userids['test-user']).", 1488545571, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.03.03 12:52:51', 1, 0, '', 1, 0, ''),".
+ "(12, 12, 1, ".zbx_dbstr($userids['test-user']).", 1488382034, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.03.01 15:27:14', 1, 0, '', 1, 0, ''),".
+ "(13, 12, 1, ".zbx_dbstr($userids['test-user']).", 1490701552, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.03.28 11:45:52', 1, 0, '', 1, 0, ''),".
+ "(14, 12, 1, 4, 1491310371, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.04 12:52:51', 2, 0, '', 1, 0, ''),".
+ "(15, 12, 1, 4, 1493096321, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.25 04:58:41', 2, 0, '', 1, 0, ''),".
+ "(16, 12, 1, 4, 1492456511, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.17 19:15:11', 2, 0, '', 1, 0, ''),".
+ "(17, 12, 1, 4, 1493585245, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.04.30 23:47:25', 2, 0, '', 1, 0, ''),".
+ "(18, 12, 1, 5, 1493988771, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.05 12:52:51', 0, 0, '', 1, 0, ''),".
+ "(19, 12, 1, 5, 1493693050, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.02 02:44:10', 0, 0, '', 1, 0, ''),".
+ "(20, 12, 1, 5, 1494674768, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.13 11:26:08', 0, 0, '', 1, 0, ''),".
+ "(21, 12, 1, 5, 1495924312, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.27 22:31:52', 0, 0, '', 1, 0, ''),".
+ "(22, 12, 1, 5, 1496256062, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.05.31 21:41:02', 0, 0, '', 1, 0, ''),".
+ "(23, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1496753571, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.06 12:52:51', 1, 0, '', 1, 1, ''),".
+ "(24, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1496524375, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.03 21:12:55', 1, 0, '', 1, 1, ''),".
+ "(25, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1497731966, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.17 20:39:26', 1, 0, '', 1, 1, ''),".
+ "(26, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1498160557, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.22 19:42:37', 1, 0, '', 1, 1, ''),".
+ "(27, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1498501846, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.26 18:30:46', 1, 0, '', 1, 1, ''),".
+ "(28, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1498759123, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.06.29 17:58:43', 1, 0, '', 1, 1, ''),".
+ "(29, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1499431971, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.07 12:52:51', 1, 0, '', 1, 1, ''),".
+ "(30, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1498870861, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.01 01:01:01', 1, 0, '', 1, 1, ''),".
+ "(31, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1498960922, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.02 02:02:02', 1, 0, '', 1, 1, ''),".
+ "(32, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1499050983, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.03 03:03:03', 1, 0, '', 1, 1, ''),".
+ "(33, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1499141044, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.04 04:04:04', 1, 0, '', 1, 1, ''),".
+ "(34, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1499231105, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.05 05:05:05', 1, 0, '', 1, 1, ''),".
+ "(35, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1499321166, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.07.06 06:06:06', 1, 0, '', 1, 1, ''),".
+ "(36, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502196771, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.08 12:52:51', 1, 0, '', 1, 1, ''),".
+ "(37, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502269749, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.09 09:09:09', 1, 0, '', 1, 1, ''),".
+ "(38, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502359810, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.10 10:10:10', 1, 0, '', 1, 1, ''),".
+ "(39, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502449871, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.11 11:11:11', 1, 0, '', 1, 1, ''),".
+ "(40, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502539932, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.12 12:12:12', 1, 0, '', 1, 1, ''),".
+ "(41, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502629993, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.13 13:13:13', 1, 0, '', 1, 1, ''),".
+ "(42, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502720054, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.14 14:14:14', 1, 0, '', 1, 1, ''),".
+ "(43, 12, 1, ".zbx_dbstr($userids['no-access-to-the-frontend']).", 1502810115, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.08.15 15:15:15', 1, 0, '', 1, 1, ''),".
+ "(44, 12, 1, 1, 1504961571, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.09 12:52:51', 1, 0, '', 1, 1, ''),".
+ "(45, 12, 1, 1, 1505578576, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.16 16:16:16', 1, 0, '', 1, 1, ''),".
+ "(46, 12, 1, 1, 1505668637, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.17 17:17:17', 1, 0, '', 1, 1, ''),".
+ "(47, 12, 1, 1, 1505758698, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.18 18:18:18', 1, 0, '', 1, 1, ''),".
+ "(48, 12, 1, 1, 1505848759, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.19 19:19:19', 1, 0, '', 1, 1, ''),".
+ "(49, 12, 1, 1, 1505938820, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.20 20:20:20', 1, 0, '', 1, 1, ''),".
+ "(50, 12, 1, 1, 1506028881, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.21 21:21:21', 1, 0, '', 1, 1, ''),".
+ "(51, 12, 1, 1, 1506118942, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.22 22:22:22', 1, 0, '', 1, 1, ''),".
+ "(52, 12, 1, 1, 1506209003, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.09.23 23:23:23', 1, 0, '', 1, 1, ''),".
+ "(53, 12, 1, 2, 1507639971, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.10 12:52:51', 1, 0, '', 1, 1, ''),".
+ "(54, 12, 1, 2, 1508804664, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.24 00:24:24', 1, 0, '', 1, 1, ''),".
+ "(55, 12, 1, 2, 1508894725, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.25 01:25:25', 1, 0, '', 1, 1, ''),".
+ "(56, 12, 1, 2, 1508984786, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.26 02:26:26', 1, 0, '', 1, 1, ''),".
+ "(57, 12, 1, 2, 1509074847, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.27 03:27:27', 1, 0, '', 1, 1, ''),".
+ "(58, 12, 1, 2, 1509164908, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.28 04:28:28', 1, 0, '', 1, 1, ''),".
+ "(59, 12, 1, 2, 1509254969, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.29 05:29:29', 1, 0, '', 1, 1, ''),".
+ "(60, 12, 1, 2, 1509345030, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.30 06:30:30', 1, 0, '', 1, 1, ''),".
+ "(61, 12, 1, 2, 1509435091, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.31 07:31:31', 1, 0, '', 1, 1, ''),".
+ "(62, 12, 1, 2, 1506846752, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.10.01 08:32:32', 1, 0, '', 1, 1, ''),".
+ "(63, 12, 1, ".zbx_dbstr($userids['test-user']).", 1510404771, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.11 12:52:51', 1, 0, '', 1, 1, ''),".
+ "(64, 12, 1, ".zbx_dbstr($userids['test-user']).", 1509615213, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.02 09:33:33', 1, 0, '', 1, 1, ''),".
+ "(65, 12, 1, ".zbx_dbstr($userids['test-user']).", 1509705274, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.03 10:34:34', 1, 0, '', 1, 1, ''),".
+ "(66, 12, 1, ".zbx_dbstr($userids['test-user']).", 1509795335, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.04 11:35:35', 1, 0, '', 1, 1, ''),".
+ "(67, 12, 1, ".zbx_dbstr($userids['test-user']).", 1509885396, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.05 12:36:36', 1, 0, '', 1, 1, ''),".
+ "(68, 12, 1, ".zbx_dbstr($userids['test-user']).", 1509975457, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.06 13:37:37', 1, 0, '', 1, 1, ''),".
+ "(69, 12, 1, ".zbx_dbstr($userids['test-user']).", 1510065518, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.07 14:38:38', 1, 0, '', 1, 1, ''),".
+ "(70, 12, 1, ".zbx_dbstr($userids['test-user']).", 1510155579, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.08 15:39:39', 1, 0, '', 1, 1, ''),".
+ "(71, 12, 1, ".zbx_dbstr($userids['test-user']).", 1510245640, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.09 16:40:40', 1, 0, '', 1, 1, ''),".
+ "(72, 12, 1, ".zbx_dbstr($userids['test-user']).", 1510335701, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.10 17:41:41', 1, 0, '', 1, 1, ''),".
+ "(73, 12, 1, ".zbx_dbstr($userids['test-user']).", 1510425762, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.11.11 18:42:42', 1, 0, '', 1, 1, ''),".
+ "(74, 12, 1, 4, 1513083171, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.12 12:52:51', 1, 0, '', 1, 1, ''),".
+ "(75, 12, 1, 4, 1513107823, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.12 19:43:43', 1, 0, '', 1, 1, ''),".
+ "(76, 12, 1, 4, 1513197884, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.13 20:44:44', 1, 0, '', 1, 1, ''),".
+ "(77, 12, 1, 4, 1513287945, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.14 21:45:45', 1, 0, '', 1, 1, ''),".
+ "(78, 12, 1, 4, 1513378006, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.15 22:46:46', 1, 0, '', 1, 1, ''),".
+ "(79, 12, 1, 4, 1513468067, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.16 23:47:47', 1, 0, '', 1, 1, ''),".
+ "(80, 12, 1, 4, 1513471728, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.17 00:48:48', 1, 0, '', 1, 1, ''),".
+ "(81, 12, 1, 4, 1513561789, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.18 01:49:49', 1, 0, '', 1, 1, ''),".
+ "(82, 12, 1, 4, 1513651850, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.19 02:50:50', 1, 0, '', 1, 1, ''),".
+ "(83, 12, 1, 4, 1513741911, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.20 03:51:51', 1, 0, '', 1, 1, ''),".
+ "(84, 12, 1, 4, 1513831972, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.21 04:52:52', 1, 0, '', 1, 1, ''),".
+ "(85, 12, 1, 4, 1513922033, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2017.12.22 05:53:53', 1, 0, '', 1, 1, ''),".
+ "(86, 12, 1, 5, 1453524894, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.23 06:54:54', 1, 0, '', 1, 1, ''),".
+ "(87, 12, 1, 5, 1453614955, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.24 07:55:55', 1, 0, '', 1, 1, ''),".
+ "(88, 12, 1, 5, 1453705016, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.25 08:56:56', 1, 0, '', 1, 1, ''),".
+ "(89, 12, 1, 5, 1453795077, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.26 09:57:57', 1, 0, '', 1, 1, ''),".
+ "(90, 12, 1, 5, 1453885138, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.27 10:58:58', 1, 0, '', 1, 1, ''),".
+ "(91, 12, 1, 5, 1453975199, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.28 11:59:59', 1, 0, '', 1, 1, ''),".
+ "(92, 12, 1, 5, 1454061600, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.29 12:00:00', 1, 0, '', 1, 1, ''),".
+ "(93, 12, 1, 5, 1454151661, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.30 13:01:01', 1, 0, '', 1, 1, ''),".
+ "(94, 12, 1, 5, 1454241722, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.31 14:02:02', 1, 0, '', 1, 1, ''),".
+ "(95, 12, 1, 5, 1451653383, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.01 15:03:03', 1, 0, '', 1, 1, ''),".
+ "(96, 12, 1, 5, 1451743444, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.02 16:04:04', 1, 0, '', 1, 1, ''),".
+ "(97, 12, 1, 5, 1451833505, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.03 17:05:05', 1, 0, '', 1, 1, ''),".
+ "(98, 12, 1, 5, 1451923566, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.01.04 18:06:06', 1, 0, '', 1, 1, ''),".
+ "(99, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1467734827, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.05 19:07:07', 1, 0, '', 1, 1, ''),".
+ "(100, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1467824888, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.06 20:08:08', 1, 0, '', 1, 1, ''),".
+ "(101, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1467914949, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.07 21:09:09', 1, 0, '', 1, 1, ''),".
+ "(102, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468005010, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.08 22:10:10', 1, 0, '', 1, 1, ''),".
+ "(103, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468095071, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.09 23:11:11', 1, 0, '', 1, 1, ''),".
+ "(104, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468098732, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.10 00:12:12', 1, 0, '', 1, 1, ''),".
+ "(105, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468188793, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.11 01:13:13', 1, 0, '', 1, 1, ''),".
+ "(106, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468278854, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.12 02:14:14', 1, 0, '', 1, 1, ''),".
+ "(107, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468368915, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.13 03:15:15', 1, 0, '', 1, 1, ''),".
+ "(108, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468458976, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.14 04:16:16', 1, 0, '', 1, 1, ''),".
+ "(109, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468549037, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.15 05:17:17', 1, 0, '', 1, 1, ''),".
+ "(110, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468639098, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.16 06:18:18', 1, 0, '', 1, 1, ''),".
+ "(111, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468729159, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.17 07:19:19', 1, 0, '', 1, 1, ''),".
+ "(112, 12, 1, ".zbx_dbstr($userids['user-for-blocking']).", 1468819220, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.07.18 08:20:20', 1, 0, '', 1, 1, ''),".
+ "(113, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1479540081, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.19 09:21:21', 1, 0, '', 1, 1, ''),".
+ "(114, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1479630142, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.20 10:22:22', 1, 0, '', 1, 1, ''),".
+ "(115, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1479720203, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.21 11:23:23', 1, 0, '', 1, 1, ''),".
+ "(116, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1479810264, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.22 12:24:24', 1, 0, '', 1, 1, ''),".
+ "(117, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1479900325, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.23 13:25:25', 1, 0, '', 1, 1, ''),".
+ "(118, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1479990386, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.24 14:26:26', 1, 0, '', 1, 1, ''),".
+ "(119, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1480080447, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.25 15:27:27', 1, 0, '', 1, 1, ''),".
+ "(120, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1480170508, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.26 16:28:28', 1, 0, '', 1, 1, ''),".
+ "(121, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1480260569, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.27 17:29:29', 1, 0, '', 1, 1, ''),".
+ "(122, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1480350630, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.28 18:30:30', 1, 0, '', 1, 1, ''),".
+ "(123, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1480440691, 1, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.29 19:31:31', 1, 0, '', 1, 1, ''),".
+ "(124, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1480530752, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.30 20:32:32', 1, 0, '', 1, 1, ''),".
+ "(125, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1478201613, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.03 21:33:33', 1, 0, '', 1, 1, ''),".
+ "(126, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1478032474, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.01 22:34:34', 1, 0, '', 1, 1, ''),".
+ "(127, 12, 1, ".zbx_dbstr($userids['disabled-user']).", 1478122535, 3, 'notificatio.report@zabbix.com', 'PROBLEM: problem', 'Event at 2016.11.02 23:35:35', 1, 0, '', 1, 1, '')"
+ );
+
+ return [
+ 'userids' => $userids, 'usrgrpids' => $usergrpids
+ ];
+ }
+}
diff --git a/ui/tests/selenium/filterTabs/testFormFilterHosts.php b/ui/tests/selenium/filterTabs/testFormFilterHosts.php
index 678ee43c35d..8411eba45ee 100644
--- a/ui/tests/selenium/filterTabs/testFormFilterHosts.php
+++ b/ui/tests/selenium/filterTabs/testFormFilterHosts.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../common/testFormFilter.php';
/**
diff --git a/ui/tests/selenium/filterTabs/testFormFilterProblems.php b/ui/tests/selenium/filterTabs/testFormFilterProblems.php
index 074844c3019..f324f80b867 100644
--- a/ui/tests/selenium/filterTabs/testFormFilterProblems.php
+++ b/ui/tests/selenium/filterTabs/testFormFilterProblems.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../common/testFormFilter.php';
/**
@@ -200,7 +201,7 @@ class testFormFilterProblems extends testFormFilter {
$filter_container = $this->query('xpath://ul[@class="ui-sortable-container ui-sortable"]')->asFilterTab()->one();
$formid = $this->query('xpath://a[text()="'.$data['filter']['Name'].'"]/parent::li')->waitUntilVisible()->one()->getAttribute('data-target');
$form = $this->query('id:'.$formid)->asForm()->one();
- $table = $this->query('class:list-table')->asTable()->waitUntilReady()->one();
+ $table = $this->query('class:list-table')->asTable()->one();
// Checking result amount before changing time period.
$this->assertEquals($table->getRows()->count(), 2);
@@ -211,7 +212,9 @@ class testFormFilterProblems extends testFormFilter {
$dialog = COverlayDialogElement::find()->asForm()->all()->last()->waitUntilReady();
$dialog->fill(['Set custom time period' => true, 'From' => '2020-10-23 18:00']);
$dialog->submit();
+ COverlayDialogElement::ensureNotPresent();
$this->page->waitUntilReady();
+ $table->waitUntilReloaded();
}
else {
// Changing time period from timeselector tab.
@@ -222,6 +225,7 @@ class testFormFilterProblems extends testFormFilter {
$filter_container->selectTab($data['filter']['Name']);
$this->query('button:Update')->one()->click();
$this->page->waitUntilReady();
+ $table->waitUntilReloaded();
}
// Checking that Show field tabs are disabled or enabled.
diff --git a/ui/tests/selenium/items/testFormItem.php b/ui/tests/selenium/items/testFormItem.php
index 5b191583199..a64106c0e83 100644
--- a/ui/tests/selenium/items/testFormItem.php
+++ b/ui/tests/selenium/items/testFormItem.php
@@ -701,7 +701,7 @@ class testFormItem extends CLegacyWebTest {
$this->zbxTestTextPresent('Value mapping');
$valuemap_field = $this->query('name:itemForm')->asForm()->one()->getField('Value mapping');
if (!isset($templateid)) {
- $this->assertEquals([], $valuemap_field->getValue());
+ $this->assertEquals('', $valuemap_field->getValue());
$db_valuemap = [];
$valuemap_result = DBselect('SELECT name FROM valuemap WHERE hostid='.$host_info['hostid']);
diff --git a/ui/tests/selenium/items/testFormItemHttpAgent.php b/ui/tests/selenium/items/testFormItemHttpAgent.php
index af37ee570c5..a00b80eaa0a 100644
--- a/ui/tests/selenium/items/testFormItemHttpAgent.php
+++ b/ui/tests/selenium/items/testFormItemHttpAgent.php
@@ -246,6 +246,17 @@ class testFormItemHttpAgent extends CLegacyWebTest {
'parsed_url' => $url
]
],
+ // Call to Prometheus API.
+ [
+ [
+ 'step_name' => 'Step call to Prometheus API',
+ 'url' => 'http://localhost:9090/api/v1/query?query=irate(node_network_transmit_bytes_total\{device!="lo",instance="192.168.150.101"}[1m])',
+ 'parsed_query' => [
+ ['name' => 'query', 'value' => 'irate(node_network_transmit_bytes_total\{device!="lo",instance="192.168.150.101"}[1m])']
+ ],
+ 'parsed_url' => 'http://localhost:9090/api/v1/query'
+ ]
+ ],
// URL parse failed.
[
[
diff --git a/ui/tests/selenium/items/testFormItemPrototype.php b/ui/tests/selenium/items/testFormItemPrototype.php
index 3a9d5f82ee2..159e285b0b2 100644
--- a/ui/tests/selenium/items/testFormItemPrototype.php
+++ b/ui/tests/selenium/items/testFormItemPrototype.php
@@ -903,7 +903,7 @@ class testFormItemPrototype extends CLegacyWebTest {
$this->zbxTestTextPresent('Value mapping');
$valuemap_field = $this->query('name:itemForm')->asForm()->one()->getField('Value mapping');
if (!isset($templateid)) {
- $this->assertEquals([], $valuemap_field->getValue());
+ $this->assertEquals('', $valuemap_field->getValue());
$db_valuemap = [];
$valuemap_result = DBselect('SELECT name FROM valuemap WHERE hostid='.$host_info['hostid']);
diff --git a/ui/tests/selenium/items/testFormulaCalculatedItemPrototype.php b/ui/tests/selenium/items/testFormulaCalculatedItemPrototype.php
index c887d468b4a..63ff4695e31 100644
--- a/ui/tests/selenium/items/testFormulaCalculatedItemPrototype.php
+++ b/ui/tests/selenium/items/testFormulaCalculatedItemPrototype.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../common/testCalculatedFormula.php';
/**
diff --git a/ui/tests/selenium/problems/testFormUpdateProblem.php b/ui/tests/selenium/problems/testFormUpdateProblem.php
new file mode 100644
index 00000000000..82b0412769d
--- /dev/null
+++ b/ui/tests/selenium/problems/testFormUpdateProblem.php
@@ -0,0 +1,619 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+require_once dirname(__FILE__).'/../../include/CWebTest.php';
+require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
+
+/**
+ * @backup hosts
+ *
+ * @onBefore prepareProblemsData
+ */
+class testFormUpdateProblem extends CWebTest {
+
+ /**
+ * Id of the host with problems.
+ *
+ * @var integer
+ */
+ protected static $hostid;
+
+ /**
+ * Ids of the triggers for problems.
+ *
+ * @var array
+ */
+ protected static $triggerids;
+
+ /**
+ * Time when events were created.
+ *
+ * @var string
+ */
+ protected static $time;
+
+ /**
+ * Attach MessageBehavior to the test.
+ *
+ * @return array
+ */
+ public function getBehaviors() {
+ return [CMessageBehavior::class];
+ }
+
+ /**
+ * Get all events related tables hash values.
+ */
+ public static function getHash() {
+ return CDBHelper::getHash('SELECT * FROM events').
+ CDBHelper::getHash('SELECT * FROM problem').
+ CDBHelper::getHash('SELECT * FROM triggers').
+ CDBHelper::getHash('SELECT * FROM acknowledges').
+ CDBHelper::getHash('SELECT * FROM event_suppress');
+ }
+
+ public function prepareProblemsData() {
+ // Create hostgroup for hosts with items triggers.
+ $hostgroups = CDataHelper::call('hostgroup.create', [['name' => 'Group for Problems Update']]);
+ $this->assertArrayHasKey('groupids', $hostgroups);
+ $groupid = $hostgroups['groupids'][0];
+
+ // Create host for items and triggers.
+ $hosts = CDataHelper::call('host.create', [
+ 'host' => 'Host for Problems Update',
+ 'groups' => [['groupid' => $groupid]]
+ ]);
+ $this->assertArrayHasKey('hostids', $hosts);
+ self::$hostid = $hosts['hostids'][0];
+
+ // Create items on previously created host.
+ $item_names = ['float', 'char', 'log', 'unsigned', 'text'];
+
+ $items_data = [];
+ foreach ($item_names as $i => $item) {
+ $items_data[] = [
+ 'hostid' => self::$hostid,
+ 'name' => $item,
+ 'key_' => $item,
+ 'type' => 2,
+ 'value_type' => $i
+ ];
+ }
+
+ $items = CDataHelper::call('item.create', $items_data);
+ $this->assertArrayHasKey('itemids', $items);
+
+ // Create triggers based on items.
+ $triggers = CDataHelper::call('trigger.create', [
+ [
+ 'description' => 'Trigger for float',
+ 'expression' => 'last(/Host for Problems Update/float)=0',
+ 'priority' => 0
+ ],
+ [
+ 'description' => 'Trigger for char',
+ 'expression' => 'last(/Host for Problems Update/char)=0',
+ 'priority' => 1,
+ 'manual_close' => 1
+ ],
+ [
+ 'description' => 'Trigger for log',
+ 'expression' => 'last(/Host for Problems Update/log)=0',
+ 'priority' => 2
+ ],
+ [
+ 'description' => 'Trigger for unsigned',
+ 'expression' => 'last(/Host for Problems Update/unsigned)=0',
+ 'priority' => 3
+ ],
+ [
+ 'description' => 'Trigger for text',
+ 'expression' => 'last(/Host for Problems Update/text)=0',
+ 'priority' => 4
+ ]
+ ]);
+ $this->assertArrayHasKey('triggerids', $triggers);
+ self::$triggerids = CDataHelper::getIds('description');
+
+ // Create events.
+ self::$time = time();
+ $i=0;
+ foreach (self::$triggerids as $name => $id) {
+ DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES ('.(100550 + $i).', 0, 0, '.
+ zbx_dbstr($id).', '.self::$time.', 0, 1, '.zbx_dbstr($name).', '.zbx_dbstr($i).')'
+ );
+ $i++;
+ }
+
+ // Create problems.
+ $j=0;
+ foreach (self::$triggerids as $name => $id) {
+ DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES ('.(100550 + $j).', 0, 0, '.
+ zbx_dbstr($id).', '.self::$time.', 0, '.zbx_dbstr($name).', '.zbx_dbstr($j).')'
+ );
+ $j++;
+ }
+
+ // Change triggers' state to Problem. Manual close is true for the problem: Trigger for char'.
+ DBexecute('UPDATE triggers SET value = 1 WHERE description IN ('.zbx_dbstr('Trigger for float').', '.
+ zbx_dbstr('Trigger for log').', '.zbx_dbstr('Trigger for unsigned').', '.zbx_dbstr('Trigger for text').')'
+ );
+ DBexecute('UPDATE triggers SET value = 1, manual_close = 1 WHERE description = '.zbx_dbstr('Trigger for char'));
+
+ // Suppress the problem: 'Trigger for text'.
+ DBexecute('INSERT INTO event_suppress (event_suppressid, eventid, maintenanceid, suppress_until) VALUES (10050, 100554, NULL, 0)');
+
+ // Acknowledge the problem: 'Trigger for unsigned'.
+ CDataHelper::call('event.acknowledge', [
+ 'eventids' => 100553,
+ 'action' => 6,
+ 'message' => 'Acknowledged event'
+ ]);
+ }
+
+ public function getLayoutData() {
+ return [
+ [
+ [
+ 'problems' => ['Trigger for float'],
+ 'hintboxes' => [
+ 'Suppress' => 'Manual problem suppression. Date-time input accepts relative and absolute time format.',
+ 'Unsuppress' => 'Deactivates manual suppression.',
+ 'Acknowledge' => 'Confirms the problem is noticed (acknowledging user will be recorded). '.
+ 'Status change triggers action update operation.'
+ ],
+ 'history' => [],
+ 'Acknowledge' => true,
+ 'check_suppress' => true
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for char'],
+ 'close_enabled' => true,
+ 'history' => [],
+ 'Acknowledge' => true
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for text'],
+ 'unsuppress_enabled' => true,
+ 'history' => [],
+ 'Acknowledge' => true
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for unsigned'],
+ // If problem is Aknowledged - label is changed to Unacknowledge.
+ 'labels' => ['Problem', 'Message', 'History', 'Scope', 'Change severity', 'Unacknowledge', 'Close problem', ''],
+ 'message' => 'Acknowledged event',
+ 'Unacknowledge' => true,
+ 'history' => [' Admin (Zabbix Administrator) Acknowledged event'],
+ 'hintboxes' => [
+ 'Suppress' => 'Manual problem suppression. Date-time input accepts relative and absolute time format.',
+ 'Unsuppress' => 'Deactivates manual suppression.',
+ 'Unacknowledge' => 'Undo problem acknowledgement.'
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for log'],
+ 'history' => [],
+ 'Acknowledge' => true
+ ]
+ ],
+ // Two problems.
+ [
+ [
+ 'problems' => ['Trigger for float', 'Trigger for char'],
+ // If more than one problem selected - History label is absent.
+ 'labels' => ['Problem', 'Message', 'Scope', 'Change severity', 'Acknowledge', 'Close problem', ''],
+ 'close_enabled' => true,
+ 'Acknowledge' => true,
+ 'hintboxes' => [
+ 'Suppress' => 'Manual problem suppression. Date-time input accepts relative and absolute time format.',
+ 'Unsuppress' => 'Deactivates manual suppression.',
+ 'Acknowledge' => 'Confirms the problem is noticed (acknowledging user will be recorded). '.
+ 'Status change triggers action update operation.'
+ ]
+ ]
+ ],
+ // Five problems.
+ [
+ [
+ 'problems' => ['Trigger for float', 'Trigger for char', 'Trigger for log', 'Trigger for unsigned', 'Trigger for text'],
+ // If more than one problems selected - History label is absent.
+ 'labels' => ['Problem', 'Message', 'Scope', 'Change severity', 'Acknowledge', 'Unacknowledge', 'Close problem', ''],
+ 'hintboxes' => [
+ 'Suppress' => 'Manual problem suppression. Date-time input accepts relative and absolute time format.',
+ 'Unsuppress' => 'Deactivates manual suppression.',
+ 'Acknowledge' => 'Confirms the problem is noticed (acknowledging user will be recorded). '.
+ 'Status change triggers action update operation.',
+ 'Unacknowledge' => 'Undo problem acknowledgement.'
+ ],
+ 'close_enabled' => true,
+ 'unsuppress_enabled' => true,
+ 'Acknowledge' => true,
+ 'Unacknowledge' => true
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider getLayoutData
+ */
+ public function testFormUpdateProblem_Layout($data) {
+ // Open filtered Problems list.
+ $this->page->login()->open('zabbix.php?&action=problem.view&show_suppressed=1&hostids%5B%5D='.self::$hostid)->waitUntilReady();
+ $table = $this->query('class:list-table')->asTable()->one();
+ $table->findRows('Problem', $data['problems'])->select();
+ $this->query('button:Mass update')->waitUntilClickable()->one()->click();
+
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $this->assertEquals('Update problem', $dialog->getTitle());
+ $form = $dialog->query('id:acknowledge_form')->asForm()->one();
+
+ // Check form labels.
+ $count = count($data['problems']);
+ $default_labels = ['Problem', 'Message', 'History', 'Scope', 'Change severity', 'Acknowledge', 'Close problem', ''];
+ $this->assertEquals(CTestArrayHelper::get($data, 'labels', $default_labels), $form->getLabels()->asText());
+
+ // Check "Problem" field value.
+ $problem = $count > 1 ? $count.' problems selected.' : $data['problems'][0];
+ $this->assertTrue($form->query('xpath:.//div[@class="wordbreak" and text()='.
+ CXPathHelper::escapeQuotes($problem).']')->exists()
+ );
+
+ // Check first label in Scope field.
+ $scope_field = $form->getField('Scope');
+ $scope_label_query = $count > 1
+ ? 'xpath:.//label[text()="Only selected problems"]/sup[text()='.CXPathHelper::escapeQuotes($count.' events').']'
+ : 'xpath:.//label[text()="Only selected problem"]';
+ $this->assertTrue($scope_field->query($scope_label_query)->exists());
+
+ // Check second label in Scope field.
+ $this->assertTrue($scope_field->query("xpath:.//label[text()=".
+ "\"Selected and all other problems of related triggers\"]/sup[text()=".
+ CXPathHelper::escapeQuotes($count > 1 ? $count.' events' : '1 event')."]")->exists()
+ );
+
+ // Check History field.
+ if (array_key_exists('history', $data)) {
+ $history = ($data['history'] === []) ? $data['history'] : [date('Y-m-d H:i:s', self::$time).$data['history'][0]];
+ $history_table = $form->getField('History')->asTable();
+ $this->assertEquals(['Time', 'User', 'User action', 'Message'], $history_table->getHeadersText());
+ $this->assertEquals($history, $history_table->getRows()->asText());
+
+ if ($data['problems'] === ['Trigger for unsigned']) {
+ foreach (['Acknowledged', 'Message'] as $icon) {
+ $this->assertTrue($history_table->query("xpath:.//span[@class=".CXPathHelper::fromClass('icon-action').
+ " and @title=".CXPathHelper::escapeQuotes($icon)."]")->exists()
+ );
+ }
+ }
+ }
+
+ // Check fields' default values and attributes.
+ $fields = [
+ 'id:message' => ['value' => '', 'maxlength' => 2048, 'enabled' => true],
+ 'id:scope_0' => ['value' => true, 'enabled' => true], // Only selected problem.
+ 'id:scope_1' => ['value' => false, 'enabled' => true], // Selected and all other problems of related triggers.
+ 'id:change_severity' => ['value' => false, 'enabled' => true],
+ 'id:severity' => ['value' => 'Not classified', 'enabled' => false],
+ 'Close problem' => ['value' => false, 'enabled' => CTestArrayHelper::get($data, 'close_enabled', false)]
+ ];
+
+ foreach ($fields as $field => $attributes) {
+ $this->assertEquals($attributes['value'], $form->getField($field)->getValue());
+ $this->assertTrue($form->getField($field)->isEnabled($attributes['enabled']));
+
+ if (array_key_exists('maxlength', $attributes)) {
+ $this->assertEquals($attributes['maxlength'], $form->getField($field)->getAttribute('maxlength'));
+ }
+ }
+
+ // Check default values for 'Acknowledge' and 'Unacknowledge' fields.
+ foreach (['Acknowledge', 'Unacknowledge'] as $label) {
+ if (array_key_exists($label, $data)) {
+ $field = $form->getField($label);
+ $this->assertEquals(false, $field->getValue());
+ $this->assertTrue($field->isEnabled());
+ }
+ }
+
+ // Check other buttons in overlay.
+ $button_queries = [
+ 'xpath:.//button[@title="Close"]' => true,
+ 'button:Update' => true,
+ 'button:Cancel' => true
+ ];
+
+ foreach ($button_queries as $query => $clickable) {
+ $this->assertEquals($clickable, $dialog->query($query)->one()->isClickable());
+ }
+
+ // Check asterisk text.
+ $this->assertTrue($form->query('xpath:.//label[@class="form-label-asterisk" and '.
+ 'text()="At least one update operation or message must exist."]')->exists()
+ );
+ $dialog->close();
+ }
+
+ public function getFormData() {
+ return [
+ [
+ [
+ 'problems' => ['Trigger for log', 'Trigger for char', 'Trigger for float'],
+ 'fields' => [
+ 'id:scope_1' => true,
+ 'id:change_severity' => true,
+ 'id:severity' => 'Information'
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for log',
+ 'db_fields' => ['message' => '', 'action' => 8, 'new_severity' => 1]
+ ],
+ [
+ 'name' => 'Trigger for char',
+ 'db_fields' => false
+ ],
+ [
+ 'name' => 'Trigger for float',
+ 'db_fields' => ['message' => '', 'action' => 8, 'new_severity' => 1]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for float'],
+ 'fields' => [
+ 'id:message' => 'test message text',
+ 'id:change_severity' => true,
+ 'id:severity' => 'Warning',
+ 'Acknowledge' => true
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for float',
+ 'db_fields' => ['message' => 'test message text', 'action' => 14, 'new_severity' => 2]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for text', 'Trigger for log'],
+ 'fields' => [
+ 'id:change_severity' => true,
+ 'id:severity' => 'Not classified'
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for text',
+ 'db_fields' => ['message' => '', 'action' => 8, 'new_severity' => 0]
+ ],
+ [
+ 'name' => 'Trigger for text',
+ 'db_fields' => ['message' => '', 'action' => 8, 'new_severity' => 0]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for char'],
+ 'fields' => [
+ 'id:change_severity' => true,
+ 'id:severity' => 'Average'
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for char',
+ 'db_fields' => ['message' => '', 'action' => 8, 'new_severity' => 3]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for unsigned'],
+ 'fields' => [
+ 'id:change_severity' => true,
+ 'id:severity' => 'High'
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for unsigned',
+ 'db_fields' => ['message' => '', 'action' => 8, 'new_severity' => 4]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for log'],
+ 'fields' => [
+ 'id:change_severity' => true,
+ 'id:severity' => 'Disaster'
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for log',
+ 'db_fields' => ['message' => '', 'action' => 8, 'new_severity' => 5]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for log', 'Trigger for char', 'Trigger for float', 'Trigger for text', 'Trigger for unsigned'],
+ 'fields' => [
+ 'id:message' => 'Update all 5 problems',
+ 'id:change_severity' => true,
+ 'id:severity' => 'High'
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for log',
+ 'db_fields' => ['message' => 'Update all 5 problems', 'action' => 12, 'new_severity' => 4]
+ ],
+ [
+ 'name' => 'Trigger for char',
+ 'db_fields' => ['message' => 'Update all 5 problems', 'action' => 12, 'new_severity' => 4]
+ ],
+ [
+ 'name' => 'Trigger for float',
+ 'db_fields' => ['message' => 'Update all 5 problems', 'action' => 12, 'new_severity' => 4]
+ ],
+ [
+ 'name' => 'Trigger for text',
+ 'db_fields' => ['message' => 'Update all 5 problems', 'action' => 12, 'new_severity' => 4]
+ ],
+ [
+ 'name' => 'Trigger for unsigned',
+ 'db_fields' => ['message' => 'Update all 5 problems', 'action' => 4, 'new_severity' => 0]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for unsigned'],
+ 'fields' => [
+ 'Unacknowledge' => true
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for unsigned',
+ 'db_fields' => ['message' => '', 'action' => 16, 'new_severity' => 0]
+ ]
+ ]
+ ]
+ ],
+ [
+ [
+ 'problems' => ['Trigger for char'],
+ 'fields' => [
+ 'Close problem' => true
+ ],
+ 'db_check' => [
+ [
+ 'name' => 'Trigger for char',
+ 'db_fields' => ['message' => '', 'action' => 1, 'new_severity' => 0]
+ ]
+ ]
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider getFormData
+ */
+ public function testFormUpdateProblem_Form($data) {
+ // Open filtered Problems list.
+ $this->page->login()->open('zabbix.php?&action=problem.view&show_suppressed=1&hostids%5B%5D='.self::$hostid)->waitUntilReady();
+ $table = $this->query('class:list-table')->asTable()->one();
+
+ $count = count($data['problems']);
+ $table->findRows('Problem', $data['problems']);
+
+ if ($count > 1) {
+ $table->findRows('Problem', $data['problems'])->select();
+ $this->query('button:Mass update')->waitUntilClickable()->one()->click();
+ }
+ else {
+ $table->findRow('Problem', $data['problems'][0])->getColumn('Ack')->query('tag:a')->waitUntilClickable()->one()->click();
+ }
+
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $form = $dialog->query('id:acknowledge_form')->asForm()->one();
+ $form->fill($data['fields']);
+ $form->submit();
+
+ $dialog->ensureNotPresent();
+ $this->page->waitUntilReady();
+ $this->page->assertHeader('Problems');
+
+ $message = ($count > 1) ? 'Events updated' : 'Event updated';
+ $this->assertMessage(TEST_GOOD, $message);
+
+ // Check db change.
+ foreach ($data['db_check'] as $event) {
+ $sql = CDBHelper::getRow('SELECT message, action, new_severity'.
+ ' FROM acknowledges'.
+ ' WHERE eventid=('.
+ 'SELECT eventid'.
+ ' FROM events'.
+ ' WHERE name='.zbx_dbstr($event['name']).
+ ') ORDER BY acknowledgeid DESC'
+ );
+
+ $this->assertEquals($event['db_fields'], $sql);
+ }
+ }
+
+ public function getCancelData() {
+ return [
+ [
+ [
+ 'case' => 'Cancel'
+ ]
+ ],
+ [
+ [
+ 'case' => 'Close'
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider getCancelData
+ */
+ public function testFormUpdateProblem_Cancel($data) {
+ $old_hash = $this->getHash();
+
+ // Open filtered Problems list.
+ $this->page->login()->open('zabbix.php?&action=problem.view&show_suppressed=1&hostids%5B%5D='.self::$hostid)->waitUntilReady();
+ $this->query('class:list-table')->asTable()->one()->findRow('Problem', 'Trigger for char')->getColumn('Ack')
+ ->query('tag:a')->waitUntilClickable()->one()->click();
+ $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
+ $dialog->query('id:acknowledge_form')->asForm()->one()->fill([
+ 'id:scope_1' => true,
+ 'id:change_severity' => true,
+ 'id:severity' => 'Disaster',
+ 'Acknowledge' => true
+ ]);
+
+ $dialog->query(($data['case'] === 'Close') ? 'xpath:.//button[@title="Close"]' : 'button:Cancel')->one()
+ ->waitUntilClickable()->click();
+
+ $dialog->ensureNotPresent();
+ $this->page->assertHeader('Problems');
+ $this->assertEquals($old_hash, $this->getHash());
+ }
+}
diff --git a/ui/tests/selenium/testPageProblems.php b/ui/tests/selenium/problems/testPageProblems.php
index 3a5965ea96d..58581bb26eb 100644
--- a/ui/tests/selenium/testPageProblems.php
+++ b/ui/tests/selenium/problems/testPageProblems.php
@@ -18,9 +18,9 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
-require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
-require_once dirname(__FILE__).'/traits/TableTrait.php';
-require_once dirname(__FILE__).'/traits/TagTrait.php';
+require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
+require_once dirname(__FILE__).'/../traits/TableTrait.php';
+require_once dirname(__FILE__).'/../traits/TagTrait.php';
use Facebook\WebDriver\WebDriverBy;
@@ -70,11 +70,12 @@ class testPageProblems extends CLegacyWebTest {
$this->zbxTestCheckHeader('Problems');
// Check the default tag filter option AND and tag value option Contains
+ $result_form = $this->query('xpath://form[@name="problem"]')->one();
$this->zbxTestClickButtonText('Reset');
+ $result_form->waitUntilReloaded();
$this->assertTrue($this->zbxTestCheckboxSelected('evaltype_00'));
- $form = $this->query('id:tabfilter_0')->asForm()->one();
+ $form = $this->query('id:tabfilter_0')->asForm()->waitUntilPresent()->one();
$this->zbxTestDropdownAssertSelected('tags_00_operator', 'Contains');
- $result_form = $this->query('xpath://form[@name="problem"]')->one();
// Select "AND" option and two tag names with partial "Contains" value match
$form->query('name:tags[0][tag]')->one()->clear()->sendKeys('Service');
@@ -100,9 +101,10 @@ class testPageProblems extends CLegacyWebTest {
public function testPageProblems_FilterByTagsOptionContainsEquals() {
$this->zbxTestLogin('zabbix.php?action=problem.view');
$this->zbxTestCheckHeader('Problems');
+ $result_form = $this->query('xpath://form[@name="problem"]')->one();
$this->zbxTestClickButtonText('Reset');
+ $result_form->waitUntilReloaded();
$form = $this->query('id:tabfilter_0')->asForm()->one();
- $result_form = $this->query('xpath://form[@name="problem"]')->one();
// Search by partial "Contains" tag value match
$form->query('name:tags[0][tag]')->one()->clear()->sendKeys('service');
@@ -126,7 +128,9 @@ class testPageProblems extends CLegacyWebTest {
public function testPageProblems_FilterByTagsOptionContainsEqualsAndRemoveOne() {
$this->zbxTestLogin('zabbix.php?action=problem.view');
$this->zbxTestCheckHeader('Problems');
+ $result_form = $this->query('xpath://form[@name="problem"]')->one();
$this->zbxTestClickButtonText('Reset');
+ $result_form->waitUntilReloaded();
$form = $this->query('id:tabfilter_0')->asForm()->one();
// Select tag option "OR" and exact "Equals" tag value match
@@ -142,7 +146,7 @@ class testPageProblems extends CLegacyWebTest {
// Search and check result
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $result_form->waitUntilReloaded();
$this->zbxTestAssertElementText('//tbody/tr[1]/td[10]/a', 'Test trigger with tag');
$this->zbxTestAssertElementText('//tbody/tr[2]/td[10]/a', 'Test trigger to check tag filter on problem page');
$this->zbxTestAssertElementText('//div[@class="table-stats"]', 'Displaying 2 of 2 found');
@@ -150,7 +154,7 @@ class testPageProblems extends CLegacyWebTest {
// Remove first tag option
$this->zbxTestClickXpath('//button[@name="tags[0][remove]"]');
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $result_form->waitUntilReloaded();
$this->zbxTestAssertElementText('//tbody/tr/td[10]/a', 'Test trigger to check tag filter on problem page');
$this->zbxTestAssertElementText('//div[@class="table-stats"]', 'Displaying 1 of 1 found');
}
@@ -373,8 +377,9 @@ class testPageProblems extends CLegacyWebTest {
$form->fill(['id:evaltype_0' => $data['evaluation_type']]);
$this->setTagSelector('id:filter-tags_0');
$this->setTags($data['tags']);
+ $table = $this->query('class:list-table')->waitUntilPresent()->asTable()->one();
$this->query('name:filter_apply')->one()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
// We remove from the result list templates that is not displayed there.
if (array_key_exists('absent_problems', $data)) {
@@ -403,8 +408,9 @@ class testPageProblems extends CLegacyWebTest {
$this->zbxTestLogin('zabbix.php?action=problem.view');
$this->zbxTestCheckHeader('Problems');
- $this->zbxTestClickButtonText('Reset');
$form = $this->query('id:tabfilter_0')->asForm()->one();
+ $this->zbxTestClickButtonText('Reset');
+ $form->waitUntilReloaded();
// Select host group
$this->zbxTestClickButtonMultiselect('groupids_0');
@@ -440,7 +446,7 @@ class testPageProblems extends CLegacyWebTest {
// Apply filter and check result
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $this->query('xpath://form[@name="problem"]')->one()->waitUntilReloaded();
$this->zbxTestAssertElementText('//tbody/tr/td[10]/a', 'Test trigger to check tag filter on problem page');
$this->zbxTestAssertElementText('//div[@class="table-stats"]', 'Displaying 1 of 1 found');
$this->zbxTestClickButtonText('Reset');
@@ -449,9 +455,10 @@ class testPageProblems extends CLegacyWebTest {
public function testPageProblems_ShowTags() {
$this->zbxTestLogin('zabbix.php?action=problem.view');
$this->zbxTestCheckHeader('Problems');
- $this->zbxTestClickButtonText('Reset');
$form = $this->query('id:tabfilter_0')->asForm()->one()->waitUntilVisible();
$result_form = $this->query('xpath://form[@name="problem"]')->one();
+ $this->zbxTestClickButtonText('Reset');
+ $result_form->waitUntilReloaded();
// Check Show tags NONE
$form->query('name:tags[0][tag]')->one()->clear()->sendKeys('service');
@@ -466,7 +473,7 @@ class testPageProblems extends CLegacyWebTest {
// Check Show tags 1
$this->zbxTestClickXpath('//label[@for="show_tags_10"]');
$this->query('name:filter_apply')->one()->click();
- $this->page->waitUntilReady();
+ $result_form->waitUntilReloaded();
// Check Tags column in result
$this->zbxTestAssertVisibleXpath('//thead/tr/th[text()="Tags"]');
@@ -479,7 +486,7 @@ class testPageProblems extends CLegacyWebTest {
// Check Show tags 2
$this->zbxTestClickXpath('//label[@for="show_tags_20"]');
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $result_form->waitUntilReloaded();
// Check tags in result
$this->zbxTestAssertElementText('//tbody/tr/td[14]/span[1]', 'service: abcdef');
$this->zbxTestAssertElementText('//tbody/tr/td[14]/span[2]', 'Database');
@@ -492,7 +499,7 @@ class testPageProblems extends CLegacyWebTest {
// Check Show tags 3
$this->zbxTestClickXpath('//label[@for="show_tags_30"]');
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $result_form->waitUntilReloaded();
// Check tags in result
$this->zbxTestAssertElementText('//tbody/tr/td[14]/span[1]', 'service: abcdef');
$this->zbxTestAssertElementText('//tbody/tr/td[14]/span[2]', 'Database');
@@ -607,7 +614,9 @@ class testPageProblems extends CLegacyWebTest {
*/
public function testPageProblems_TagPriority($data) {
$this->zbxTestLogin('zabbix.php?action=problem.view');
+ $table = $this->query('xpath://form[@name="problem"]')->one();
$this->zbxTestClickButtonText('Reset');
+ $table->waitUntilReloaded();
$this->zbxTestInputType('name_0', 'trigger with tag priority');
if (array_key_exists('show_tags', $data)) {
@@ -623,7 +632,7 @@ class testPageProblems extends CLegacyWebTest {
}
$this->query('name:filter_apply')->one()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
// Check tag priority sorting.
if (array_key_exists('sorting', $data)) {
@@ -649,9 +658,9 @@ class testPageProblems extends CLegacyWebTest {
$this->zbxTestLogin('zabbix.php?action=problem.view');
$this->zbxTestCheckHeader('Problems');
- $this->zbxTestClickButtonText('Reset');
- $this->page->waitUntilReady();
$result_form = $this->query('xpath://form[@name="problem"]')->one();
+ $this->zbxTestClickButtonText('Reset');
+ $result_form->waitUntilReloaded();
$this->zbxTestClickButtonMultiselect('hostids_0');
$this->zbxTestLaunchOverlayDialog('Hosts');
diff --git a/ui/tests/selenium/reports/testFormScheduledReport.php b/ui/tests/selenium/reports/testFormScheduledReport.php
index 4f4ed10a2c6..16f4d6565f2 100644
--- a/ui/tests/selenium/reports/testFormScheduledReport.php
+++ b/ui/tests/selenium/reports/testFormScheduledReport.php
@@ -18,12 +18,13 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php';
require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
/**
- * @dataSource ScheduledReports
+ * @dataSource ScheduledReports, LoginUsers
*
* @backup report
*/
diff --git a/ui/tests/selenium/reports/testPageReportsAudit.php b/ui/tests/selenium/reports/testPageReportsAudit.php
index 3b83bb48fdf..e4a2b8fede8 100644..100755
--- a/ui/tests/selenium/reports/testPageReportsAudit.php
+++ b/ui/tests/selenium/reports/testPageReportsAudit.php
@@ -18,283 +18,653 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
-require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
-require_once dirname(__FILE__).'/../traits/MacrosTrait.php';
-
-class testPageReportsAudit extends CLegacyWebTest {
-
- use MacrosTrait;
-
- protected static $action_list = null;
- protected static $old_resourcetype = 0;
-
- private $actions = [
- 'id:filter_actions_0' /* CAudit::ACTION_ADD */ => 'Add',
- 'id:filter_actions_2' /* CAudit::ACTION_DELETE */ => 'Delete',
- 'id:filter_actions_7' /* CAudit::ACTION_EXECUTE */ => 'Execute',
- 'id:filter_actions_9' /* CAudit::ACTION_LOGIN_FAILED */ => 'Failed login',
- 'id:filter_actions_10' /* CAudit::ACTION_HISTORY_CLEAR */ => 'History clear',
- 'id:filter_actions_8' /* CAudit::ACTION_LOGIN_SUCCESS */ => 'Login',
- 'id:filter_actions_4' /* CAudit::ACTION_LOGOUT */ => 'Logout',
- 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */ => 'Update'
- ];
-
- private $resourcetypes = [
- -1 => 'All',
- 5 /* CAudit::RESOURCE_ACTION */ => 'Action',
- 38 /* CAudit::RESOURCE_AUTOREGISTRATION */ => 'Autoregistration',
- 33 /* CAudit::RESOURCE_DASHBOARD */ => 'Dashboard',
- 23 /* CAudit::RESOURCE_DISCOVERY_RULE */ => 'Discovery rule',
- 34 /* CAudit::RESOURCE_CORRELATION */ => 'Event correlation',
- 6 /* CAudit::RESOURCE_GRAPH */ => 'Graph',
- 35 /* CAudit::RESOURCE_GRAPH_PROTOTYPE */ => 'Graph prototype',
- 4 /* CAudit::RESOURCE_HOST */ => 'Host',
- 14 /* CAudit::RESOURCE_HOST_GROUP */ => 'Host group',
- 37 /* CAudit::RESOURCE_HOST_PROTOTYPEi */ => 'Host prototype',
- 32 /* CAudit::RESOURCE_ICON_MAP */ => 'Icon mapping',
- 16 /* CAudit::RESOURCE_IMAGE */ => 'Image',
- 15 /* CAudit::RESOURCE_ITEM */ => 'Item',
- 36 /* CAudit::RESOURCE_ITEM_PROTOTYPE */ => 'Item prototype',
- 29 /* RESOURCE_MACRO */ => 'Macro',
- 27 /* CAudit::RESOURCE_MAINTENANCE */ => 'Maintenance',
- 19 /* CAudit::RESOURCE_MAP */ => 'Map',
- 3 /* CAudit::RESOURCE_MEDIA_TYPE */ => 'Media type',
- 39 /* CAudit::RESOURCE_MODULE */ => 'Module',
- 26 /* CAudit::RESOURCE_PROXY */ => 'Proxy',
- 28 /* CAudit::RESOURCE_REGEXP */ => 'Regular expression',
- 25 /* CAudit::RESOURCE_SCRIPT */ => 'Script',
- 18 /* CAudit::RESOURCE_IT_SERVICE */ => 'Service',
- 30 /* CAudit::RESOURCE_TEMPLATE */ => 'Template',
- 13 /* CAudit::RESOURCE_TRIGGER */ => 'Trigger',
- 31 /* CAudit::RESOURCE_TRIGGER_PROTOTYPE */ => 'Trigger prototype',
- 0 /* CAudit::RESOURCE_USER */ => 'User',
- 11 /* CAudit::RESOURCE_USER_GROUP */ => 'User group',
- 17 /* CAudit::RESOURCE_VALUE_MAP */ => 'Value map',
- 22 /* CAudit::RESOURCE_SCENARIO */ => 'Web scenario'
- ];
-
- public static function auditActions() {
- return [
- ['action' => 'id:filter_actions_8' /* CAudit::ACTION_LOGIN */, 'resourcetype' => 0 /* CAudit::RESOURCE_USER */],
- ['action' => 'id:filter_actions_4' /* CAudit::ACTION_LOGOUT */, 'resourcetype' => 0 /* CAudit::RESOURCE_USER */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 0 /* CAudit::RESOURCE_USER */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 0 /* CAudit::RESOURCE_USER */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 0 /* CAudit::RESOURCE_USER */],
- ['action' => 'id:filter_actions_9' /* CAudit::ACTION_LOGIN_FAILED */, 'resourcetype' => 0 /* CAudit::RESOURCE_USER */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 4 /* CAudit::RESOURCE_HOST */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 4 /* CAudit::RESOURCE_HOST */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 4 /* CAudit::RESOURCE_HOST */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 14 /* CAudit::RESOURCE_HOST_GROUP */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 14 /* CAudit::RESOURCE_HOST_GROUP */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 14 /* CAudit::RESOURCE_HOST_GROUP */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 18 /* CAudit::RESOURCE_IT_SERVICE */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 18 /* CAudit::RESOURCE_IT_SERVICE */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 18 /* CAudit::RESOURCE_IT_SERVICE */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 16 /* CAudit::RESOURCE_IMAGE */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 16 /* CAudit::RESOURCE_IMAGE */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 16 /* CAudit::RESOURCE_IMAGE */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 15 /* CAudit::RESOURCE_ITEM */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 15 /* CAudit::RESOURCE_ITEM */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 15 /* CAudit::RESOURCE_ITEM */],
- ['action' => 'id:filter_actions_10' /* CAudit::ACTION_HISTORY_CLEAR */, 'resourcetype' => 15 /* CAudit::RESOURCE_ITEM */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 13 /* CAudit::RESOURCE_TRIGGER */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 13 /* CAudit::RESOURCE_TRIGGER */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 13 /* CAudit::RESOURCE_TRIGGER */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 6 /* CAudit::RESOURCE_GRAPH */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 6 /* CAudit::RESOURCE_GRAPH */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 6 /* CAudit::RESOURCE_GRAPH */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 5 /* CAudit::RESOURCE_ACTION */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 5 /* CAudit::RESOURCE_ACTION */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 5 /* CAudit::RESOURCE_ACTION */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 23 /* CAudit::RESOURCE_DISCOVERY_RULE */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 23 /* CAudit::RESOURCE_DISCOVERY_RULE */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 23 /* CAudit::RESOURCE_DISCOVERY_RULE */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 29 /* RESOURCE_MACRO */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 29 /* RESOURCE_MACRO */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 29 /* RESOURCE_MACRO */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 27 /* CAudit::RESOURCE_MAINTENANCE */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 27 /* CAudit::RESOURCE_MAINTENANCE */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 27 /* CAudit::RESOURCE_MAINTENANCE */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 19 /* CAudit::RESOURCE_MAP */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 19 /* CAudit::RESOURCE_MAP */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 19 /* CAudit::RESOURCE_MAP */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 3 /* CAudit::RESOURCE_MEDIA_TYPE */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 3 /* CAudit::RESOURCE_MEDIA_TYPE */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 3 /* CAudit::RESOURCE_MEDIA_TYPE */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 28 /* CAudit::RESOURCE_REGEXP */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 28 /* CAudit::RESOURCE_REGEXP */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 28 /* CAudit::RESOURCE_REGEXP */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 22 /* CAudit::RESOURCE_SCENARIO */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 22 /* CAudit::RESOURCE_SCENARIO */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 22 /* CAudit::RESOURCE_SCENARIO */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 25 /* CAudit::RESOURCE_SCRIPT */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 25 /* CAudit::RESOURCE_SCRIPT */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 25 /* CAudit::RESOURCE_SCRIPT */],
- ['action' => 'id:filter_actions_7' /* CAudit::ACTION_EXECUTE */, 'resourcetype' => 25 /* CAudit::RESOURCE_SCRIPT */],
- ['action' => 'id:filter_actions_0' /* CAudit::ACTION_ADD */, 'resourcetype' => 17 /* CAudit::RESOURCE_VALUE_MAP */],
- ['action' => 'id:filter_actions_1' /* CAudit::ACTION_UPDATE */, 'resourcetype' => 17 /* CAudit::RESOURCE_VALUE_MAP */],
- ['action' => 'id:filter_actions_2' /* CAudit::ACTION_DELETE */, 'resourcetype' => 17 /* CAudit::RESOURCE_VALUE_MAP */]
- ];
- }
- private function getFormAndActionList() {
- $this->page->login()->open('zabbix.php?action=auditlog.list')->waitUntilReady();
- $this->page->assertTitle('Audit log');
- $this->page->assertHeader('Audit log');
- $form = $this->query('name:zbx_filter')->asForm()->waitUntilVisible()->one();
+require_once dirname(__FILE__).'/../../include/CWebTest.php';
+require_once dirname(__FILE__).'/../traits/TableTrait.php';
+require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php';
+require_once dirname(__FILE__).'/../../include/CAPITest.php';
- if (!($form->getField('Users')->isVisible())) {
- $this->query('id:ui-id-2')->waitUntilClickable()->one()->click();
- }
+/**
+ * @backup media_type, auditlog, config, profiles
+ *
+ * @onBefore deleteAuditlog
+ */
+class testPageReportsAudit extends CWebTest {
- if (self::$action_list === null) {
- self::$action_list = $this->query('id:filter-actions')->one()->asCheckboxList();
- }
+ use TableTrait;
- return $form;
+ /**
+ * Attach MessageBehavior to the test.
+ *
+ * @return array
+ */
+ public function getBehaviors() {
+ return [CMessageBehavior::class];
}
- public function testPageReportsAudit_CheckLayout() {
- $form = $this->getFormAndActionList();
- $this->assertEquals(['Users', 'Resource', 'Resource ID', 'Recordset ID', 'Actions'],$form->getLabels()->asText());
- $this->assertTrue(!array_diff($this->actions, self::$action_list->getLabels()->asText()));
+ /**
+ * Audit log resourceid.
+ */
+ protected static $id;
- $filter_fields_limits = [
- 'Resource ID' => 255,
- 'Recordset ID' => 255
- ];
- foreach ($filter_fields_limits as $field => $max_length) {
- $this->assertEquals($max_length, $form->getField($field)->getAttribute('maxlength'));
+ /**
+ * Check audit page layout.
+ */
+ public function testPageReportsAudit_Layout() {
+ $this->page->login()->open('zabbix.php?action=auditlog.list&filter_rst=1')->waitUntilReady();
+
+ // If the time selector is not visible - enable it.
+ if ($this->query('xpath://li[@aria-labelledby="ui-id-1" and @aria-selected="false"]')->exists()) {
+ $this->query('id:ui-id-1')->one()->click();
}
- $this->zbxTestDropdownHasOptions('filter_resourcetype', $this->resourcetypes);
+ // Check that filter set to display Last hour data.
+ $this->assertEquals('selected', $this->query('xpath://a[@data-label="Last 1 hour"]')->one()->getAttribute('class'));
+ // Press to display filter.
+ $this->query('id:ui-id-2')->one()->click();
+
+ $form = $this->query('name:zbx_filter')->asForm()->one();
+ $table = $this->query('class:list-table')->asTable()->one();
+ $filter_actions = ['Add', 'Delete', 'Execute', 'Failed login', 'History clear', 'Login', 'Logout', 'Update'];
+
+ // Check filter buttons.
foreach (['Apply', 'Reset'] as $button) {
- $this->assertTrue($this->query("xpath://div[@class=\"filter-forms\"]//button[text()=".
- CXPathHelper::escapeQuotes($button)."]")->one()->isClickable()
+ $this->assertTrue($form->query('xpath:.//div[@class="filter-forms"]/button[text()="'.$button.'"]')
+ ->one()->isClickable()
);
}
+
+ // Check form labels.
+ $this->assertEquals(['Users', 'Resource', 'Resource ID', 'Recordset ID', 'Actions'], $form->getLabels()->asText());
+
+ // Check that resource values set as All by default.
+ $this->assertTrue($form->checkValue(['Resource' => 'All']));
+
+ // Check table headers.
+ $this->assertEquals(['Time', 'User', 'IP', 'Resource', 'ID', 'Action', 'Recordset ID', 'Details'], $table->getHeadersText());
+
+ // Find action checkboxes and check labels.
+ $this->assertEquals($filter_actions, $this->query('id:filter-actions')->asCheckboxList()->one()->getLabels()->asText());
+
+ // Check that table stats are present.
+ $this->assertTableStats($table->getRows()->count());
+
+ // Resource name with checkboxes that are enabled.
+ $resource_actions =[
+ 'API token' => ['Add', 'Delete', 'Update'],
+ 'Action' => ['Add', 'Delete', 'Update'],
+ 'Authentication' => ['Update'],
+ 'Autoregistration' => ['Add', 'Delete', 'Update'],
+ 'Dashboard' => ['Add', 'Delete', 'Update'],
+ 'Discovery rule' => ['Add', 'Delete', 'Update'],
+ 'Event correlation' => ['Add', 'Delete', 'Update'],
+ 'Graph' => ['Add', 'Delete', 'Update'],
+ 'Graph prototype' => ['Add', 'Delete', 'Update'],
+ 'High availability node' => ['Add', 'Delete', 'Update'],
+ 'Host' => ['Add', 'Delete', 'Update'],
+ 'Host group' => ['Add', 'Delete', 'Update'],
+ 'Host prototype' => ['Add', 'Delete', 'Update'],
+ 'Housekeeping' => ['Update'],
+ 'Icon mapping' => ['Add', 'Delete', 'Update'],
+ 'Image' => ['Add', 'Delete', 'Update'],
+ 'Item' => ['Add', 'Delete', 'History clear', 'Update'],
+ 'Item prototype' => ['Add', 'Delete', 'Update'],
+ 'Macro' => ['Add', 'Delete', 'Update'],
+ 'Maintenance' => ['Add', 'Delete', 'Update'],
+ 'Map' => ['Add', 'Delete', 'Update'],
+ 'Media type' => ['Add', 'Delete', 'Update'],
+ 'Module' => ['Add', 'Delete', 'Update'],
+ 'Proxy' => ['Add', 'Delete', 'Update'],
+ 'Regular expression' => ['Add', 'Delete', 'Update'],
+ 'SLA' => ['Add', 'Delete', 'Update'],
+ 'Scheduled report' => ['Add', 'Delete', 'Update'],
+ 'Script' => ['Add', 'Delete', 'Execute', 'Update'],
+ 'Service' => ['Add', 'Delete', 'Update'],
+ 'Settings' => ['Update'],
+ 'Template' => ['Add', 'Delete', 'Update'],
+ 'Template dashboard' => ['Add', 'Delete', 'Update'],
+ 'Trigger' => ['Add', 'Delete', 'Update'],
+ 'Trigger prototype' => ['Add', 'Delete', 'Update'],
+ 'User' => ['Add', 'Delete', 'Failed login', 'Login', 'Logout', 'Update'],
+ 'User group' => ['Add', 'Delete', 'Update'],
+ 'User role' => ['Add', 'Delete', 'Update'],
+ 'Value map' => ['Add', 'Delete', 'Update'],
+ 'Web scenario' => ['Add', 'Delete', 'Update']
+ ];
+
+ // Check that actions checkboxes correctly enables/disables switching resources.
+ $errors = [];
+ foreach ($resource_actions as $resource => $actions) {
+ $form->fill(['Resource' => $resource]);
+ $left_actions = array_values(array_diff($filter_actions, $actions));
+
+ // At first, we need to check that correct checkboxes is enabled. Then we check that all others are disabled.
+ foreach ([true, false] as $status) {
+ if (!$status) {
+ $actions = $left_actions;
+ }
+
+ foreach ($actions as $action) {
+ $this->assertTrue($this->query('xpath://label[text()="'.$action.'"]/../input[@type="checkbox"]')->
+ one()->isEnabled($status)
+ );
+ }
+ }
+ }
}
/**
- * !!! This scenario is very questionable, it checks nothing. After Audit task is ready, please consider to
- * check filter results after submitting.
+ * Create media type and check audit page.
+ */
+ public function testPageReportsAudit_Add() {
+ $response = CDataHelper::call('mediatype.create', [
+ [
+ 'type' => 0,
+ 'name' => 'AAA',
+ 'smtp_server' => 'mail.example.com',
+ 'smtp_helo' => 'example.com',
+ 'smtp_email' => 'zabbix@example.com',
+ 'content_type' => 1
+ ]
+ ]);
+ $this->assertArrayHasKey('mediatypeids', $response);
+ self::$id = $response['mediatypeids'][0];
+
+ // Find media type id and check that audit info displayed correctly on frontend.
+ $create_audit = "mediatype.mediatypeid: ".self::$id.
+ "\nmediatype.name: AAA".
+ "\nmediatype.smtp_email: zabbix@example.com".
+ "\nmediatype.smtp_helo: example.com".
+ "\nmediatype.smtp_server: mail.example.com";
+ $this->checkAuditValues('Media type', self::$id, ['Add' => $create_audit]);
+ }
+
+ /**
+ * Update media type and check audit page.
*
- * @dataProvider auditActions
+ * @depends testPageReportsAudit_Add
*/
- public function testPageReportsAudit_Filter($action, $resourcetype) {
- $form = $this->getFormAndActionList();
- $form->getField('Users')->asMultiselect()->clear();
- $form->getField('Resource')->asDropdown()->select($this->resourcetypes[$resourcetype]);
+ public function testPageReportsAudit_Update() {
+ CDataHelper::call('mediatype.update', [
+ [
+ 'mediatypeid' => self::$id,
+ 'name' => 'AAA_update',
+ 'smtp_helo' => 'updated.com',
+ 'smtp_email' => 'update@email.com'
+ ]
+ ]);
- if (self::$old_resourcetype != $this->resourcetypes[$resourcetype]) {
- self::$action_list->uncheckAll();
- }
+ // Check that audit info displayed correctly on frontend after update.
+ $update_audit = "mediatype.name: AAA => AAA_update".
+ "\nmediatype.smtp_email: zabbix@example.com => update@email.com".
+ "\nmediatype.smtp_helo: example.com => updated.com";
+ $this->checkAuditValues('Media type', self::$id, ['Update' => $update_audit]);
+ }
+
+ /**
+ * Delete media type and check audit page.
+ *
+ * @depends testPageReportsAudit_Add
+ */
+ public function testPageReportsAudit_Delete() {
+ CDataHelper::call('mediatype.delete', [self::$id]);
+
+ // Check that audit info displayed correctly on frontend after delete.
+ $delete_audit = 'Description: AAA_update';
+ $this->checkAuditValues('Media type', self::$id, ['Delete' => $delete_audit]);
+ }
- self::$action_list->check($this->actions[$action]);
- $form->submit();
- $this->page->assertHeader('Audit log');
- self::$old_resourcetype = $this->resourcetypes[$resourcetype];
+ /**
+ * Clear history and trends in item and check audit page.
+ */
+ public function testPageReportsAudit_HistoryClear() {
+ CDataHelper::call('history.clear', [99106]);
+
+ // Check that audit info displayed correctly on frontend.
+ $clear_audit = 'Description: Dynamic widgets H3I1';
+ $this->checkAuditValues('Item', 99106, ['History clear' => $clear_audit]);
+ }
+
+ /**
+ * Check that Login, Logout and Failed login works and displayed correctly.
+ */
+ public function testPageReportsAudit_LoginLogoutFailed() {
+ $this->page->userLogin('Admin', 'zabbixaaa');
+ $this->page->userLogin('Admin', 'zabbix');
+ $this->query('link:Sign out')->waitUntilVisible()->one()->click();
+ $this->page->login();
+
+ // Check that all info displayed correctly in audit.
+ $user_audit = '';
+ $this->checkAuditValues('User', 1, ['Failed login' => $user_audit, 'Login' => $user_audit,
+ 'Logout' => $user_audit]
+ );
}
/**
- * Check whether actions are enabled or disabled depending on the selected resource.
+ * Check that there is no audit logs after disabling audit.
*/
- public function testPageReportsAudit_ActionsState() {
- $form = $this->getFormAndActionList();
- $actions = self::$action_list->getCheckboxes();
-
- foreach ($this->resourcetypes as $type) {
- $form->fill(['Resource' => $type]);
- $enabled = array_values($actions->filter(new CElementFilter(CElementFilter::ATTRIBUTES_NOT_PRESENT, ['disabled']))->asText());
- $disabled = array_values($actions->filter(new CElementFilter(CElementFilter::ATTRIBUTES_PRESENT, ['disabled']))->asText());
-
- switch ($type) {
- case 'All':
- $this->assertEquals(array_values($this->actions), $enabled);
- break;
-
- case 'Authentication':
- case 'Configuration of Zabbix':
- $this->assertEquals(['Add', 'Delete', 'Execute', 'Failed login', 'Login', 'Logout'], $disabled);
- break;
-
- case 'Discovery rule':
- case 'Host':
- $this->assertEquals(['Execute', 'Failed login','History clear', 'Login', 'Logout'], $disabled);
- break;
-
- case 'Image':
- case 'Event correlation':
- $this->assertEquals(['Add', 'Delete', 'Update'], $enabled);
- break;
-
- case 'Housekeeping':
- case 'Settings':
- $this->assertEquals(['Update'], $enabled);
- break;
-
- case 'Script':
- $this->assertEquals(['Failed login', 'History clear', 'Login', 'Logout'], $disabled);
- break;
-
- case 'User':
- $this->assertEquals(['Execute', 'History clear'], $disabled);
- break;
-
- case 'Item':
- $this->assertEquals(['Execute', 'Failed login', 'Login', 'Logout'], $disabled);
- break;
-
- default:
- $this->assertEquals(['Execute', 'Failed login', 'History clear', 'Login', 'Logout'], $disabled);
+ public function testPageReportsAudit_DisabledEnabled() {
+ $this->page->login();
+ foreach ([false, true] as $status) {
+ $this->page->open('zabbix.php?action=audit.settings.edit')->waitUntilReady();
+
+ // Disable audit.
+ $settings_form = $this->query('id:audit-settings')->asForm()->one();
+ $settings_form->fill(['Enable audit logging' => $status])->submit();
+ $this->assertMessage(TEST_GOOD, 'Configuration updated');
+
+ // Save audit data from table in UI and database.
+ $this->page->open('zabbix.php?action=auditlog.list&filter_rst=1')->waitUntilReady();
+ $table = $this->query('class:list-table')->asTable()->one();
+ $audit_values = $table->getRow(0)->getText();
+ $hash = CDBHelper::getHash('SELECT * FROM auditlog');
+
+ // Check information in audit page that audit is disabled/enabled.
+ $audit_status = (!$status) ? 'settings.auditlog_enabled: 1 => 0' : 'settings.auditlog_enabled: 0 => 1';
+ $this->assertEquals($audit_status, $this->query('class:list-table')->asTable()->one()->getRow(0)->
+ getColumn('Details')->getText()
+ );
+
+ // Update media type. If audit is disabled - no new data should appear in audit page/database.
+ $name = (!$status) ? 'BBB' : 'CCC';
+ CDataHelper::call('mediatype.update', [
+ [
+ 'mediatypeid' => 1,
+ 'name' => $name
+ ]
+ ]);
+
+ // Compare audit after disabling/enabling audit and adding media type.
+ $this->page->refresh()->waitUntilReady();
+
+ if (!$status) {
+ $this->assertEquals($audit_values, $table->getRow(0)->getText());
+ $this->assertEquals($hash, CDBHelper::getHash('SELECT * FROM auditlog'));
+ }
+ else {
+ $this->assertNotEquals($audit_values, $table->getRow(0)->getText());
+ $this->assertNotEquals($hash, CDBHelper::getHash('SELECT * FROM auditlog'));
}
}
}
/**
- * @backupOnce globalmacro
+ * @onBeforeOnce prepareLoginData
*/
- public function testPageReportsAudit_UpdateMacroDescription() {
- // Update Macro description.
- $this->page->login()->open('zabbix.php?action=macros.edit');
- $form = $this->query('name:macrosForm')->asForm()->one();
-
- $macros = [
+ public static function getCheckFilterData() {
+ return [
+ // #0
+ [
+ [
+ 'fields' => [
+ 'Resource' => 'Media type',
+ 'Actions' => 'Add'
+ ],
+ 'result_count' => 1
+ ]
+ ],
+ // #1
+ [
+ [
+ 'fields' => [
+ 'Resource' => 'Media type'
+ ],
+ 'result_count' => 4
+ ]
+ ],
+ // #2
+ [
+ [
+ 'fields' => [
+ 'Resource' => 'Media type',
+ 'Users' => 'Admin'
+ ],
+ 'result_count' => 4
+ ]
+ ],
+ // #3
+ [
+ [
+ 'fields' => [
+ 'Users' => 'Admin'
+ ],
+ 'result_count' => 12
+ ]
+ ],
+ // #4
+ [
+ [
+ 'fields' => [
+ 'Users' => 'Admin',
+ 'Actions' => 'Failed login'
+ ],
+ 'result_count' => 1
+ ]
+ ],
+ // #5
+ [
+ [
+ 'fields' => [
+ 'Users' => 'Admin',
+ 'Actions' => [
+ 'Add',
+ 'Delete',
+ 'Failed login',
+ 'Logout',
+ 'Login'
+ ]
+ ],
+ 'result_count' => 5
+ ]
+ ],
+ // #6
+ [
+ [
+ 'fields' => [
+ 'Actions' => [
+ 'Add',
+ 'Delete',
+ 'Failed login',
+ 'History clear',
+ 'Logout',
+ 'Login',
+ 'Update'
+ ]
+ ]
+ ]
+ ],
+ // #7
+ [
+ [
+ 'fields' => [
+ 'Users' => ['test-timezone', 'Admin']
+ ],
+ 'result_count' => 13
+ ]
+ ],
+ // #8
+ [
+ [
+ 'fields' => [
+ 'Resource ID' => 99106
+ ],
+ 'result_count' => 1
+ ]
+ ],
+ // #9
[
- 'action' => USER_ACTION_UPDATE,
- 'index' => 0,
- 'description' => 'New Updated Description'
+ [
+ 'fields' => [
+ 'Users' => 'Admin',
+ 'Resource' => 'Item',
+ 'Resource ID' => 99106,
+ 'Actions' => 'History clear'
+ ],
+ 'result_count' => 1
+ ]
+ ],
+ // #10
+ [
+ [
+ 'fields' => [
+ 'Recordset ID' => 'cl7irkc1h00003pde7s7xxxxx'
+ ],
+ 'no_data' => true
+ ]
+ ],
+ // #11
+ [
+ [
+ 'fields' => [
+ 'Users' => 'guest',
+ 'Actions' => 'Add'
+ ],
+ 'no_data' => true
+ ]
+ ],
+ // #12
+ [
+ [
+ 'fields' => [
+ 'Resource ID' => 77777777
+ ],
+ 'no_data' => true
+ ]
+ ],
+ // #13
+ [
+ [
+ 'fields' => [
+ 'Users' => 'filter-create'
+ ],
+ 'no_data' => true
+ ]
+ ],
+ // #14
+ [
+ [
+ 'fields' => [
+ 'Actions' => 'Execute'
+ ],
+ 'no_data' => true
+ ]
+ ],
+ // #15
+ [
+ [
+ 'fields' => [
+ 'Resource' => 'Web scenario'
+ ],
+ 'no_data' => true
+ ]
]
+ // TODO: uncomment after ZBX-21097 fix
+ // #16
+// [
+// [
+// 'fields' => [
+// 'Resource ID' => 'aaaaaaaa'
+// ],
+// 'no_data' => true
+// ]
+// ],
+ // #17
+// [
+// [
+// 'fields' => [
+// 'Recordset ID' => 'aaaaaaaa'
+// ],
+// 'no_data' => true
+// ]
+// ]
];
+ }
- $this->fillMacros($macros);
- $form->submit();
- $message = CMessageElement::find()->waitUntilVisible()->one();
- $this->assertTrue($message->isGood());
- $this->assertEquals('Macros updated', $message->getTitle());
-
- // Check Audit record about global macro update.
- // TODO after ZBX-19918 fix: remove line with long auditlog link and uncomment 2 lines below.
-// $this->page->open('zabbix.php?action=auditlog.list');
-// $this->query('button:Reset')->waitUntilVisible()->one()->click();
- $this->page->open('zabbix.php?action=auditlog.list&from=now-1h&to=now&filter_resourcetype='.
- '-1&filter_resourceid=11&filter_action=-1&filter_recordsetid=&filter_set=1');
- $rows = $this->query('class:list-table')->asTable()->one()->getRows();
- // Get first row data.
- $row = $rows->get(0);
-
- $audit = [
- 'User' => 'Admin',
- 'Resource' => 'Macro',
- 'Action' => 'Update',
- 'ID' => 11,
- 'Details' => "Description: {\$1}\n\nusermacro.description: Test description 1 => New Updated Description"
- ];
+ /**
+ * Check audit filter. This checks can be executed only after all other scenarios completed.
+ * There are used values and data that was created before in this autotest.
+ *
+ * @dataProvider getCheckFilterData
+ *
+ * @onBeforeOnce prepareLoginData
+ *
+ * @depends testPageReportsAudit_Add
+ * @depends testPageReportsAudit_Update
+ * @depends testPageReportsAudit_Delete
+ * @depends testPageReportsAudit_HistoryClear
+ * @depends testPageReportsAudit_LoginLogoutFailed
+ * @depends testPageReportsAudit_DisabledEnabled
+ */
+ public function testPageReportsAudit_CheckFilter($data) {
+ $this->page->login()->open('zabbix.php?action=auditlog.list&filter_rst=1')->waitUntilReady();
+ $form = $this->query('name:zbx_filter')->asForm()->one();
+ $table = $this->query('class:list-table')->asTable()->one();
+ $form->query('button:Reset')->one()->click();
+
+ $form->fill($data['fields'])->submit();
+
+ // If there is no result - "No data found" displayed in table.
+ if (CTestArrayHelper::get($data, 'no_data')) {
+ $this->assertEquals(['No data found.'], $table->getRows()->asText());
+ }
+ else {
+ foreach ($data['fields'] as $column => $values) {
+ if ($column === 'Users' || 'Actions') {
+ $column = rtrim($column, 's');
+ }
+
+ if ($column === 'Resource ID') {
+ $column = 'ID';
+ }
+
+ // If not array.
+ if (!is_array($values)) {
+ $values = [$values];
+ }
+
+ // Get all results from column and remove existing values.
+ $table_value = $this->getTableResult($column);
+
+ foreach ($values as $value) {
+ $this->assertTrue(in_array($value, $table_value));
+
+ // Remove existing value from the list.
+ $table_value = array_values(array_diff($table_value, [$value]));
+ }
+
+ // If everything correct, there should not be left any values.
+ $this->assertEquals($table_value, []);
+ }
+
+ // TODO: remove IF condition after ZBX-19918 fix. Add result_count to test case #6
+ // There is some scenarios with known result amount.
+ if (array_key_exists('result_count', $data)) {
+ $this->assertEquals($data['result_count'], $table->getRows()->count());
+ }
+ }
+ }
+
+ /**
+ * Check that audit log can be filtered by recordsetid.
+ */
+ public function testPageReportsAudit_CheckRecordsetFilter() {
+ $this->page->login()->open('zabbix.php?action=auditlog.list&filter_rst=1')->waitUntilReady();
+ $form = $this->query('name:zbx_filter')->asForm()->one();
+ $table = $this->query('class:list-table')->asTable()->one();
+ $form->query('button:Reset')->one()->click();
+
+ // Click on Recordset ID in first row.
+ $table->getRow(0)->getColumn('Recordset ID')->query('xpath:.//a')->one()->click();
+ $recordsetid = $table->getRow(0)->getColumn('Recordset ID')->getText();
+
+ // Check that correct Recordset ID displayed in filter form.
+ $this->assertTrue($form->checkValue(['Recordset ID' => $recordsetid]));
+
+ // Compare result cout on page and in DB.
+ $recordsetid_count = CDBHelper::getCount('SELECT NULL FROM auditlog WHERE recordsetid='.zbx_dbstr($recordsetid));
+ $this->assertEquals($recordsetid_count, $table->getRows()->count());
+ }
+
+ /**
+ * Filter and compare audit log.
+ *
+ * @param string $resource_name resource parameter on audit page.
+ * @param integer $resourceid parameter resource ID.
+ * @param array $actions action name as key and audit details as value.
+ */
+ private function checkAuditValues($resource_name, $resourceid, $actions) {
+ $this->page->login()->open('zabbix.php?action=auditlog.list')->waitUntilReady();
- foreach ($audit as $column => $value) {
- $text = $row->getColumnData($column, $value);
- $this->assertEquals($value, $text);
+ // If the filter is not visible - enable it.
+ if ($this->query('xpath://li[@aria-labelledby="ui-id-2" and @aria-selected="false"]')->exists()) {
+ $this->query('id:ui-id-2')->one()->click();
}
+
+ // Find filter form and fill with correct resource values.
+ $form = $this->query('name:zbx_filter')->asForm()->one();
+ $form->query('button:Reset')->one()->click();
+
+ foreach ($actions as $action => $audit) {
+ $form->fill(['Resource' => $resource_name, 'Resource ID' => $resourceid]);
+ $form->query("xpath:.//label[text()=".CXPathHelper::escapeQuotes($action).
+ ']/../input[contains(@id, "filter_actions")]'
+ )->asCheckbox()->one()->check();
+ $form->submit()->waitUntilReloaded();
+
+ // Check that action column has correct action value.
+ $table = $this->query('class:list-table')->asTable()->one();
+ $this->assertEquals($action, $table->getRow(0)->getColumn('Action')->getText());
+
+ // Check audit details in overlay window or in details column.
+ $details_link = $table->getRow(0)->getColumn('Details')->query('link:Details')->one(false);
+
+ if ($details_link->isValid()) {
+ $details_link->click();
+ $dialog = COverlayDialogElement::find()->waitUntilReady()->one();
+ $this->assertEquals($audit, $dialog->getContent()->getText());
+ $dialog->close();
+ }
+ else {
+ $this->assertEquals($audit, $table->getRow(0)->getColumn('Details')->getText());
+ }
+
+ // Values taken from column after filtering audit.
+ $columns = ['Time', 'User', 'IP', 'Resource', 'ID', 'Recordset ID'];
+ $result = [];
+
+ foreach ($columns as $column) {
+ $column_value = $table->getRow(0)->getColumn($column)->getText();
+
+ // Need to convert time to epoch format and change to string.
+ if ($column === 'Time') {
+ $column_value = strval(strtotime($column_value));
+ }
+
+ // Every resource has its value in database.
+ if ($column === 'Resource') {
+ $column_value = ($column_value === 'User') ? 0 : (($column_value === 'Item') ? 15 : 3);
+ }
+
+ $result[] = $column_value;
+ }
+
+ // Compare values from DB and audit page.
+ $action_ids = [
+ 'Failed login' => 9,
+ 'Login' => 8,
+ 'Logout' => 4,
+ 'Add' => 0,
+ 'Update' => 1,
+ 'Delete' => 2,
+ 'History clear' => 10
+ ];
+
+ $dbaudit = CDBHelper::getAll('SELECT clock, username, ip, resourcetype, resourceid, recordsetid FROM auditlog WHERE
+ (resourceid, action)=('.zbx_dbstr($resourceid).','.zbx_dbstr($action_ids[$action]).') ORDER BY clock DESC LIMIT 1'
+ );
+ $this->assertEquals([], array_diff($result, $dbaudit[0]));
+ }
+ }
+
+ /**
+ * Clear auditlog table.
+ */
+ public function deleteAuditlog() {
+ DBexecute('DELETE FROM auditlog');
+ }
+
+ /**
+ * Login as test-timezone user to create new data in autotest for filter scenario.
+ */
+ public function prepareLoginData() {
+ CAPITest::disableAuthorization();
+ CDataHelper::call('user.login',
+ [
+ 'username' => 'test-timezone',
+ 'password' => 'zabbix'
+ ]
+ );
}
}
diff --git a/ui/tests/selenium/reports/testPageReportsNotifications.php b/ui/tests/selenium/reports/testPageReportsNotifications.php
index 375f48d5878..ee5d4e7c8f1 100644
--- a/ui/tests/selenium/reports/testPageReportsNotifications.php
+++ b/ui/tests/selenium/reports/testPageReportsNotifications.php
@@ -18,10 +18,14 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
use Facebook\WebDriver\WebDriverBy;
+/**
+ * @dataSource LoginUsers
+ */
class testPageReportsNotifications extends CLegacyWebTest {
public function testPageReportsNotifications_CheckLayout() {
diff --git a/ui/tests/selenium/roles/testFormUserRoles.php b/ui/tests/selenium/roles/testFormUserRoles.php
index fc6e5189169..175b37d06ad 100644
--- a/ui/tests/selenium/roles/testFormUserRoles.php
+++ b/ui/tests/selenium/roles/testFormUserRoles.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php';
require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
@@ -1154,7 +1155,7 @@ class testFormUserRoles extends CWebTest {
[
'expected' => TEST_GOOD,
'fields' => [],
- 'api_methods' => [],
+ 'api_methods' => '',
'message_header' => 'User role updated'
]
],
@@ -1318,6 +1319,7 @@ class testFormUserRoles extends CWebTest {
$this->query('button:Delete')->one()->click();
$this->page->acceptAlert();
$this->page->waitUntilReady();
+
if ($role === 'Admin role') {
$this->assertMessage(TEST_BAD, 'Cannot delete user role', 'Cannot delete assigned user role "Admin role".');
$this->assertEquals($hash_before, CDBHelper::getHash(self::ROLE_SQL));
@@ -1589,7 +1591,9 @@ class testFormUserRoles extends CWebTest {
if (array_key_exists('api_methods', $data)) {
$api_methods = $this->query('xpath:(//div[@class="multiselect-control"])[3]')->asMultiselect()->one()->getValue();
- rsort($api_methods);
+ if (is_array($api_methods)) {
+ rsort($api_methods);
+ }
$this->assertEquals($data['api_methods'], $api_methods);
}
}
diff --git a/ui/tests/selenium/roles/testPageUserRoles.php b/ui/tests/selenium/roles/testPageUserRoles.php
index 5757ffcbb2d..2121bdd9d1f 100644
--- a/ui/tests/selenium/roles/testPageUserRoles.php
+++ b/ui/tests/selenium/roles/testPageUserRoles.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php';
require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
@@ -26,6 +27,7 @@ require_once dirname(__FILE__).'/../traits/TableTrait.php';
/**
* @backup role
* @onBefore prepareRoleData
+ * @dataSource LoginUsers
*/
class testPageUserRoles extends CWebTest {
@@ -172,8 +174,8 @@ class testPageUserRoles extends CWebTest {
],
[
'Name' => 'Super admin role',
- '#' => 'Users 5',
- 'Users' => 'Admin (Zabbix Administrator), filter-create, filter-delete, filter-update, test-timezone'
+ '#' => 'Users 6',
+ 'Users' => 'Admin (Zabbix Administrator), filter-create, filter-delete, filter-update, LDAP user, test-timezone'
],
[
'Name' => 'User role',
diff --git a/ui/tests/selenium/roles/testUserRolesPermissions.php b/ui/tests/selenium/roles/testUserRolesPermissions.php
index 9ed8a48f8f7..c09cc4b615c 100644
--- a/ui/tests/selenium/roles/testUserRolesPermissions.php
+++ b/ui/tests/selenium/roles/testUserRolesPermissions.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
require_once dirname(__FILE__).'/../traits/TableTrait.php';
require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php';
diff --git a/ui/tests/selenium/testFormAdministrationAuthenticationHttp.php b/ui/tests/selenium/testFormAdministrationAuthenticationHttp.php
index b611e98f41f..c0193bf998a 100644
--- a/ui/tests/selenium/testFormAdministrationAuthenticationHttp.php
+++ b/ui/tests/selenium/testFormAdministrationAuthenticationHttp.php
@@ -18,11 +18,13 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
/**
* @onBefore removeGuestFromDisabledGroup
* @onAfter addGuestToDisabledGroup
+ * @dataSource LoginUsers
*/
class testFormAdministrationAuthenticationHttp extends CLegacyWebTest {
@@ -352,7 +354,7 @@ class testFormAdministrationAuthenticationHttp extends CLegacyWebTest {
[
[
'user' => 'local.com\\test-user',
- 'password' => 'zabbix',
+ 'password' => 'zabbix12345',
'file' => 'htaccess',
'http_authentication' => [
'Enable HTTP authentication' => true,
diff --git a/ui/tests/selenium/testFormAdministrationUserGroups.php b/ui/tests/selenium/testFormAdministrationUserGroups.php
index 756479ff33e..718df7bb607 100644
--- a/ui/tests/selenium/testFormAdministrationUserGroups.php
+++ b/ui/tests/selenium/testFormAdministrationUserGroups.php
@@ -22,6 +22,7 @@ require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
/**
* @backup usrgrp
+ * @dataSource LoginUsers
*/
class testFormAdministrationUserGroups extends CLegacyWebTest {
private $userGroup = 'Selenium user group';
diff --git a/ui/tests/selenium/testFormApiTokensAdministrationGeneral.php b/ui/tests/selenium/testFormApiTokensAdministrationGeneral.php
index b129f4a68c0..56cef143040 100644
--- a/ui/tests/selenium/testFormApiTokensAdministrationGeneral.php
+++ b/ui/tests/selenium/testFormApiTokensAdministrationGeneral.php
@@ -25,6 +25,7 @@ require_once dirname(__FILE__).'/../include/helpers/CDataHelper.php';
* @backup token
*
* @onBefore prepareTokenData
+ * @dataSource LoginUsers
*/
class testFormApiTokensAdministrationGeneral extends testFormApiTokens {
diff --git a/ui/tests/selenium/testFormLogin.php b/ui/tests/selenium/testFormLogin.php
index 74026d06494..774be188194 100644
--- a/ui/tests/selenium/testFormLogin.php
+++ b/ui/tests/selenium/testFormLogin.php
@@ -18,31 +18,15 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../include/CWebTest.php';
require_once dirname(__FILE__).'/../include/helpers/CDataHelper.php';
/**
- * @backup users
- *
- * @onBefore prepareLdapUserData
- **/
+ * @dataSource LoginUsers
+ */
class testFormLogin extends CWebTest {
- public function prepareLdapUserData() {
- CDataHelper::call('user.create', [
- [
- 'username' => 'LDAP user',
- 'passwd' => 'zabbix12345',
- 'roleid' => 3,
- 'usrgrps' => [
- [
- 'usrgrpid' => 16
- ]
- ]
- ]
- ]);
- }
-
public static function getLoginLogoutData() {
return [
[
@@ -56,7 +40,7 @@ class testFormLogin extends CWebTest {
[
[
'login' => 'disabled-user',
- 'password' => 'zabbix',
+ 'password' => 'zabbix12345',
'expected' => TEST_BAD,
'error_message' => 'No permissions for system access.'
]
@@ -64,7 +48,7 @@ class testFormLogin extends CWebTest {
[
[
'login' => 'no-access-to-the-frontend',
- 'password' => 'zabbix',
+ 'password' => 'zabbix12345',
'expected' => TEST_BAD,
'error_message' => 'GUI access disabled.'
]
@@ -161,27 +145,30 @@ class testFormLogin extends CWebTest {
$this->page->open('index.php');
for ($i = 1; $i < 5; $i++) {
$this->page->userLogin($user, '!@$#%$&^*(\"\'\\*;:');
- $this->assertEquals('Incorrect user name or password or account is temporarily blocked.', $this->query('class:red')
- ->waitUntilVisible()->one()->getText());
+ $this->assertEquals('Incorrect user name or password or account is temporarily blocked.',
+ $this->query('class:red')->waitUntilVisible()->one()->getText()
+ );
$this->assertEquals($i, CDBHelper::getValue('SELECT attempt_failed FROM users WHERE username='.zbx_dbstr($user)));
$this->assertEquals(1, CDBHelper::getCount('SELECT NULL FROM users WHERE username='.zbx_dbstr($user).' AND attempt_clock>0'));
$this->assertEquals(1, CDBHelper::getCount("SELECT NULL FROM users WHERE username=".zbx_dbstr($user)." AND attempt_ip<>''"));
}
$this->page->userLogin($user, '!@$#%$&^*(\"\'\\*;:');
- $this->assertEquals('Incorrect user name or password or account is temporarily blocked.', $this->query('class:red')
- ->waitUntilVisible()->one()->getText());
+ $this->assertEquals('Incorrect user name or password or account is temporarily blocked.',
+ $this->query('class:red')->waitUntilVisible()->one()->getText()
+ );
// Account is blocked, waiting 30 sec and trying to login.
sleep(30);
- $this->page->userLogin($user, 'zabbix');
+ $this->page->userLogin($user, 'zabbix12345');
$this->page->assertHeader('Global view');
- $this->assertStringContainsString('5 failed login attempts logged.', $this->query('class:msg-bad')
- ->waitUntilVisible()->one()->getText());
+ $this->assertStringContainsString('5 failed login attempts logged.',
+ $this->query('class:msg-bad')->waitUntilVisible()->one()->getText()
+ );
}
/**
- * Function makes two authentications with different data to different Zabbix views, separately clicking on
+ * Function makes two authentifications with different data to different Zabbix views, separately clicking on
* sign in button and checking by views header, if correct url is opened.
**/
public function testFormLogin_LoginWithRequest() {
diff --git a/ui/tests/selenium/testFormWeb.php b/ui/tests/selenium/testFormWeb.php
index 993df9674f2..b4a89658b61 100644
--- a/ui/tests/selenium/testFormWeb.php
+++ b/ui/tests/selenium/testFormWeb.php
@@ -433,7 +433,7 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Name -numbers only
+ // Name - numbers only
[
[
'expected' => TEST_GOOD,
@@ -443,7 +443,7 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Name -symbols only
+ // Name - symbols only
[
[
'expected' => TEST_GOOD,
@@ -453,7 +453,7 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Name-spaces
+ // Name- spaces
[
[
'expected' => TEST_GOOD,
@@ -463,7 +463,7 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Max -64 symbols
+ // Max - 64 symbols
[
[
'expected' => TEST_GOOD,
@@ -547,7 +547,7 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Username/password -64 max allowed
+ // Username/password - 64 max allowed
[
[
'expected' => TEST_GOOD,
@@ -694,74 +694,74 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Http proxy -just numbers
+ // Http proxy - just numbers
[
[
'expected' => TEST_GOOD,
- 'name' => 'Http proxy -just numbers',
+ 'name' => 'Http proxy - just numbers',
'http_proxy' => '1234567890',
'add_step' => [
- ['step' => 'Http proxy -just numbers']
+ ['step' => 'Http proxy - just numbers']
]
]
],
- // Http proxy -symbols
+ // Http proxy - symbols
[
[
'expected' => TEST_GOOD,
- 'name' => 'Http proxy -symbols',
+ 'name' => 'Http proxy - symbols',
'http_proxy' => '!@#$%^&*()_+{}:"|<>?,./',
'add_step' => [
- ['step' => 'Http proxy -symbols']
+ ['step' => 'Http proxy - symbols']
]
]
],
- // Http proxy -max allowed length
+ // Http proxy - max allowed length
[
[
'expected' => TEST_GOOD,
- 'name' => 'Http proxy -max allowed length',
+ 'name' => 'Http proxy - max allowed length',
'http_proxy' => 'qwertyuiopqwertyuiopqwertyuiopqwertyui'.
'opqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwe.'.
'rtyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqw'.
'ertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwer'.
'tyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiop123456789012345',
'add_step' => [
- ['step' => 'Http proxy -max allowed length']
+ ['step' => 'Http proxy - max allowed length']
]
]
],
- // Variables -just numbers
+ // Variables - just numbers
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -just numbers',
+ 'name' => 'Variables - just numbers',
'variables' => [
['name' => '{1234567890}']
],
'add_step' => [
- ['step' => 'Variables -just numbers']
+ ['step' => 'Variables - just numbers']
]
]
],
- // Variables -symbols
+ // Variables - symbols
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -symbols',
+ 'name' => 'Variables - symbols',
'variables' => [
['name' => '{!@#$%^&*()_+:"|<>?,./}']
],
'add_step' => [
- ['step' => 'Variables -symbols']
+ ['step' => 'Variables - symbols']
]
]
],
- // Variables -255 max allowed
+ // Variables - 255 max allowed
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -255 length',
+ 'name' => 'Variables - 255 length',
'variables' => [
['name' => '{qwertyuiopqwertyuiopqwertyuiopqwertyui'.
'opqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwe.'.
@@ -770,20 +770,20 @@ class testFormWeb extends CLegacyWebTest {
'tyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiop123456789012}']
],
'add_step' => [
- ['step' => 'Variables -255 length']
+ ['step' => 'Variables - 255 length']
]
]
],
- // Variables -without {}
+ // Variables - without {}
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -without {}',
+ 'name' => 'Variables - without {}',
'variables' => [
['name' => 'test']
],
'add_step' => [
- ['step' => 'Variables -without {}']
+ ['step' => 'Variables - without {}']
],
'error_msg' => 'Cannot add web scenario',
'errors' => [
@@ -791,16 +791,16 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Variables -without {}
+ // Variables - without {}
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -without {}',
+ 'name' => 'Variables - without {}',
'variables' => [
['name' => '{test']
],
'add_step' => [
- ['step' => 'Variables -without {}']
+ ['step' => 'Variables - without {}']
],
'error_msg' => 'Cannot add web scenario',
'errors' => [
@@ -808,16 +808,16 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Variables -without {}
+ // Variables - without {}
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -without {}',
+ 'name' => 'Variables - without {}',
'variables' => [
['name' => 'test}']
],
'add_step' => [
- ['step' => 'Variables -without {}']
+ ['step' => 'Variables - without {}']
],
'error_msg' => 'Cannot add web scenario',
'errors' => [
@@ -825,17 +825,17 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Variables -with the same names
+ // Variables - with the same names
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -with the same names',
+ 'name' => 'Variables - with the same names',
'variables' => [
['name' => '{test}'],
['name' => '{test}']
],
'add_step' => [
- ['step' => 'Variables -with the same names']
+ ['step' => 'Variables - with the same names']
],
'error_msg' => 'Cannot add web scenario',
'errors' => [
@@ -843,30 +843,30 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Variables -two different
+ // Variables - two different
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -two different',
+ 'name' => 'Variables - two different',
'variables' => [
['name' => '{test1}', 'value' => 'test1'],
['name' => '{test2}', 'value' => 'test1']
],
'add_step' => [
- ['step' => 'Variables -two different']
+ ['step' => 'Variables - two different']
]
]
],
- // Variables -empty name
+ // Variables - empty name
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -two different',
+ 'name' => 'Variables - two different',
'variables' => [
['value' => 'test']
],
'add_step' => [
- ['step' => 'Variables -two different']
+ ['step' => 'Variables - two different']
],
'error_msg' => 'Cannot add web scenario',
'errors' => [
@@ -874,37 +874,37 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // Headers -just numbers
+ // Headers - just numbers
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -just numbers',
+ 'name' => 'Headers - just numbers',
'headers' => [
['name' => '1234567890', 'value' => '123456']
],
'add_step' => [
- ['step' => 'Headers -just numbers']
+ ['step' => 'Headers - just numbers']
]
]
],
- // Headers -just symbols
+ // Headers - just symbols
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -just symbols',
+ 'name' => 'Headers - just symbols',
'headers' => [
['name' => '!@#$%^&*()_+:"{}|<>?,./', 'value' => '!@#$%^&*()_+:"{}|<>?,./']
],
'add_step' => [
- ['step' => 'Headers -just symbols']
+ ['step' => 'Headers - just symbols']
]
]
],
- // Headers -255 length
+ // Headers - 255 length
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -255 length',
+ 'name' => 'Headers - 255 length',
'headers' => [
['name' => 'qwertyuiopqwertyuiopqwertyuiopqwertyui'.
'opqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwe.'.
@@ -918,51 +918,47 @@ class testFormWeb extends CLegacyWebTest {
'tyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiop12345678901234']
],
'add_step' => [
- ['step' => 'Headers -255 length']
+ ['step' => 'Headers - 255 length']
]
]
],
- // Headers -two different
+ // Headers - two different
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -two different',
+ 'name' => 'Headers - two different',
'headers' => [
['name' => 'test', 'value' => 'test_value'],
['name' => 'test', 'value' => 'test_value']
],
'add_step' => [
- ['step' => 'Headers -two different']
+ ['step' => 'Headers - two different']
]
]
],
- // Headers -empty value
+ // Headers - empty value
[
[
- 'expected' => TEST_BAD,
- 'name' => 'Headers -empty value',
+ 'expected' => TEST_GOOD,
+ 'name' => 'Headers - empty value',
'headers' => [
['name' => 'test']
],
'add_step' => [
- ['step' => 'Headers -empty value']
- ],
- 'error_msg' => 'Cannot add web scenario',
- 'errors' => [
- 'Invalid parameter "/1/headers/1/value": cannot be empty.'
+ ['step' => 'Headers - empty value']
]
]
],
- // Headers -empty name
+ // Headers - empty name
[
[
'expected' => TEST_BAD,
- 'name' => 'Headers -empty name',
+ 'name' => 'Headers - empty name',
'headers' => [
['value' => 'test']
],
'add_step' => [
- ['step' => 'Headers -empty name']
+ ['step' => 'Headers - empty name']
],
'error_msg' => 'Cannot add web scenario',
'errors' => [
@@ -1011,7 +1007,7 @@ class testFormWeb extends CLegacyWebTest {
]
]
],
- // testing created items using triggers -multiple steps added
+ // testing created items using triggers - multiple steps added
[
[
'expected' => TEST_GOOD,
diff --git a/ui/tests/selenium/testFormWebStep.php b/ui/tests/selenium/testFormWebStep.php
index a4c7880aaa0..b9ef0a532fc 100644
--- a/ui/tests/selenium/testFormWebStep.php
+++ b/ui/tests/selenium/testFormWebStep.php
@@ -160,6 +160,19 @@ class testFormWebStep extends CLegacyWebTest {
],
[
[
+ 'expected' => TEST_GOOD,
+ 'name' => 'Call to Prometheus API',
+ 'step_name' => 'Step call to Prometheus API',
+ 'url' => 'http://localhost:9090/api/v1/query?query=irate(node_network_transmit_bytes_total\{device!="lo",instance="192.168.150.101"}[1m])',
+ 'parse' => true,
+ 'parsed_query' => [
+ ['name' => 'query', 'value' => 'irate(node_network_transmit_bytes_total\{device!="lo",instance="192.168.150.101"}[1m])']
+ ],
+ 'check_url' => 'http://localhost:9090/api/v1/query'
+ ]
+ ],
+ [
+ [
'expected' => TEST_ERROR,
'name' => 'URL parse validation',
'step_name' => 'Step URL parse validation',
@@ -381,11 +394,11 @@ class testFormWebStep extends CLegacyWebTest {
'errors' => 'Cannot convert POST data: Name of the form field should not exceed 255 characters.'
]
],
- // Variables -just numbers
+ // Variables - just numbers
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -just numbers',
+ 'name' => 'Variables - just numbers',
'step_name' => 'Step variables -just numbers',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -393,11 +406,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Variables -symbols
+ // Variables - symbols
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -just symbols',
+ 'name' => 'Variables - just symbols',
'step_name' => 'Step variables -just symbols',
'url' => 'http://www.zabbix.com',
'name' => 'Variables -symbols',
@@ -406,11 +419,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Variables -255 max allowed
+ // Variables - 255 max allowed
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -255 length',
+ 'name' => 'Variables - 255 length',
'step_name' => 'Step variables -255 length',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -422,11 +435,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Variables -without {}
+ // Variables - without {}
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -without {}',
+ 'name' => 'Variables - without {}',
'step_name' => 'Step variables -without {}',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -442,7 +455,7 @@ class testFormWebStep extends CLegacyWebTest {
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -without {}',
+ 'name' => 'Variables - without {}',
'step_name' => 'Step variables -without {}',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -458,7 +471,7 @@ class testFormWebStep extends CLegacyWebTest {
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -without {}',
+ 'name' => 'Variables - without {}',
'step_name' => 'Step variables -without {}',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -471,11 +484,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Variables -with the same names
+ // Variables - with the same names
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -with the same names',
+ 'name' => 'Variables - with the same names',
'step_name' => 'Step variables -with the same names',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -489,11 +502,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Variables -two different
+ // Variables - two different
[
[
'expected' => TEST_GOOD,
- 'name' => 'Variables -two different',
+ 'name' => 'Variables - two different',
'step_name' => 'Step variables -two different',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -502,11 +515,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Variables -empty name
+ // Variables - empty name
[
[
'expected' => TEST_BAD,
- 'name' => 'Variables -empty name',
+ 'name' => 'Variables - empty name',
'step_name' => 'Step variables -empty name',
'url' => 'http://www.zabbix.com',
'variables' => [
@@ -519,11 +532,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Headers -just numbers
+ // Headers - just numbers
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -just numbers',
+ 'name' => 'Headers - just numbers',
'step_name' => 'Step headers -just numbers',
'url' => 'http://www.zabbix.com',
'name' => 'Headers -just numbers',
@@ -532,11 +545,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Headers -just symbols
+ // Headers - just symbols
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -just symbols',
+ 'name' => 'Headers - just symbols',
'step_name' => 'Step headers -just symbols',
'url' => 'http://www.zabbix.com',
'headers' => [
@@ -544,11 +557,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Headers -255 length
+ // Headers - 255 length
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -255 length',
+ 'name' => 'Headers - 255 length',
'step_name' => 'Step headers -255 length',
'url' => 'http://www.zabbix.com',
'headers' => [
@@ -565,11 +578,11 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Headers -the same names and values
+ // Headers - the same names and values
[
[
'expected' => TEST_GOOD,
- 'name' => 'Headers -the same names and values',
+ 'name' => 'Headers - the same names and values',
'step_name' => 'Step headers -the same names and values',
'url' => 'http://www.zabbix.com',
'headers' => [
@@ -578,28 +591,23 @@ class testFormWebStep extends CLegacyWebTest {
]
]
],
- // Headers -empty value
+ // Headers - empty value
[
[
- 'expected' => TEST_BAD,
- 'name' => 'Headers -empty value',
+ 'expected' => TEST_GOOD,
+ 'name' => 'Headers - empty value',
'step_name' => 'Step headers -empty value',
'url' => 'http://www.zabbix.com',
'headers' => [
['name' => 'test']
- ],
- 'error_webform' => true,
- 'error_msg' => 'Cannot add web scenario',
- 'errors' => [
- 'Invalid parameter "/1/steps/1/headers/1/value": cannot be empty.'
]
]
],
- // Headers -empty name
+ // Headers - empty name
[
[
'expected' => TEST_BAD,
- 'name' => 'Headers -empty name',
+ 'name' => 'Headers - empty name',
'step_name' => 'Step headers -empty name',
'url' => 'http://www.zabbix.com',
'headers' => [
diff --git a/ui/tests/selenium/testGraphAxis.php b/ui/tests/selenium/testGraphAxis.php
index 06129d9f121..15248820d0c 100644
--- a/ui/tests/selenium/testGraphAxis.php
+++ b/ui/tests/selenium/testGraphAxis.php
@@ -152,6 +152,10 @@ class testGraphAxis extends CWebTest {
$this->page->login()->open('zabbix.php?action=userprofile.edit')->waitUntilReady();
$form = $this->query('name:user_form')->asForm()->waitUntilVisible()->one();
+ /** For Pacific/Chatham timezone on clock change dates (in September and April) there might be one fail
+ * for short period at night when info is not updated yet: 2:45 -> 3:45 or 3:45 -> 2:45.
+ * Tests need to be run again and fix observed when timezone format is updated.
+ */
if (CTestArrayHelper::get($data, 'settings.Time zone')) {
$data['settings']['Time zone'] = CDateTimeHelper::getTimeZoneFormat($data['settings']['Time zone']);
}
diff --git a/ui/tests/selenium/testPageDashboard.php b/ui/tests/selenium/testPageDashboard.php
deleted file mode 100644
index c64a78a2ccc..00000000000
--- a/ui/tests/selenium/testPageDashboard.php
+++ /dev/null
@@ -1,270 +0,0 @@
-<?php
-/*
-** Zabbix
-** Copyright (C) 2001-2022 Zabbix SIA
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
-** (at your option) any later version.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program; if not, write to the Free Software
-** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-**/
-
-require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
-
-use Facebook\WebDriver\WebDriverBy;
-
-/**
- * @backup profiles
- */
-class testPageDashboard extends CLegacyWebTest {
-
- public $graphCpu = 'CPU utilization';
- public $hostName = 'ЗАББИКС Сервер';
- public $graphMemory = 'Available memory in %';
- public $screenClock = 'Test screen (clock)';
- public $mapTest = 'Test map 1';
- public $mapTestId = 3;
-
- /**
- * @onBefore removeGuestFromDisabledGroup
- * @onAfter addGuestToDisabledGroup
- */
- public function testPageDashboard_CheckLayoutForDifferentUsers() {
- $users = ['super-admin', 'admin', 'user', 'guest'];
- foreach ($users as $user) {
- switch ($user) {
- case 'super-admin' :
- $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55b', 1);
- $this->zbxTestOpen('zabbix.php?action=dashboard.view');
- $this->zbxTestCheckNoRealHostnames();
- break;
- case 'admin' :
- $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55c', 4);
- $this->zbxTestOpen('zabbix.php?action=dashboard.view');
- break;
- case 'user';
- $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55d', 5);
- $this->zbxTestOpen('zabbix.php?action=dashboard.view');
- break;
- case 'guest';
- $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55e', 2);
- $this->zbxTestOpen('zabbix.php?action=dashboard.view');
- break;
- }
- $this->zbxTestCheckTitle('Dashboard');
- $this->zbxTestCheckHeader('Global view');
- if ($user != 'super-admin') {
- $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[8]//tr[@class='nothing-to-show']/td", 'No graphs added.');
- $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[7]//tr[@class='nothing-to-show']/td", 'No maps added.');
- $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[6]//tr[@class='nothing-to-show']/td", 'No data found.');
- }
- $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[8]//h4", 'Favorite graphs');
- $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[7]//h4", 'Favorite maps');
- $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[6]//h4", 'Problems');
- $this->zbxTestAssertElementPresentXpath("//div[@class='dashboard-grid']/div[5]//h4[text()='Problems by severity']");
- $this->zbxTestAssertElementPresentXpath("//div[@class='dashboard-grid']/div[4]//h4[text()='Local']");
- $this->zbxTestAssertElementPresentXpath("//div[@class='dashboard-grid']/div[3]//h4[text()='Host availability']");
- $this->zbxTestAssertElementText("//div[@class='dashboard-grid']/div[2]//h4", 'System information');
-
- // Logout.
- $this->zbxTestLogout();
- $this->zbxTestWaitForPageToLoad();
- $this->webDriver->manage()->deleteAllCookies();
- }
- }
-
- public function testPageDashboard_CheckDasboardPopupLayout() {
- $this->page->login()->open('zabbix.php?action=dashboard.view&new=1')->waitUntilReady();
- $dialog = COverlayDialogElement::find()->waitUntilVisible()->one();
- $this->assertEquals('Dashboard properties', $dialog->getTitle());
- $properties_form = $dialog->query('name:dashboard_properties_form')->asForm()->one();
- $this->assertEquals(['Owner', 'Name', 'Default page display period', 'Start slideshow automatically'],
- $properties_form->getLabels()->asText()
- );
-
- // Check available display periods.
- $properties_form->checkValue(['Default page display period' => '30 seconds', 'Name' => 'New dashboard']);
- $this->assertEquals('255', $properties_form->query('id:name')->one()->getAttribute('maxlength'));
- $this->assertEquals(['10 seconds', '30 seconds', '1 minute', '2 minutes', '10 minutes', '30 minutes', '1 hour'],
- $properties_form->query('name:display_period')->asDropdown()->one()->getOptions()->asText()
- );
-
- $properties_form->fill(['Name' => 'Dashboard creation']);
- $properties_form->submit();
- COverlayDialogElement::ensureNotPresent();
- $this->page->waitUntilReady();
- $dashboard = CDashboardElement::find()->one();
-
- // Check popup-menu options.
- $this->query('id:dashboard-add')->one()->click();
- $add_menu = CPopupMenuElement::find()->one()->waitUntilVisible();
- foreach (['Add widget' => true, 'Add page' => true, 'Paste widget' => false, 'Paste page'=> false] as $item => $enabled) {
- $this->assertTrue($add_menu->getItem($item)->isEnabled($enabled));
- }
- $dashboard->cancelEditing();
- }
-
- public function testPageDashboard_AddFavouriteGraphs() {
- $cpu_itemid = CDBHelper::getValue('SELECT itemid FROM items WHERE hostid=10084 AND name='.zbx_dbstr($this->graphCpu));
- $memory_itemid = CDBHelper::getValue('SELECT itemid FROM items WHERE hostid=10084 AND name='.zbx_dbstr($this->graphMemory));
-
- $this->zbxTestLogin('zabbix.php?action=latest.view');
- $this->zbxTestCheckHeader('Latest data');
-
- $filter = $this->query('name:zbx_filter')->asForm()->one();
- $filter->getField('Hosts')->fill($this->hostName);
- $filter->getField('Name')->fill($this->graphCpu);
- $filter->submit();
- $cpu_link = $this->query('link:Graph')->one();
- $cpu_link->click();
-
- $this->zbxTestWaitUntilElementVisible(WebDriverBy::xpath("//button[@id='addrm_fav']"));
- $this->zbxTestAssertAttribute("//button[@id='addrm_fav']", 'title', 'Add to favorites');
- $this->zbxTestClickWait('addrm_fav');
- $this->zbxTestWaitUntilElementVisible(WebDriverBy::xpath('//button[@id="addrm_fav" and @title="Remove from favorites"]'));
- $this->zbxTestAssertAttribute("//button[@id='addrm_fav']", 'title', 'Remove from favorites');
-
- $this->page->open('zabbix.php?action=latest.view');
- $filter->invalidate();
- $filter->getField('Hosts')->fill($this->hostName);
- $filter->getField('Name')->fill($this->graphMemory);
- $filter->submit();
- $memory_link = $this->query('link:Graph')->one();
- $memory_link->click();
-
- $this->zbxTestWaitUntilElementVisible(WebDriverBy::xpath("//button[@id='addrm_fav']"));
- $this->zbxTestAssertAttribute("//button[@id='addrm_fav']", 'title', 'Add to favorites');
- $this->zbxTestClickWait('addrm_fav');
- $this->query('id:addrm_fav')->one()->waitUntilAttributesPresent(['title' => 'Remove from favorites']);
- $this->zbxTestAssertAttribute("//button[@id='addrm_fav']", 'title', 'Remove from favorites');
-
- $this->zbxTestOpen('zabbix.php?action=dashboard.view');
- $this->page->waitUntilReady();
- $url_xpath = '//div[@class="dashboard-grid"]/div[8]//a[@href=';
-
- foreach ([$this->graphCpu => $cpu_itemid, $this->graphMemory => $memory_itemid] as $graph => $itemid) {
- $graph_url = 'history.php?action=showgraph&itemids%5B0%5D='.$itemid;
- $this->zbxTestAssertElementText($url_xpath.CXPathHelper::escapeQuotes($graph_url).']', 'ЗАББИКС Сервер: '.$graph);
- $this->assertEquals(1, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='
- .zbx_dbstr('web.favorite.graphids').' AND value_id='.$itemid)
- );
- }
- }
-
- public function testPageDashboard_RemoveFavouriteGraphs() {
- $exception = null;
-
- try {
- $this->zbxTestLogin('zabbix.php?action=dashboard.view');
- $FavouriteGraphs = DBfetchArray(DBselect('SELECT value_id FROM profiles WHERE idx='.zbx_dbstr('web.favorite.graphids')));
- foreach ($FavouriteGraphs as $FavouriteGraph) {
- $this->zbxTestWaitUntilElementPresent(WebDriverBy::xpath('//div[@class="dashboard-grid-widget-container"]/div[2]//button[@onclick="rm4favorites(\'itemid\',\''.$FavouriteGraph['value_id'].'\')"]'));
- $this->zbxTestClickXpathWait('//div[@class="dashboard-grid-widget-container"]/div[2]//button[@onclick="rm4favorites(\'itemid\',\''.$FavouriteGraph['value_id'].'\')"]');
- $this->zbxTestWaitUntilElementNotVisible(WebDriverBy::xpath('//div[@class="dashboard-grid-widget-container"]/div[2]//button[@onclick="rm4favorites(\'itemid\',\''.$FavouriteGraph['value_id'].'\')"]'));
- }
- $this->zbxTestAssertElementText('//div[@class="dashboard-grid-widget-container"]//tr[@class="nothing-to-show"]/td', 'No graphs added.');
- $this->assertEquals(0, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='.zbx_dbstr('web.favorite.graphids')));
- }
- catch (Exception $e) {
- $exception = $e;
- }
-
- if ($exception !== null) {
- throw $exception;
- }
- }
-
- public function testPageDashboard_AddFavouriteMap() {
- $this->zbxTestLogin('sysmaps.php');
- $this->zbxTestCheckHeader('Maps');
- $this->zbxTestClickLinkTextWait($this->mapTest);
- $this->zbxTestWaitUntilElementVisible(WebDriverBy::xpath("//button[@id='addrm_fav']"));
- $this->zbxTestAssertAttribute("//button[@id='addrm_fav']", 'title', 'Add to favorites');
- $this->zbxTestClickWait('addrm_fav');
- $this->query('id:addrm_fav')->one()->waitUntilAttributesPresent(['title' => 'Remove from favorites']);
- $this->zbxTestAssertAttribute("//button[@id='addrm_fav']", 'title', 'Remove from favorites');
-
- $this->zbxTestOpen('zabbix.php?action=dashboard.view');
- $this->zbxTestAssertElementText('//div[@class="dashboard-grid-widget-container"]/div[2]//a[@href="zabbix.php?action=map.view&sysmapid='.$this->mapTestId.'"]', $this->mapTest);
- $this->assertEquals(1, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='.zbx_dbstr('web.favorite.sysmapids').' AND value_id='.$this->mapTestId));
- }
-
- public function testPageDashboard_RemoveFavouriteMaps() {
- $this->page->login()->open('zabbix.php?action=dashboard.view&dashboardid=1');
- $widget_content = CDashboardElement::find()->one()->getWidget('Favorite maps')->getContent();
- $favourite_maps = DBfetchArray(DBselect('SELECT value_id FROM profiles WHERE idx='.
- zbx_dbstr('web.favorite.sysmapids')));
-
- foreach ($favourite_maps as $favourite_map) {
- $widget_content->query('xpath://button[contains(@onclick, "(\'sysmapid\',\''.
- $favourite_map['value_id'].'\')")]')->waitUntilClickable()->one()->click();
- $map_name = CDBHelper::getValue('SELECT name FROM sysmaps WHERE sysmapid='.
- zbx_dbstr($favourite_map['value_id']));
- $widget_content->query('link', $map_name)->waitUntilNotPresent();
- }
-
- $this->assertTrue($widget_content->query('xpath://table//td[text()="No maps added."]')->waitUntilVisible()
- ->one()->isPresent());
- $this->assertEquals(0, CDBHelper::getCount('SELECT profileid FROM profiles WHERE idx='.
- zbx_dbstr('web.favorite.sysmapids')));
- }
-
- public function testPageDashboard_KioskMode() {
- $this->zbxTestLogin('zabbix.php?action=dashboard.view', false);
- $this->zbxTestCheckHeader('Global view');
- $this->zbxTestAssertElementPresentXpath("//header");
-
- $this->zbxTestClickXpathWait("//button[contains(@class, 'btn-kiosk')]");
- $this->zbxTestWaitForPageToLoad();
- $this->zbxTestWaitUntilElementPresent(WebDriverBy::xpath('//button[@title="Normal view"]'));
- $this->zbxTestAssertElementNotPresentXpath("//header");
- $this->zbxTestAssertElementNotPresentXpath("//header[@class='header-title']");
- $this->zbxTestAssertElementNotPresentXpath("//ul[contains(@class, 'filter-breadcrumb')]");
- $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-min')]", 'title', 'Normal view');
-
- $this->query('class:btn-min')->one()->forceClick();
- $this->zbxTestWaitForPageToLoad();
- $this->zbxTestWaitUntilElementPresent(WebDriverBy::xpath("//button[contains(@class, 'btn-kiosk')]"));
- $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-kiosk')]", 'title', 'Kiosk mode');
- $this->zbxTestAssertElementPresentXpath("//header");
- $this->zbxTestAssertElementPresentXpath("//header[@class='header-title']");
- $this->zbxTestAssertElementPresentXpath('//ul[@class="breadcrumbs"]');
- }
-
- public function testPageDashboard_KioskModeUrlParameter() {
- // Set layout mode to kiosk view.
- $this->zbxTestLogin('zabbix.php?action=dashboard.view&kiosk=1', false);
- $this->zbxTestWaitForPageToLoad();
- $this->zbxTestWaitUntilElementPresent(WebDriverBy::xpath('//button[@title="Normal view"]'));
- $this->zbxTestAssertElementNotPresentXpath("//header");
- $this->zbxTestAssertElementNotPresentXpath("//header[@class='header-title']");
- $this->zbxTestAssertElementNotPresentXpath("//ul[contains(@class, 'filter-breadcrumb')]");
- $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-min')]", 'title', 'Normal view');
-
- // Set layout mode to default layout.
- $this->zbxTestOpen('zabbix.php?action=dashboard.view&kiosk=0');
- $this->zbxTestCheckHeader('Global view');
- $this->zbxTestAssertElementPresentXpath("//header");
- $this->zbxTestAssertAttribute("//button[contains(@class, 'btn-kiosk')]", 'title', 'Kiosk mode');
- }
-
- /**
- * Guest user needs to be out of "Disabled" group to have access to frontend.
- */
- public function removeGuestFromDisabledGroup() {
- DBexecute('DELETE FROM users_groups WHERE userid=2 AND usrgrpid=9');
- }
-
- public function addGuestToDisabledGroup() {
- DBexecute('INSERT INTO users_groups (id, usrgrpid, userid) VALUES (1550, 9, 2)');
- }
-}
diff --git a/ui/tests/selenium/testPageDashboardWidgets.php b/ui/tests/selenium/testPageDashboardWidgets.php
index 9d84177edb6..0359f26fce9 100644
--- a/ui/tests/selenium/testPageDashboardWidgets.php
+++ b/ui/tests/selenium/testPageDashboardWidgets.php
@@ -18,10 +18,13 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__) . '/../include/CWebTest.php';
/**
* @backup dashboard, profiles
+ *
+ * @dataSource LoginUsers
*/
class testPageDashboardWidgets extends CWebTest {
@@ -171,39 +174,6 @@ class testPageDashboardWidgets extends CWebTest {
}
/**
- * Check empty dashboard.
- */
- public function testPageDashboardWidgets_checkEmptyDashboard() {
- $this->page->login()->open('zabbix.php?action=dashboard.list');
-
- // Create a new dashboard.
- $this->query('button:Create dashboard')->one()->click();
- $this->page->waitUntilReady();
-
- // Wait until overlay dialog is visible and ready.
- $dialog = COverlayDialogElement::find()->one()->waitUntilReady();
-
- // Check title of a dialog.
- $this->assertEquals('Dashboard properties', $dialog->getTitle());
- // Close the dialog.
- $dialog->close();
-
- $dashboard = CDashboardElement::find()->one();
- // Check if dashboard is empty.
- $this->assertTrue($dashboard->isEmpty());
-
- // Open a new widget form.
- $overlay = $dashboard->edit()->addWidget();
- // Wait until add widget dialog is shown and close it.
- $overlay->close();
-
- // Check if dashboard is still empty.
- $this->assertTrue($dashboard->isEmpty());
- // Cancel dashboard editing.
- $dashboard->cancelEditing();
- }
-
- /**
* Create dashboard with clock widget.
*/
public function testPageDashboardWidgets_checkDashboardCreate() {
diff --git a/ui/tests/selenium/testPageLatestData.php b/ui/tests/selenium/testPageLatestData.php
index f6b575f792d..f0f0db60635 100644
--- a/ui/tests/selenium/testPageLatestData.php
+++ b/ui/tests/selenium/testPageLatestData.php
@@ -109,7 +109,7 @@ class testPageLatestData extends CWebTest {
}
public function testPageLatestData_CheckLayout() {
- $this->page->login()->open('zabbix.php?action=latest.view')->waitUntilReady();
+ $this->page->login()->open('zabbix.php?action=latest.view&filter_reset=1')->waitUntilReady();
$this->page->assertTitle('Latest data');
$this->page->assertHeader('Latest data');
$form = $this->query('name:zbx_filter')->asForm()->one();
@@ -145,7 +145,7 @@ class testPageLatestData extends CWebTest {
}
$this->query('button:Reset')->waitUntilClickable()->one()->click();
- $this->page->waitUntilReady();
+ $subfilter->waitUntilReloaded();
// Check table headers.
$details_headers = [
@@ -157,7 +157,7 @@ class testPageLatestData extends CWebTest {
foreach ($details_headers as $status => $headers) {
$this->query('name:show_details')->one()->asCheckbox()->set($status);
$form->submit();
- $this->page->waitUntilReady();
+ $subfilter->waitUntilReloaded();
$this->assertEquals($headers, $this->getTable()->getHeadersText());
}
@@ -463,9 +463,11 @@ class testPageLatestData extends CWebTest {
public function testPageLatestData_Filter($data) {
$this->page->login()->open('zabbix.php?action=latest.view')->waitUntilReady();
$form = $this->query('name:zbx_filter')->waitUntilPresent()->asForm()->one();
+ $table = $this->query('xpath://table[contains(@class, "overflow-ellipsis")]')->asTable()->waitUntilPresent()->one();
// Reset filter in case if some filtering remained before ongoing test case.
$this->query('button:Reset')->one()->click();
+ $table->waitUntilReloaded();
// Fill filter form with data.
$form->fill(CTestArrayHelper::get($data, 'filter'));
@@ -480,7 +482,7 @@ class testPageLatestData extends CWebTest {
$form->getField('id:tag_name_format_0')->asSegmentedRadio()->fill(CTestArrayHelper::get($data, 'Tags name', 'Full'));
$form->submit();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
// Check filtered result.
$this->assertTableData($data['result'], $this->getTableSelector());
@@ -494,6 +496,7 @@ class testPageLatestData extends CWebTest {
// Reset filter not to impact the results of next tests.
$this->query('button:Reset')->one()->click();
+ $table->waitUntilReloaded();
}
public static function getSubfilterData() {
@@ -817,9 +820,11 @@ class testPageLatestData extends CWebTest {
$this->page->login()->open('zabbix.php?action=latest.view')->waitUntilReady();
$form = $this->query('name:zbx_filter')->asForm()->one();
+ $table = $this->query('xpath://table[contains(@class, "overflow-ellipsis")]')->asTable()->waitUntilPresent()->one();
$this->query('button:Reset')->one()->click();
+ $table->waitUntilReloaded();
$form->fill(['Name' => '4_item'])->submit();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
foreach (['Last check', 'Last value'] as $column) {
if ($column === 'Last value') {
diff --git a/ui/tests/selenium/testPageMonitoringHosts.php b/ui/tests/selenium/testPageMonitoringHosts.php
index c92153f66cf..ee8907833a6 100644
--- a/ui/tests/selenium/testPageMonitoringHosts.php
+++ b/ui/tests/selenium/testPageMonitoringHosts.php
@@ -24,6 +24,8 @@ require_once dirname(__FILE__).'/traits/TagTrait.php';
require_once dirname(__FILE__).'/../include/helpers/CDataHelper.php';
/**
+ * @backup profiles
+ *
* @dataSource TagFilter
*/
class testPageMonitoringHosts extends CWebTest {
@@ -52,7 +54,9 @@ class testPageMonitoringHosts extends CWebTest {
// Check filter collapse/expand.
foreach ([true, false] as $status) {
- $this->assertTrue($this->query('xpath://li[contains(@class, "expanded")]')->one()->isPresent($status));
+ $this->assertTrue($this->query('xpath://ul[@class="ui-sortable-container ui-sortable"]//li[contains(@class, "selected")]')
+ ->one()->isPresent($status)
+ );
$this->query('xpath://a[@aria-label="Home"]')->one()->click();
}
@@ -351,14 +355,15 @@ class testPageMonitoringHosts extends CWebTest {
* @dataProvider getCheckFilterData
*/
public function testPageMonitoringHosts_CheckFilter($data) {
- $this->page->login()->open('zabbix.php?action=host.view&filter_rst=1');
+ $this->page->login()->open('zabbix.php?action=host.view&filter_reset=1');
$form = $this->query('name:zbx_filter')->waitUntilPresent()->asForm()->one();
$form->fill($data['filter']);
- $result_form = $this->query('xpath://form[@name="host_view"]')->one();
+ $table = $this->query('class:list-table')->waitUntilPresent()->asTable()->one();
$this->query('button:Apply')->waitUntilClickable()->one()->click();
- $this->page->waitUntilReady();
- $result_form->waitUntilReloaded();
+ $table->waitUntilReloaded();
$this->assertTableDataColumn($data['expected']);
+ $this->query('button:Reset')->waitUntilClickable()->one()->click();
+ $table->waitUntilReloaded();
}
public static function getTagsFilterData() {
@@ -780,16 +785,19 @@ class testPageMonitoringHosts extends CWebTest {
public function testPageMonitoringHosts_TagsFilter($data) {
$this->page->login()->open('zabbix.php?port=10051&action=host.view&groupids%5B%5D=4');
$form = $this->query('name:zbx_filter')->waitUntilPresent()->asForm()->one();
+ $table = $this->query('class:list-table')->waitUntilPresent()->one();
$form->fill(['id:evaltype_0' => $data['tag_options']['type']]);
$this->setTagSelector('id:tags_0');
$this->setTags($data['tag_options']['tags']);
$this->query('button:Apply')->one()->waitUntilClickable()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
$this->assertTableDataColumn(CTestArrayHelper::get($data, 'result', []));
+ $this->query('button:Reset')->one()->waitUntilClickable()->click();
+ $table->waitUntilReloaded();
}
public function testPageMonitoringHosts_ResetButtonCheck() {
- $this->page->login()->open('zabbix.php?action=host.view&filter_rst=1');
+ $this->page->login()->open('zabbix.php?action=host.view&filter_reset=1');
$form = $this->query('name:zbx_filter')->waitUntilPresent()->asForm()->one();
$this->page->waitUntilReady();
$table = $this->query('class:list-table')->asTable()->one();
@@ -802,7 +810,7 @@ class testPageMonitoringHosts extends CWebTest {
// Filter hosts.
$form->fill(['Name' => 'Empty host']);
$this->query('button:Apply')->one()->waitUntilClickable()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
// Check that filtered count matches expected.
$this->assertEquals(1, $table->getRows()->count());
@@ -810,7 +818,7 @@ class testPageMonitoringHosts extends CWebTest {
// After pressing reset button, check that previous hosts are displayed again.
$this->query('button:Reset')->one()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
$reset_rows_count = $table->getRows()->count();
$this->assertEquals($start_rows_count, $reset_rows_count);
$this->assertTableStats($reset_rows_count);
@@ -819,19 +827,20 @@ class testPageMonitoringHosts extends CWebTest {
// Checking that Show suppressed problems filter works.
public function testPageMonitoringHosts_ShowSuppresed() {
- $this->page->login()->open('zabbix.php?action=host.view&filter_rst=1');
+ $this->page->login()->open('zabbix.php?action=host.view&filter_reset=1');
$form = $this->query('name:zbx_filter')->waitUntilPresent()->asForm()->one();
$this->page->waitUntilReady();
$table = $this->query('class:list-table')->asTable()->one();
$form->fill(['Severity' => ['Not classified', 'Information', 'Warning', 'Average', 'High', 'Disaster']]);
$this->query('button:Apply')->one()->waitUntilClickable()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
foreach ([true, false] as $show) {
$form->query('id:show_suppressed_0')->asCheckbox()->one()->fill($show);
$this->query('button:Apply')->one()->waitUntilClickable()->click();
- $this->page->waitUntilReady();
+ $table->waitUntilReloaded();
$this->assertTrue($table->findRow('Name', 'Host for suppression')->isPresent($show));
}
+ $this->query('button:Reset')->one()->click();
}
public static function getEnabledLinksData() {
@@ -880,7 +889,7 @@ class testPageMonitoringHosts extends CWebTest {
* Check enabled links and that correct host is displayed.
*/
public function testPageMonitoringHosts_EnabledLinks($data) {
- $this->page->login()->open('zabbix.php?action=host.view&filter_rst=1');
+ $this->page->login()->open('zabbix.php?action=host.view&filter_reset=1');
$form = $this->query('name:zbx_filter')->waitUntilPresent()->asForm()->one();
switch ($data['name']) {
case 'Dynamic widgets H1':
@@ -1002,7 +1011,7 @@ class testPageMonitoringHosts extends CWebTest {
* Click on host name from the table and check displayed popup context.
*/
public function testPageMonitoringHosts_HostContextMenu($data) {
- $this->page->login()->open('zabbix.php?action=host.view&filter_rst=1')->waitUntilReady();
+ $this->page->login()->open('zabbix.php?action=host.view&filter_reset=1')->waitUntilReady();
$row = $this->query('class:list-table')->asTable()->one()->findRow('Name', $data['name']);
$row->query('link', $data['name'])->one()->click();
$this->page->waitUntilReady();
@@ -1075,7 +1084,7 @@ class testPageMonitoringHosts extends CWebTest {
*/
public function testPageMonitoringHosts_TableSorting() {
// Sort by name and status.
- $this->page->login()->open('zabbix.php?action=host.view&filter_rst=1')->waitUntilReady();
+ $this->page->login()->open('zabbix.php?action=host.view&filter_reset=1')->waitUntilReady();
foreach (['Name', 'Status'] as $listing) {
$query = $this->query('xpath://a[@href and text()="'.$listing.'"]');
$query->one()->click();
diff --git a/ui/tests/selenium/testPageTemplates.php b/ui/tests/selenium/testPageTemplates.php
index 6fe5e5533c7..f191d3b04ee 100644
--- a/ui/tests/selenium/testPageTemplates.php
+++ b/ui/tests/selenium/testPageTemplates.php
@@ -23,6 +23,8 @@ require_once dirname(__FILE__).'/traits/TagTrait.php';
require_once dirname(__FILE__).'/traits/TableTrait.php';
/**
+ * @backup profiles
+ *
* @dataSource TagFilter
*/
class testPageTemplates extends CLegacyWebTest {
diff --git a/ui/tests/selenium/testTagBasedPermissions.php b/ui/tests/selenium/testTagBasedPermissions.php
index bb521909db0..24e69952bda 100644
--- a/ui/tests/selenium/testTagBasedPermissions.php
+++ b/ui/tests/selenium/testTagBasedPermissions.php
@@ -19,6 +19,7 @@
**/
require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
+require_once dirname(__FILE__).'/traits/TableTrait.php';
use Facebook\WebDriver\WebDriverBy;
@@ -26,6 +27,9 @@ use Facebook\WebDriver\WebDriverBy;
* Test tag based permissions
*/
class testTagBasedPermissions extends CLegacyWebTest {
+
+ use TableTrait;
+
public $user = 'Tag-user';
public $trigger_host = 'Host for tag permissions';
@@ -189,6 +193,7 @@ class testTagBasedPermissions extends CLegacyWebTest {
// Check problem displaying on Problem page
$this->zbxTestOpen('zabbix.php?action=problem.view');
+ $table = $this->query('xpath://table[@class="list-table"]')->asTable()->one()->waitUntilVisible();
$this->zbxTestTextNotPresent($data['trigger_names']);
$this->zbxTestAssertElementText("//div[@class='table-stats']", 'Displaying 0 of 0 found');
@@ -201,13 +206,15 @@ class testTagBasedPermissions extends CLegacyWebTest {
$this->zbxTestClickLinkTextWait($name);
// Apply filter
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $table->waitUntilReloaded();
$this->zbxTestTextPresent($name);
$this->zbxTestAssertElementText("//div[@class='table-stats']", 'Displaying 0 of 0 found');
//Reset filter
$this->zbxTestClickButtonText('Reset');
+ $table->waitUntilReloaded();
}
- $this->zbxTestTextNotPresent($data['trigger_names']);
+
+ $this->assertTableData([]);
}
public static function create() {
@@ -294,6 +301,7 @@ class testTagBasedPermissions extends CLegacyWebTest {
// Check problem displaying on Problem page
$this->zbxTestOpen('zabbix.php?action=problem.view');
+ $table = $this->query('xpath://table[@class="list-table"]')->asTable()->one()->waitUntilVisible();
$this->zbxTestTextPresent($data['trigger_names']);
$this->zbxTestAssertElementText("//div[@class='table-stats']", 'Displaying '.$countTriggers.' of '.$countTriggers.' found');
@@ -307,11 +315,12 @@ class testTagBasedPermissions extends CLegacyWebTest {
$this->zbxTestClickXpathWait("//div[@class='overlay-dialogue-body']//a[text()='$name']");
// Apply filter
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $table->waitUntilReloaded();
$this->zbxTestTextPresent($name);
$this->zbxTestAssertElementText("//div[@class='table-stats']", 'Displaying 1 of 1 found');
//Reset filter
$this->zbxTestClickButtonText('Reset');
+ $table->waitUntilReloaded();
}
// Check Event details page
@@ -396,6 +405,7 @@ class testTagBasedPermissions extends CLegacyWebTest {
// Check problem displaying on Problem page
$this->zbxTestOpen('zabbix.php?action=problem.view');
+ $table = $this->query('xpath://table[@class="list-table"]')->asTable()->one()->waitUntilVisible();
$this->zbxTestTextPresent($data['trigger_names']);
$this->zbxTestAssertElementText("//div[@class='table-stats']", 'Displaying '.$countTriggers.' of '.$countTriggers.' found');
@@ -408,11 +418,12 @@ class testTagBasedPermissions extends CLegacyWebTest {
$this->zbxTestClickXpathWait("//div[@class='overlay-dialogue-body']//a[text()='$name']");
// Apply filter
$this->query('name:filter_apply')->one()->click();
- $this->zbxTestWaitForPageToLoad();
+ $table->waitUntilReloaded();
$this->zbxTestTextPresent($name);
$this->zbxTestAssertElementText("//div[@class='table-stats']", 'Displaying 1 of 1 found');
//Reset filter
$this->zbxTestClickButtonText('Reset');
+ $table->waitUntilReloaded();
}
// Check Event details page
diff --git a/ui/tests/selenium/traits/TableTrait.php b/ui/tests/selenium/traits/TableTrait.php
index 9e192518d07..825b34809bb 100644
--- a/ui/tests/selenium/traits/TableTrait.php
+++ b/ui/tests/selenium/traits/TableTrait.php
@@ -80,6 +80,49 @@ trait TableTrait {
}
/**
+ * Check if values in table rows have data from data provider.
+ *
+ * @param array $data data array to be matched with result in table
+ * @param string $selector table selector
+ *
+ * @throws Exception
+ */
+ public function assertTableHasData($data = [], $selector = 'class:list-table') {
+ $table_rows = $this->query($selector)->asTable()->one()->index();
+
+ if (!$data) {
+ // Check that table contain one row with text "No data found."
+ $this->assertEquals(['No data found.'], $rows->asText());
+
+ return;
+ }
+
+ foreach ($data as $data_row) {
+ $found = false;
+
+ foreach ($table_rows as $table_row) {
+ $match = true;
+
+ foreach ($data_row as $key => $value) {
+ if (!isset($table_row[$key]) || $table_row[$key] != $data_row[$key]) {
+ $match = false;
+ break;
+ }
+ }
+
+ if ($match) {
+ $found = true;
+ break;
+ }
+ }
+
+ if (!$found) {
+ throw new \Exception('Row "'.implode(', ', $data_row).'" was not found in table.');
+ }
+ }
+ }
+
+ /**
* Check if values in table column match data from data provider.
*
* @param array $rows data array to be match with result in table
@@ -95,6 +138,21 @@ trait TableTrait {
}
/**
+ * Check if values in table column have data from data provider.
+ *
+ * @param array $rows data array to be matched with result in table
+ * @param string $field table column name
+ */
+ public function assertTableHasDataColumn($rows = [], $field = 'Name', $selector = 'class:list-table') {
+ $data = [];
+ foreach ($rows as $row) {
+ $data[] = [$field => $row];
+ }
+
+ $this->assertTableHasData($data, $selector);
+ }
+
+ /**
* Select table rows.
*
* @param mixed $data rows to be selected
diff --git a/ui/tests/selenium/users/testFormUser.php b/ui/tests/selenium/users/testFormUser.php
index cf1c1162393..315cad69ea6 100644
--- a/ui/tests/selenium/users/testFormUser.php
+++ b/ui/tests/selenium/users/testFormUser.php
@@ -18,10 +18,12 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__) . '/../../include/CWebTest.php';
/**
* @backup users
+ * @dataSource LoginUsers
*/
class testFormUser extends CWebTest {
diff --git a/ui/tests/selenium/users/testFormUserMedia.php b/ui/tests/selenium/users/testFormUserMedia.php
index c467539f302..14e3c89f315 100644
--- a/ui/tests/selenium/users/testFormUserMedia.php
+++ b/ui/tests/selenium/users/testFormUserMedia.php
@@ -18,10 +18,12 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
/**
* @backup users
+ * @dataSource LoginUsers
*/
class testFormUserMedia extends CWebTest {
diff --git a/ui/tests/selenium/users/testFormUserPermissions.php b/ui/tests/selenium/users/testFormUserPermissions.php
index bce0d2622fe..17138ca44dc 100644
--- a/ui/tests/selenium/users/testFormUserPermissions.php
+++ b/ui/tests/selenium/users/testFormUserPermissions.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CWebTest.php';
require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php';
require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php';
diff --git a/ui/tests/selenium/users/testFormUserProfile.php b/ui/tests/selenium/users/testFormUserProfile.php
index 24cb2a68647..64d73a79cac 100644
--- a/ui/tests/selenium/users/testFormUserProfile.php
+++ b/ui/tests/selenium/users/testFormUserProfile.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
use Facebook\WebDriver\WebDriverBy;
diff --git a/ui/tests/selenium/users/testPageUsers.php b/ui/tests/selenium/users/testPageUsers.php
index ffabce8a358..f41bec80aff 100644
--- a/ui/tests/selenium/users/testPageUsers.php
+++ b/ui/tests/selenium/users/testPageUsers.php
@@ -18,6 +18,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
class testPageUsers extends CLegacyWebTest {
diff --git a/ui/tests/unit/include/classes/validators/CApiInputValidatorTest.php b/ui/tests/unit/include/classes/validators/CApiInputValidatorTest.php
index cc1b1636680..a96674902a7 100644
--- a/ui/tests/unit/include/classes/validators/CApiInputValidatorTest.php
+++ b/ui/tests/unit/include/classes/validators/CApiInputValidatorTest.php
@@ -5402,6 +5402,30 @@ class CApiInputValidatorTest extends TestCase {
],
'/',
'Invalid parameter "/active_till": cannot be less than or equal to the value of parameter "/active_since".'
+ ],
+ [
+ ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['type', 'name', 'value']],
+ ['type' => '3', 'name2' => '2', 'value' => ['1', '2', '3', '4', '1']],
+ '/',
+ 'Invalid parameter "/": unexpected parameter "name2".'
+ ],
+ [
+ ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['type', 'name', 'value']],
+ ['type' => '3', 'name' => null, 'value' => ['1', '2', '3', '4', '1']],
+ '/',
+ ['type' => ['3'], 'name' => null, 'value' => ['1', '2', '3', '4', '1']]
+ ],
+ [
+ ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['type', 'name', 'value']],
+ ['type' => '3', 'name' => '2', 'value' => ['1', '2', '3', null, '1']],
+ '/',
+ 'Invalid parameter "/value/4": a character string, integer or floating point value is expected.'
+ ],
+ [
+ ['type' => API_FILTER, 'flags' => API_ALLOW_NULL, 'fields' => ['type', 'name', 'value']],
+ ['type' => 3, 'name' => 2, 'value' => ['1', 2.5, '3', '4', '1']],
+ '/',
+ ['type' => [3], 'name' => [2], 'value' => ['1', 2.5, '3', '4', '1']]
]
];
}