diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 65532bd5968..67f47d28876 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -292,6 +292,7 @@ /packages/httpjson @elastic/security-service-integrations /packages/ibm_qradar @elastic/security-service-integrations /packages/ibmmq @elastic/obs-infraobs-integrations +/packages/ibmmq_otel @elastic/obs-infraobs-integrations /packages/iis @elastic/obs-infraobs-integrations /packages/iis_input_otel @elastic/ecosystem /packages/iis_otel @elastic/obs-infraobs-integrations diff --git a/packages/ibmmq_otel/_dev/shared/ibmmq-error-analysis.yaml b/packages/ibmmq_otel/_dev/shared/ibmmq-error-analysis.yaml new file mode 100644 index 00000000000..b51349fe76e --- /dev/null +++ b/packages/ibmmq_otel/_dev/shared/ibmmq-error-analysis.yaml @@ -0,0 +1,456 @@ +dashboards: + - id: ibmmq_otel-error-analysis + name: '[IBM MQ OTel] Error Analysis' + minimum_kibana_version: '8.18.0' + description: >- + Comprehensive error monitoring for IBM MQ queue managers covering all failed + API operations, transaction rollbacks, expired messages, and FDC file generation. + time_range: + from: "now-1h" + to: "now" + settings: + margins: true + sync: + cursor: true + tooltips: false + colors: false + filters: + - field: data_stream.dataset + equals: ibmmq.otel + + panels: + # ─── Navigation ─────────────────────────────────────────────────── + - title: Navigation + size: {w: 48, h: 2} + links: + layout: horizontal + items: + - label: Overview + dashboard: ibmmq_otel-overview + - label: Message Traffic + dashboard: ibmmq_otel-message-traffic + - label: Error Analysis + dashboard: ibmmq_otel-error-analysis + - label: Resources & Performance + dashboard: ibmmq_otel-resources + + # ─── Dashboard Overview Panel ──────────────────────────────────── + - hide_title: true + size: {w: 16, h: 12} + markdown: + content: | + ## [IBM MQ OTel] Error Analysis + + This dashboard monitors all IBM MQ error signals: + - Core messaging failures (put, get, browse) + - Connection and object access failures + - Pub/sub and subscription errors + - Administrative operation failures + - Transaction rollback rates vs commits + - Expired messages and FDC file generation + + # ─── KPI Row 1 ──────────────────────────────────────────────────── + - title: Failed Put Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + f_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), + f_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)) + - EVAL failed_put_rate = COALESCE(f_put, 0) + COALESCE(f_put1, 0) + primary: + field: failed_put_rate + label: Failed Puts + format: + type: number + compact: true + suffix: " /s" + + - title: Failed Get Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + f_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), + f_browse = SUM(RATE(ibmmq_qmgr_failed_browse_total)) + - EVAL failed_get_rate = COALESCE(f_get, 0) + COALESCE(f_browse, 0) + primary: + field: failed_get_rate + label: Failed Gets + format: + type: number + compact: true + suffix: " /s" + + - title: Failed Connection Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_failed_mqconn_mqconnx_total IS NOT NULL + - STATS failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)) + primary: + field: failed_conn + label: Failed Connects + format: + type: number + compact: true + suffix: " /s" + + - title: Rollback Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_rollback_total IS NOT NULL + - STATS rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)) + primary: + field: rollback_rate + label: Rollbacks + format: + type: number + compact: true + suffix: " /s" + + # ─── KPI Row 2 ──────────────────────────────────────────────────── + - title: Expired Messages Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_expired_message_total IS NOT NULL + - STATS expired_rate = SUM(RATE(ibmmq_qmgr_expired_message_total)) + primary: + field: expired_rate + label: Expired Msgs + format: + type: number + compact: true + suffix: " /s" + + - title: FDC Files + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_fdc_files IS NOT NULL + - STATS fdc_count = SUM(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) + primary: + field: fdc_count + label: FDC Files + format: + type: number + decimals: 0 + + - title: Failed Open Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_failed_mqopen_total IS NOT NULL + - STATS failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)) + primary: + field: failed_open + label: Failed Opens + format: + type: number + compact: true + suffix: " /s" + + - title: Failed Topic Puts + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_failed_topic_mqput_mqput1_total IS NOT NULL + - STATS failed_topic = SUM(RATE(ibmmq_qmgr_failed_topic_mqput_mqput1_total)) + primary: + field: failed_topic + label: Failed Topic Puts + format: + type: number + compact: true + suffix: " /s" + + # ─── Core Messaging Failures ──────────────────────────────────────── + - title: Core Messaging Failures Over Time + size: {w: 24, h: 12} + esql: + type: area + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), + failed_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), + failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), + failed_browse = SUM(RATE(ibmmq_qmgr_failed_browse_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: failed_put + label: Failed MQPUT + - field: failed_put1 + label: Failed MQPUT1 + - field: failed_get + label: Failed MQGET + - field: failed_browse + label: Failed Browse + legend: + visible: show + position: right + + # ─── Connection & Access Failures ─────────────────────────────────── + - title: Connection & Access Failures Over Time + size: {w: 24, h: 12} + esql: + type: area + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), + failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)), + failed_close = SUM(RATE(ibmmq_qmgr_failed_mqclose_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: failed_conn + label: Failed Connect + - field: failed_open + label: Failed Open + - field: failed_close + label: Failed Close + legend: + visible: show + position: right + + # ─── Pub/Sub Failures ─────────────────────────────────────────────── + - title: Pub/Sub Failures Over Time + size: {w: 24, h: 12} + esql: + type: area + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + failed_topic_put = SUM(RATE(ibmmq_qmgr_failed_topic_mqput_mqput1_total)), + failed_sub_create = SUM(RATE(ibmmq_qmgr_failed_subscription_create_alter_resume_total)), + failed_sub_delete = SUM(RATE(ibmmq_qmgr_failed_subscription_delete_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: failed_topic_put + label: Failed Topic Put + - field: failed_sub_create + label: Failed Sub Create/Alter + - field: failed_sub_delete + label: Failed Sub Delete + legend: + visible: show + position: right + + # ─── Admin & Metadata Failures ────────────────────────────────────── + - title: Administrative Failures Over Time + size: {w: 24, h: 12} + esql: + type: area + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + failed_inq = SUM(RATE(ibmmq_qmgr_failed_mqinq_total)), + failed_set = SUM(RATE(ibmmq_qmgr_failed_mqset_total)), + failed_cb = SUM(RATE(ibmmq_qmgr_failed_mqcb_total)), + failed_subrq = SUM(RATE(ibmmq_qmgr_failed_mqsubrq_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: failed_inq + label: Failed Inquire + - field: failed_set + label: Failed Set + - field: failed_cb + label: Failed Callback + - field: failed_subrq + label: Failed SubRequest + legend: + visible: show + position: right + + # ─── Transaction Health ────────────────────────────────────────────── + - title: Commit vs Rollback Rate Over Time + description: Compare transaction commits to rollbacks. A rising rollback rate may indicate poison messages or application errors. + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), + rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: commit_rate + label: Commits + format: + type: number + suffix: " /s" + - field: rollback_rate + label: Rollbacks + format: + type: number + suffix: " /s" + color: + palette: eui_amsterdam_color_blind + assignments: + - value: Commits + color: '#54b399' + - value: Rollbacks + color: '#cc5642' + legend: + visible: show + position: right + + # ─── Expired & FDC ────────────────────────────────────────────────── + - title: Expired Messages & FDC Files Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + expired = SUM(RATE(ibmmq_qmgr_expired_message_total)), + fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: expired + label: Expired Messages (/s) + format: + type: number + suffix: " /s" + - field: fdc + label: FDC Files + format: + type: number + decimals: 0 + legend: + visible: show + position: right + + # ─── Error Summary ────────────────────────────────────────────────── + - title: Error Summary by Queue Manager + size: {w: 48, h: 15} + esql: + type: datatable + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), + failed_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), + failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), + failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), + failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)), + rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)), + commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), + expired = SUM(RATE(ibmmq_qmgr_expired_message_total)), + fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) + BY attributes.qmgr + - >- + EVAL total_failures = + COALESCE(failed_put, 0) + COALESCE(failed_put1, 0) + + COALESCE(failed_get, 0) + COALESCE(failed_conn, 0) + + COALESCE(failed_open, 0) + - >- + EVAL rollback_pct = ROUND(CASE( + commit_rate + rollback_rate > 0, + rollback_rate / (commit_rate + rollback_rate) * 100, 0), 2) + - KEEP attributes.qmgr, total_failures, failed_put, failed_get, failed_conn, rollback_pct, expired, fdc + - SORT total_failures DESC + - LIMIT 50 + metrics: + - field: attributes.qmgr + label: Queue Manager + - field: total_failures + label: Total Failures (/s) + format: + type: number + decimals: 2 + - field: failed_put + label: Failed Put (/s) + format: + type: number + decimals: 2 + - field: failed_get + label: Failed Get (/s) + format: + type: number + decimals: 2 + - field: failed_conn + label: Failed Connect (/s) + format: + type: number + decimals: 2 + - field: rollback_pct + label: Rollback % + format: + type: number + decimals: 2 + suffix: "%" + - field: expired + label: Expired (/s) + format: + type: number + decimals: 2 + - field: fdc + label: FDC Files + format: + type: number + decimals: 0 diff --git a/packages/ibmmq_otel/_dev/shared/ibmmq-message-traffic.yaml b/packages/ibmmq_otel/_dev/shared/ibmmq-message-traffic.yaml new file mode 100644 index 00000000000..8564667a069 --- /dev/null +++ b/packages/ibmmq_otel/_dev/shared/ibmmq-message-traffic.yaml @@ -0,0 +1,493 @@ +dashboards: + - id: ibmmq_otel-message-traffic + name: '[IBM MQ OTel] Message Traffic' + minimum_kibana_version: '8.18.0' + description: >- + Detailed message throughput analysis for IBM MQ queue managers including + put/get rates, byte throughput, persistence breakdown, pub/sub activity, + and connection metrics. + time_range: + from: "now-1h" + to: "now" + settings: + margins: true + sync: + cursor: true + tooltips: false + colors: false + filters: + - field: data_stream.dataset + equals: ibmmq.otel + + panels: + # ─── Navigation ─────────────────────────────────────────────────── + - title: Navigation + size: {w: 48, h: 2} + links: + layout: horizontal + items: + - label: Overview + dashboard: ibmmq_otel-overview + - label: Message Traffic + dashboard: ibmmq_otel-message-traffic + - label: Error Analysis + dashboard: ibmmq_otel-error-analysis + - label: Resources & Performance + dashboard: ibmmq_otel-resources + + # ─── Dashboard Overview Panel ──────────────────────────────────── + - hide_title: true + size: {w: 16, h: 12} + markdown: + content: | + ## [IBM MQ OTel] Message Traffic + + This dashboard provides detailed insight into IBM MQ message flow: + - Per-queue-manager put and get message rates + - Byte throughput for puts and gets + - Persistent vs non-persistent message breakdown + - Pub/sub topic and subscriber delivery rates + - Connection and disconnection activity + + # ─── KPI Row 1 ──────────────────────────────────────────────────── + - title: Put Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL + - STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)) + primary: + field: put_rate + label: Put Rate + format: + type: number + compact: true + suffix: " /s" + + - title: Get Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL + - STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) + primary: + field: get_rate + label: Get Rate + format: + type: number + compact: true + suffix: " /s" + + - title: Put Bytes Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_mqput_mqput1_bytes_total IS NOT NULL + - STATS put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total)) + primary: + field: put_bytes + label: Put Bytes + format: + type: bytes + suffix: "/s" + + - title: Get Bytes Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_destructive_get_bytes_total IS NOT NULL + - STATS get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total)) + primary: + field: get_bytes + label: Get Bytes + format: + type: bytes + suffix: "/s" + + # ─── KPI Row 2 ──────────────────────────────────────────────────── + - title: Topic Put Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_topic_mqput_mqput1_total IS NOT NULL + - STATS topic_rate = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total)) + primary: + field: topic_rate + label: Topic Puts + format: + type: number + compact: true + suffix: " /s" + + - title: Subscriber Delivery Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_published_to_subscribers_message_total IS NOT NULL + - STATS sub_rate = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total)) + primary: + field: sub_rate + label: Sub Delivery + format: + type: number + compact: true + suffix: " /s" + + - title: Connection Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_mqconn_mqconnx_total IS NOT NULL + - STATS conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)) + primary: + field: conn_rate + label: Connections + format: + type: number + compact: true + suffix: " /s" + + - title: Disconnect Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_mqdisc_total IS NOT NULL + - STATS disc_rate = SUM(RATE(ibmmq_qmgr_mqdisc_total)) + primary: + field: disc_rate + label: Disconnections + format: + type: number + compact: true + suffix: " /s" + + # ─── Message Rate by Queue Manager ───────────────────────────────── + - title: Put Rate by Queue Manager + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL + - >- + STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: put_rate + label: Put Rate + format: + type: number + suffix: " /s" + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + - title: Get Rate by Queue Manager + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL + - >- + STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: get_rate + label: Get Rate + format: + type: number + suffix: " /s" + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + # ─── Byte Throughput ──────────────────────────────────────────────── + - title: Byte Throughput Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total)), + get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: put_bytes + label: Put Bytes + format: + type: bytes + suffix: "/s" + - field: get_bytes + label: Get Bytes + format: + type: bytes + suffix: "/s" + legend: + visible: show + position: right + + # ─── Connection Activity ──────────────────────────────────────────── + - title: Connection Activity Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + connects = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)), + disconnects = SUM(RATE(ibmmq_qmgr_mqdisc_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: connects + label: Connects + format: + type: number + suffix: " /s" + - field: disconnects + label: Disconnects + format: + type: number + suffix: " /s" + legend: + visible: show + position: right + + # ─── Persistence Breakdown ────────────────────────────────────────── + - title: Persistent vs Non-Persistent Puts + size: {w: 24, h: 12} + esql: + type: area + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + persistent_put = SUM(RATE(ibmmq_qmgr_persistent_message_mqput_total)), + non_persistent_put = SUM(RATE(ibmmq_qmgr_non_persistent_message_mqput_total)), + persistent_put1 = SUM(RATE(ibmmq_qmgr_persistent_message_mqput1_total)), + non_persistent_put1 = SUM(RATE(ibmmq_qmgr_non_persistent_message_mqput1_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - >- + EVAL persistent = COALESCE(persistent_put, 0) + COALESCE(persistent_put1, 0), + non_persistent = COALESCE(non_persistent_put, 0) + COALESCE(non_persistent_put1, 0) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: persistent + label: Persistent + format: + type: number + suffix: " /s" + - field: non_persistent + label: Non-Persistent + format: + type: number + suffix: " /s" + legend: + visible: show + position: right + + - title: Persistent vs Non-Persistent Gets + size: {w: 24, h: 12} + esql: + type: area + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + persistent = SUM(RATE(ibmmq_qmgr_persistent_message_destructive_get_total)), + non_persistent = SUM(RATE(ibmmq_qmgr_non_persistent_message_destructive_get_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: persistent + label: Persistent + format: + type: number + suffix: " /s" + - field: non_persistent + label: Non-Persistent + format: + type: number + suffix: " /s" + legend: + visible: show + position: right + + # ─── Pub/Sub ──────────────────────────────────────────────────────── + - title: Pub/Sub + hide_title: true + size: {w: 48, h: 3} + markdown: + content: '## Publish / Subscribe' + + - title: Topic Put vs Subscriber Delivery Rate + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + topic_puts = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total)), + sub_delivery = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: topic_puts + label: Topic Puts + format: + type: number + suffix: " /s" + - field: sub_delivery + label: Subscriber Delivery + format: + type: number + suffix: " /s" + legend: + visible: show + position: right + + - title: Subscription Activity Over Time + size: {w: 24, h: 12} + esql: + type: bar + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + durable_create = SUM(RATE(ibmmq_qmgr_durable_subscription_create_total)), + durable_delete = SUM(RATE(ibmmq_qmgr_durable_subscription_delete_total)), + non_durable_create = SUM(RATE(ibmmq_qmgr_non_durable_subscription_create_total)), + non_durable_delete = SUM(RATE(ibmmq_qmgr_non_durable_subscription_delete_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: durable_create + label: Durable Create + - field: durable_delete + label: Durable Delete + - field: non_durable_create + label: Non-Durable Create + - field: non_durable_delete + label: Non-Durable Delete + legend: + visible: show + position: right + + # ─── Traffic Summary ──────────────────────────────────────────────── + - title: Message Traffic Summary by Queue Manager + size: {w: 48, h: 15} + esql: + type: datatable + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), + get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)), + put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total)), + get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total)), + conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)), + topic_rate = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total)), + sub_delivery = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total)) + BY attributes.qmgr + - SORT put_rate DESC + - LIMIT 50 + metrics: + - field: attributes.qmgr + label: Queue Manager + - field: put_rate + label: Put Rate (/s) + format: + type: number + decimals: 1 + - field: get_rate + label: Get Rate (/s) + format: + type: number + decimals: 1 + - field: put_bytes + label: Put Bytes (/s) + format: + type: bytes + - field: get_bytes + label: Get Bytes (/s) + format: + type: bytes + - field: conn_rate + label: Connects (/s) + format: + type: number + decimals: 2 + - field: topic_rate + label: Topic Puts (/s) + format: + type: number + decimals: 2 + - field: sub_delivery + label: Sub Delivery (/s) + format: + type: number + decimals: 2 diff --git a/packages/ibmmq_otel/_dev/shared/ibmmq-overview.yaml b/packages/ibmmq_otel/_dev/shared/ibmmq-overview.yaml new file mode 100644 index 00000000000..99177241ce5 --- /dev/null +++ b/packages/ibmmq_otel/_dev/shared/ibmmq-overview.yaml @@ -0,0 +1,489 @@ +dashboards: + - id: ibmmq_otel-overview + name: '[IBM MQ OTel] Overview' + minimum_kibana_version: '8.18.0' + description: >- + High-level health overview of IBM MQ queue managers showing golden signals: + message throughput, transaction health, API error rates, log performance, + and resource utilization. + time_range: + from: "now-1h" + to: "now" + settings: + margins: true + sync: + cursor: true + tooltips: false + colors: false + filters: + - field: data_stream.dataset + equals: ibmmq.otel + + panels: + # ─── Navigation ─────────────────────────────────────────────────── + - title: Navigation + size: {w: 48, h: 2} + links: + layout: horizontal + items: + - label: Overview + dashboard: ibmmq_otel-overview + - label: Message Traffic + dashboard: ibmmq_otel-message-traffic + - label: Error Analysis + dashboard: ibmmq_otel-error-analysis + - label: Resources & Performance + dashboard: ibmmq_otel-resources + + # ─── Dashboard Overview Panel ──────────────────────────────────── + - hide_title: true + size: {w: 16, h: 12} + markdown: + content: | + ## [IBM MQ OTel] Overview + + This dashboard provides a high-level health view of IBM MQ queue managers: + - Message put and get throughput rates + - Transaction commit and rollback activity + - Failed API operation rates + - Log write latency and filesystem capacity + - CPU load and resource utilization + - FDC file generation (internal errors) + + # ─── KPI Row 1 ──────────────────────────────────────────────────── + - title: Message Put Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL + - STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)) + primary: + field: put_rate + label: Put Rate + format: + type: number + compact: true + suffix: " /s" + + - title: Message Get Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL + - STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) + primary: + field: get_rate + label: Get Rate + format: + type: number + compact: true + suffix: " /s" + + - title: Connection Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_mqconn_mqconnx_total IS NOT NULL + - STATS conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)) + primary: + field: conn_rate + label: Connections + format: + type: number + compact: true + suffix: " /s" + + - title: Commit Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_commit_total IS NOT NULL + - STATS commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)) + primary: + field: commit_rate + label: Commits + format: + type: number + compact: true + suffix: " /s" + + # ─── KPI Row 2 ──────────────────────────────────────────────────── + - title: Failed Operations Rate + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + f_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), + f_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), + f_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), + f_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), + f_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)) + - >- + EVAL failed_rate = COALESCE(f_put, 0) + COALESCE(f_put1, 0) + + COALESCE(f_get, 0) + COALESCE(f_conn, 0) + COALESCE(f_open, 0) + primary: + field: failed_rate + label: Failed Ops + format: + type: number + compact: true + suffix: " /s" + + - title: Log Write Latency + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL + - STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)) + - EVAL latency_ms = ROUND(latency_s * 1000, 3) + primary: + field: latency_ms + label: Log Latency + format: + type: number + decimals: 3 + suffix: " ms" + + - title: Log FS Free + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_file_system_free_space_percentage IS NOT NULL + - STATS free_pct = MIN(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)) + primary: + field: free_pct + label: Log FS Free + format: + type: number + decimals: 1 + suffix: "%" + + - title: FDC Files + hide_title: true + size: {w: 8, h: 6} + esql: + type: metric + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_fdc_files IS NOT NULL + - STATS fdc_count = SUM(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) + primary: + field: fdc_count + label: FDC Files + format: + type: number + decimals: 0 + + # ─── Message Throughput ──────────────────────────────────────────── + - title: Message Throughput Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), + get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: put_rate + label: Put Rate + format: + type: number + suffix: " /s" + - field: get_rate + label: Get Rate + format: + type: number + suffix: " /s" + legend: + visible: show + position: right + + # ─── Transaction Health ──────────────────────────────────────────── + - title: Transaction Health Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), + rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: commit_rate + label: Commits + format: + type: number + suffix: " /s" + - field: rollback_rate + label: Rollbacks + format: + type: number + suffix: " /s" + color: + palette: eui_amsterdam_color_blind + assignments: + - value: Commits + color: '#54b399' + - value: Rollbacks + color: '#cc5642' + legend: + visible: show + position: right + + # ─── Failed Operations ───────────────────────────────────────────── + - title: Failed Operations Over Time + size: {w: 24, h: 12} + esql: + type: area + mode: stacked + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), + failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), + failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), + failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: failed_put + label: Failed Put + - field: failed_get + label: Failed Get + - field: failed_conn + label: Failed Connect + - field: failed_open + label: Failed Open + legend: + visible: show + position: right + + # ─── Log Write Latency ───────────────────────────────────────────── + - title: Log Write Latency Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL + - >- + STATS + latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - EVAL latency_ms = ROUND(latency_s * 1000, 3) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: latency_ms + label: Log Write Latency + format: + type: number + decimals: 3 + suffix: " ms" + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + # ─── Filesystem Free Space ───────────────────────────────────────── + - title: Filesystem Free Space Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + log_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), + qmgr_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), + errors_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), + trace_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_trace_file_system_free_space_percentage)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: log_fs + label: Log FS + format: + type: number + decimals: 1 + suffix: "%" + - field: qmgr_fs + label: QMgr FS + format: + type: number + decimals: 1 + suffix: "%" + - field: errors_fs + label: Errors FS + format: + type: number + decimals: 1 + suffix: "%" + - field: trace_fs + label: Trace FS + format: + type: number + decimals: 1 + suffix: "%" + legend: + visible: show + position: right + + # ─── CPU Load ────────────────────────────────────────────────────── + - title: CPU Load Average Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + load_1m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), + load_5m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_five_minute_average_percentage)), + load_15m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_fifteen_minute_average_percentage)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: load_1m + label: 1 min + format: + type: number + decimals: 1 + suffix: "%" + - field: load_5m + label: 5 min + format: + type: number + decimals: 1 + suffix: "%" + - field: load_15m + label: 15 min + format: + type: number + decimals: 1 + suffix: "%" + legend: + visible: show + position: right + + # ─── Queue Manager Health Summary ────────────────────────────────── + - title: Queue Manager Health Summary + size: {w: 48, h: 15} + esql: + type: datatable + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), + get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)), + failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), + commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), + rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)), + log_latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)), + log_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), + fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)), + cpu_1m = MAX(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)) + BY attributes.qmgr + - EVAL log_latency_ms = ROUND(log_latency_s * 1000, 3) + - >- + EVAL rollback_pct = ROUND(CASE( + commit_rate + rollback_rate > 0, + rollback_rate / (commit_rate + rollback_rate) * 100, 0), 2) + - KEEP attributes.qmgr, put_rate, get_rate, failed_put, rollback_pct, log_latency_ms, log_fs_free, fdc, cpu_1m + - SORT put_rate DESC + - LIMIT 50 + metrics: + - field: attributes.qmgr + label: Queue Manager + - field: put_rate + label: Put Rate (/s) + format: + type: number + decimals: 1 + - field: get_rate + label: Get Rate (/s) + format: + type: number + decimals: 1 + - field: failed_put + label: Failed Put (/s) + format: + type: number + decimals: 2 + - field: rollback_pct + label: Rollback % + format: + type: number + decimals: 2 + suffix: "%" + - field: log_latency_ms + label: Log Latency (ms) + format: + type: number + decimals: 3 + - field: log_fs_free + label: Log FS Free % + format: + type: number + decimals: 1 + suffix: "%" + - field: fdc + label: FDC Files + format: + type: number + decimals: 0 + - field: cpu_1m + label: CPU 1m % + format: + type: number + decimals: 1 + suffix: "%" diff --git a/packages/ibmmq_otel/_dev/shared/ibmmq-resources.yaml b/packages/ibmmq_otel/_dev/shared/ibmmq-resources.yaml new file mode 100644 index 00000000000..74d6dd2dcbf --- /dev/null +++ b/packages/ibmmq_otel/_dev/shared/ibmmq-resources.yaml @@ -0,0 +1,653 @@ +dashboards: + - id: ibmmq_otel-resources + name: '[IBM MQ OTel] Resources & Performance' + minimum_kibana_version: '8.18.0' + description: >- + Resource utilization and log subsystem performance for IBM MQ queue managers. + Covers log write latency, filesystem capacity, CPU load, RAM usage, + and log I/O efficiency. + time_range: + from: "now-1h" + to: "now" + settings: + margins: true + sync: + cursor: true + tooltips: false + colors: false + filters: + - field: data_stream.dataset + equals: ibmmq.otel + + panels: + # ─── Navigation ─────────────────────────────────────────────────── + - title: Navigation + size: {w: 48, h: 2} + links: + layout: horizontal + items: + - label: Overview + dashboard: ibmmq_otel-overview + - label: Message Traffic + dashboard: ibmmq_otel-message-traffic + - label: Error Analysis + dashboard: ibmmq_otel-error-analysis + - label: Resources & Performance + dashboard: ibmmq_otel-resources + + # ─── Dashboard Overview Panel ──────────────────────────────────── + - hide_title: true + size: {w: 16, h: 12} + markdown: + content: | + ## [IBM MQ OTel] Resources & Performance + + This dashboard provides detailed infrastructure monitoring: + - Log write latency and peak latency tracking + - Log I/O efficiency (logical vs physical writes) + - Filesystem capacity for log, queue manager, errors, and trace areas + - Log space utilization (primary and workload) + - CPU load averages and host vs queue manager CPU + - RAM availability and queue manager memory estimate + + # ─── KPI Row 1: Gauges ───────────────────────────────────────────── + - title: Log FS Free + size: {w: 8, h: 12} + esql: + type: gauge + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_file_system_free_space_percentage IS NOT NULL + - STATS free_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)) + - EVAL min_val = 0, max_val = 100 + metric: + field: free_pct + label: Log FS Free + format: + type: number + decimals: 1 + suffix: "%" + minimum: + field: min_val + maximum: + field: max_val + color: + range_type: number + range_min: 0 + range_max: 100 + thresholds: + - up_to: 10 + color: '#cc5642' + - up_to: 30 + color: '#d6bf57' + - up_to: 100 + color: '#54b399' + appearance: + shape: arc + + - title: QMgr FS Free + size: {w: 8, h: 12} + esql: + type: gauge + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_queue_manager_file_system_free_space_percentage IS NOT NULL + - STATS free_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)) + - EVAL min_val = 0, max_val = 100 + metric: + field: free_pct + label: QMgr FS Free + format: + type: number + decimals: 1 + suffix: "%" + minimum: + field: min_val + maximum: + field: max_val + color: + range_type: number + range_min: 0 + range_max: 100 + thresholds: + - up_to: 10 + color: '#cc5642' + - up_to: 30 + color: '#d6bf57' + - up_to: 100 + color: '#54b399' + appearance: + shape: arc + + - title: CPU 1m Load + size: {w: 8, h: 12} + esql: + type: gauge + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_cpu_load_one_minute_average_percentage IS NOT NULL + - STATS cpu_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)) + - EVAL min_val = 0, max_val = 100 + metric: + field: cpu_pct + label: CPU 1m Load + format: + type: number + decimals: 1 + suffix: "%" + minimum: + field: min_val + maximum: + field: max_val + color: + range_type: number + range_min: 0 + range_max: 100 + thresholds: + - up_to: 70 + color: '#54b399' + - up_to: 85 + color: '#d6bf57' + - up_to: 100 + color: '#cc5642' + appearance: + shape: arc + + - title: RAM Free + size: {w: 8, h: 12} + esql: + type: gauge + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_ram_free_percentage IS NOT NULL + - STATS ram_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_ram_free_percentage)) + - EVAL min_val = 0, max_val = 100 + metric: + field: ram_pct + label: RAM Free + format: + type: number + decimals: 1 + suffix: "%" + minimum: + field: min_val + maximum: + field: max_val + color: + range_type: number + range_min: 0 + range_max: 100 + thresholds: + - up_to: 10 + color: '#cc5642' + - up_to: 20 + color: '#d6bf57' + - up_to: 100 + color: '#54b399' + appearance: + shape: arc + + # ─── Log Performance ──────────────────────────────────────────────── + - title: Log Performance + hide_title: true + size: {w: 48, h: 3} + markdown: + content: '## Log Subsystem Performance' + + - title: Log Write Latency Over Time + description: Log write latency directly impacts persistent message throughput. Sub-millisecond is healthy; above 10ms is critical. + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL + - >- + STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - EVAL latency_ms = ROUND(latency_s * 1000, 3) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: latency_ms + label: Log Write Latency + format: + type: number + decimals: 3 + suffix: " ms" + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + - title: Slowest Write Since Restart + description: High-water mark for worst-case log write latency since queue manager restart. + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_slowest_write_since_restart_seconds IS NOT NULL + - >- + STATS slowest_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_slowest_write_since_restart_seconds)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - EVAL slowest_ms = ROUND(slowest_s * 1000, 2) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: slowest_ms + label: Slowest Write + format: + type: number + decimals: 2 + suffix: " ms" + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + - title: Log I/O — Logical vs Physical Write Rate + description: Logical exceeding physical writes indicates efficient log buffering. A ratio near 1:1 means no buffering benefit. + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + logical = SUM(RATE(ibmmq_qmgr_log_logical_written_bytes_total)), + physical = SUM(RATE(ibmmq_qmgr_log_physical_written_bytes_total)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: logical + label: Logical Writes + format: + type: bytes + suffix: "/s" + - field: physical + label: Physical Writes + format: + type: bytes + suffix: "/s" + legend: + visible: show + position: right + + - title: Log Write Size Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_write_size_bytes IS NOT NULL + - >- + STATS write_size = AVG(AVG_OVER_TIME(ibmmq_qmgr_log_write_size_bytes)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: write_size + label: Avg Write Size + format: + type: bytes + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + # ─── Filesystem ───────────────────────────────────────────────────── + - title: Filesystem + hide_title: true + size: {w: 48, h: 3} + markdown: + content: '## Filesystem Utilization' + + - title: All Filesystem Free Space Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + log_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), + qmgr_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), + errors_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), + trace_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_trace_file_system_free_space_percentage)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: log_fs + label: Log FS + format: + type: number + decimals: 1 + suffix: "%" + - field: qmgr_fs + label: QMgr FS + format: + type: number + decimals: 1 + suffix: "%" + - field: errors_fs + label: Errors FS + format: + type: number + decimals: 1 + suffix: "%" + - field: trace_fs + label: Trace FS + format: + type: number + decimals: 1 + suffix: "%" + legend: + visible: show + position: right + + - title: Log Space Utilization Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + primary_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_primary_space_in_use_percentage)), + workload_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_workload_primary_space_utilization_percentage)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: primary_pct + label: Primary Space Used + format: + type: number + decimals: 1 + suffix: "%" + - field: workload_pct + label: Workload Utilization + format: + type: number + decimals: 1 + suffix: "%" + legend: + visible: show + position: right + + - title: Log Filesystem Usage by Queue Manager + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_file_system_in_use_bytes IS NOT NULL + - >- + STATS in_use = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_in_use_bytes)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: in_use + label: Log FS In Use + format: + type: bytes + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + - title: Log Active Space by Queue Manager + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_log_in_use_bytes IS NOT NULL + - >- + STATS log_in_use = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_in_use_bytes)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: log_in_use + label: Log Active Space + format: + type: bytes + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + # ─── Compute ───────────────────────────────────────────────────────── + - title: Compute + hide_title: true + size: {w: 48, h: 3} + markdown: + content: '## Compute Resources' + + - title: CPU Load Averages Over Time + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + load_1m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), + load_5m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_five_minute_average_percentage)), + load_15m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_fifteen_minute_average_percentage)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: load_1m + label: 1 min + format: + type: number + decimals: 1 + suffix: "%" + - field: load_5m + label: 5 min + format: + type: number + decimals: 1 + suffix: "%" + - field: load_15m + label: 15 min + format: + type: number + decimals: 1 + suffix: "%" + legend: + visible: show + position: right + + - title: Host vs Queue Manager CPU Over Time + description: Compare total host CPU usage with the estimated CPU consumed by the queue manager process. + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + host_system = AVG(AVG_OVER_TIME(ibmmq_qmgr_system_cpu_time_percentage)), + host_user = AVG(AVG_OVER_TIME(ibmmq_qmgr_user_cpu_time_percentage)), + qmgr_system = AVG(AVG_OVER_TIME(ibmmq_qmgr_system_cpu_time_estimate_for_queue_manager_percentage)), + qmgr_user = AVG(AVG_OVER_TIME(ibmmq_qmgr_user_cpu_time_estimate_for_queue_manager_percentage)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend) + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: host_system + label: Host System CPU + format: + type: number + decimals: 1 + suffix: "%" + - field: host_user + label: Host User CPU + format: + type: number + decimals: 1 + suffix: "%" + - field: qmgr_system + label: QMgr System CPU + format: + type: number + decimals: 1 + suffix: "%" + - field: qmgr_user + label: QMgr User CPU + format: + type: number + decimals: 1 + suffix: "%" + legend: + visible: show + position: right + + - title: RAM Free & Queue Manager RAM Estimate + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_ram_free_percentage IS NOT NULL + - >- + STATS ram_free = AVG(AVG_OVER_TIME(ibmmq_qmgr_ram_free_percentage)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: ram_free + label: RAM Free + format: + type: number + decimals: 1 + suffix: "%" + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + - title: Queue Manager RAM Estimate + size: {w: 24, h: 12} + esql: + type: line + query: + - TS metrics-ibmmq.otel-* + - WHERE ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes IS NOT NULL + - >- + STATS qmgr_ram = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes)) + BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr + - SORT time_bucket ASC + dimension: + field: time_bucket + data_type: date + metrics: + - field: qmgr_ram + label: QMgr RAM + format: + type: bytes + breakdown: + field: attributes.qmgr + legend: + visible: show + position: right + + # ─── Resource Summary ──────────────────────────────────────────────── + - title: Resource Summary by Queue Manager + size: {w: 48, h: 15} + esql: + type: datatable + query: + - TS metrics-ibmmq.otel-* + - >- + STATS + log_latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)), + log_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), + qmgr_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), + errors_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), + cpu_1m = MAX(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), + ram_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_free_percentage)), + qmgr_ram = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes)) + BY attributes.qmgr + - EVAL log_latency_ms = ROUND(log_latency_s * 1000, 3) + - KEEP attributes.qmgr, log_latency_ms, log_fs_free, qmgr_fs_free, errors_fs_free, cpu_1m, ram_free, qmgr_ram + - SORT log_fs_free ASC + - LIMIT 50 + metrics: + - field: attributes.qmgr + label: Queue Manager + - field: log_latency_ms + label: Log Latency (ms) + format: + type: number + decimals: 3 + - field: log_fs_free + label: Log FS Free % + format: + type: number + decimals: 1 + suffix: "%" + - field: qmgr_fs_free + label: QMgr FS Free % + format: + type: number + decimals: 1 + suffix: "%" + - field: errors_fs_free + label: Errors FS Free % + format: + type: number + decimals: 1 + suffix: "%" + - field: cpu_1m + label: CPU 1m % + format: + type: number + decimals: 1 + suffix: "%" + - field: ram_free + label: RAM Free % + format: + type: number + decimals: 1 + suffix: "%" + - field: qmgr_ram + label: QMgr RAM + format: + type: bytes diff --git a/packages/ibmmq_otel/changelog.yml b/packages/ibmmq_otel/changelog.yml new file mode 100644 index 00000000000..dd1e68d24a7 --- /dev/null +++ b/packages/ibmmq_otel/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: "0.1.0" + changes: + - description: Initial draft of the ibmmq_otel content pack. + type: enhancement + link: https://github.com/elastic/integrations/pull/17896 diff --git a/packages/ibmmq_otel/docs/README.md b/packages/ibmmq_otel/docs/README.md new file mode 100644 index 00000000000..bfbb33fe822 --- /dev/null +++ b/packages/ibmmq_otel/docs/README.md @@ -0,0 +1,116 @@ +# IBM MQ OpenTelemetry Assets + +IBM MQ is an enterprise message-oriented middleware that enables applications to communicate reliably by exchanging messages through queues, supporting both point-to-point and publish/subscribe messaging patterns. + +These assets provide dashboards, alert rules, and SLO templates for monitoring IBM MQ queue managers using metrics collected via the OpenTelemetry Prometheus receiver scraping the IBM MQ Prometheus exporter. They cover message throughput, transaction health, API error rates, log subsystem performance, filesystem capacity, and compute resource utilization. + +## Compatibility + +The IBM MQ OpenTelemetry assets have been tested with: + +- OpenTelemetry `prometheusreceiver` v0.146.0 from OpenTelemetry Collector Contrib. +- IBMMQ v9.4.5.0 + +## Requirements + +You need Elasticsearch for storing and searching your data and Kibana for visualizing and managing it. +You can use our hosted Elasticsearch Service on Elastic Cloud, which is recommended, or self-manage +the Elastic Stack on your own hardware. + +## Setup + +### Prerequisites + +You must have the [IBM MQ Prometheus exporter](https://github.com/ibm-messaging/mq-metric-samples) running and configured to expose queue manager metrics. The exporter listens on a configurable HTTP port (default 9157) and serves Prometheus-formatted metrics at the `/metrics` endpoint. + +Ensure the exporter has connectivity to your IBM MQ queue manager and is configured with the appropriate credentials and queue manager name. + +### Configuration + +You can use the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) or the [Elastic Distribution of the OpenTelemetry Collector (EDOT Collector)](https://www.elastic.co/docs/current/en/observability/edot-collector) to collect IBM MQ metrics and send them to Elasticsearch. + +Placeholders used in the configuration below: + +- ``: Your Elasticsearch endpoint (e.g. `https://my-deployment.es.us-east-1.aws.elastic.cloud:443`) +- ``: Your Elasticsearch API key for authentication +- ``: Hostname or IP of the IBM MQ Prometheus exporter (e.g. `localhost`) +- ``: Port of the IBM MQ Prometheus exporter (e.g. `9157`) + +```yaml +receivers: + prometheus/ibmmq: + config: + scrape_configs: + - job_name: ibmmq + scrape_interval: 60s + metrics_path: /metrics + params: + format: [prometheus] + scheme: http + static_configs: + - targets: + - ":" + +processors: + resource/dataset: + attributes: + - key: data_stream.dataset + value: ibmmq + action: upsert + + +exporters: + elasticsearch/otel: + endpoints: + - "${env:ES_ENDPOINT}" + api_key: "${env:ES_API_KEY}" + mapping: + mode: otel + +service: + pipelines: + metrics: + receivers: [prometheus/ibmmq] + processors: [resource/dataset] + exporters: [elasticsearch/otel] +``` + +> **Note**: The `scrape_interval` of 60s aligns with the default metric publication interval of the IBM MQ Prometheus exporter. Adjust this value if your exporter is configured with a different collection interval. + +## Reference + +### Metrics + +Refer to the [metadata.yaml](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/prometheusreceiver/metadata.yaml) of the OpenTelemetry Prometheus receiver for details on available metrics. The specific IBM MQ metrics are published by the [IBM MQ Prometheus exporter](https://github.com/ibm-messaging/mq-metric-samples) and use the `ibmmq_qmgr_` prefix. + +## Dashboards + +| Dashboard | Description | +|-----------|-------------| +| **[IBM MQ OTel] Overview** | High-level health overview of IBM MQ queue managers showing message throughput, transaction health, API error rates, log performance, and resource utilization. | +| **[IBM MQ OTel] Message Traffic** | Detailed message throughput analysis including put/get rates, byte throughput, persistence breakdown, pub/sub activity, and connection metrics. | +| **[IBM MQ OTel] Error Analysis** | Comprehensive error monitoring covering all failed API operations, transaction rollbacks, expired messages, and FDC file generation. | +| **[IBM MQ OTel] Resources & Performance** | Resource utilization and log subsystem performance including log write latency, filesystem capacity, CPU load, RAM usage, and log I/O efficiency. | + +## Alert rules + +| Alert | Trigger | Severity | +|-------|---------|----------| +| **[IBM MQ OTel] CPU load high** | 5-minute CPU load average exceeds 85% | Warning | +| **[IBM MQ OTel] Messages expiring before consumption** | Messages are expiring before being consumed | Warning | +| **[IBM MQ OTel] Failed connection attempts** | Connection or object-open failures detected | High | +| **[IBM MQ OTel] Failed message operations** | Failed MQPUT or MQGET operations detected | High | +| **[IBM MQ OTel] FDC files increasing** | New FDC (First Failure Data Capture) files generated | Critical | +| **[IBM MQ OTel] High log write latency** | Average log write latency exceeds 5 milliseconds | Warning | +| **[IBM MQ OTel] High transaction rollback ratio** | Rollback rate exceeds 5% of total transactions | High | +| **[IBM MQ OTel] Log filesystem critically low** | Log filesystem free space drops below 10% | Critical | +| **[IBM MQ OTel] Queue manager filesystem low** | Queue manager filesystem free space drops below 20% | Warning | + +## SLO templates + +> **Note**: SLO templates require Elastic Stack version 9.4.0 or later. + +| SLO | Target | Window | Description | +|-----|--------|--------|-------------| +| **[IBM MQ OTel] Log write latency 99.5% rolling 30 days** | 99.5% | 30-day rolling | Ensures 99.5% of 1-minute intervals maintain average log write latency below 5 milliseconds. | +| **[IBM MQ OTel] Message put availability 99.5% rolling 30 days** | 99.5% | 30-day rolling | Ensures 99.5% of 1-minute intervals maintain at least 99.5% MQPUT/MQPUT1 success rate. | diff --git a/packages/ibmmq_otel/img/ibmmq_error_analysis.png b/packages/ibmmq_otel/img/ibmmq_error_analysis.png new file mode 100644 index 00000000000..dcac2c6328b Binary files /dev/null and b/packages/ibmmq_otel/img/ibmmq_error_analysis.png differ diff --git a/packages/ibmmq_otel/img/ibmmq_message_traffic.png b/packages/ibmmq_otel/img/ibmmq_message_traffic.png new file mode 100644 index 00000000000..2f6372ce8a7 Binary files /dev/null and b/packages/ibmmq_otel/img/ibmmq_message_traffic.png differ diff --git a/packages/ibmmq_otel/img/ibmmq_otel_logo.svg b/packages/ibmmq_otel/img/ibmmq_otel_logo.svg new file mode 100644 index 00000000000..b9da7a432f2 --- /dev/null +++ b/packages/ibmmq_otel/img/ibmmq_otel_logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/packages/ibmmq_otel/img/ibmmq_overview.png b/packages/ibmmq_otel/img/ibmmq_overview.png new file mode 100644 index 00000000000..6973f5b56e0 Binary files /dev/null and b/packages/ibmmq_otel/img/ibmmq_overview.png differ diff --git a/packages/ibmmq_otel/img/ibmmq_resources.png b/packages/ibmmq_otel/img/ibmmq_resources.png new file mode 100644 index 00000000000..bb7e07ef935 Binary files /dev/null and b/packages/ibmmq_otel/img/ibmmq_resources.png differ diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-cpu-load-high.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-cpu-load-high.json new file mode 100644 index 00000000000..d5d30e4cdc8 --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-cpu-load-high.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-cpu-load-high", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] CPU load high", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 3 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS cpu_load_5m = MAX(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_five_minute_average_percentage))\n BY attributes.qmgr\n// Alert when the 5-minute CPU load average exceeds 85%\n// < 70% is healthy; 70-85% is warning; > 85% is critical\n// High CPU load degrades message throughput and increases latency\n// Adjust threshold based on your host capacity and co-located workloads\n| WHERE cpu_load_5m IS NOT NULL AND cpu_load_5m > 85" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-expired-messages.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-expired-messages.json new file mode 100644 index 00000000000..81a0a6f88ee --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-expired-messages.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-expired-messages", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] Messages expiring before consumption", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 2 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS expired_rate = SUM(RATE(ibmmq_qmgr_expired_message_total))\n BY attributes.qmgr\n// Alert when messages are expiring before being consumed\n// Any non-zero expiration rate indicates consumers are falling behind\n// or message TTL settings are too aggressive\n// Adjust threshold based on expected message expiration patterns\n| WHERE expired_rate IS NOT NULL AND expired_rate > 0" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-failed-connections.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-failed-connections.json new file mode 100644 index 00000000000..7ce02c381d3 --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-failed-connections.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-failed-connections", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] Failed connection attempts", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 2 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS\n failed_conns = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)),\n failed_opens = SUM(RATE(ibmmq_qmgr_failed_mqopen_total))\n BY attributes.qmgr\n| EVAL total_failed_access = COALESCE(failed_conns, 0) + COALESCE(failed_opens, 0)\n// Alert when connection or object-open failures are detected\n// Failures indicate authentication problems, resource exhaustion,\n// or network issues between clients and the queue manager\n// Adjust threshold based on your environment\n| WHERE total_failed_access > 0" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-failed-message-operations.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-failed-message-operations.json new file mode 100644 index 00000000000..a9102115314 --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-failed-message-operations.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-failed-message-operations", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] Failed message operations", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 2 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS\n failed_puts = SUM(RATE(ibmmq_qmgr_failed_mqput_total)),\n failed_put1s = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)),\n failed_gets = SUM(RATE(ibmmq_qmgr_failed_mqget_total))\n BY attributes.qmgr\n| EVAL total_failed_msg_ops = COALESCE(failed_puts, 0) + COALESCE(failed_put1s, 0) + COALESCE(failed_gets, 0)\n// Alert when failed put or get operations are detected\n// In a healthy system, these should all be at zero rate\n// Failures indicate queue full, auth issues, or application errors\n// Adjust threshold based on expected traffic volume\n| WHERE total_failed_msg_ops > 0" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-fdc-files-increasing.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-fdc-files-increasing.json new file mode 100644 index 00000000000..c86e55389ff --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-fdc-files-increasing.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-fdc-files-increasing", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] FDC files increasing", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 1 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS fdc_change = SUM(DELTA(ibmmq_qmgr_fdc_files))\n BY attributes.qmgr\n// Alert when new FDC (First Failure Data Capture) files are generated\n// FDC files indicate internal queue manager errors\n// Any increase is significant and requires immediate investigation\n| WHERE fdc_change IS NOT NULL AND fdc_change > 0" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-high-log-write-latency.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-high-log-write-latency.json new file mode 100644 index 00000000000..015cc6b3052 --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-high-log-write-latency.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-high-log-write-latency", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] High log write latency", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 3 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS log_latency_s = MAX(AVG_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds))\n BY attributes.qmgr\n// Alert when average log write latency exceeds 5ms (0.005s)\n// Sub-millisecond is healthy; > 1ms is warning; > 10ms is critical\n// Persistent messages require synchronous log writes, so latency\n// directly governs end-to-end message throughput\n// Adjust threshold based on your performance requirements\n| WHERE log_latency_s IS NOT NULL AND log_latency_s > 0.005" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-high-rollback-ratio.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-high-rollback-ratio.json new file mode 100644 index 00000000000..4ccd1a83abd --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-high-rollback-ratio.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-high-rollback-ratio", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] High transaction rollback ratio", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 3 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS\n commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)),\n rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total))\n BY attributes.qmgr\n// Require a minimum commit rate to avoid false positives on idle queue managers\n| WHERE commit_rate IS NOT NULL AND commit_rate > 0\n AND rollback_rate IS NOT NULL\n| EVAL rollback_pct = ROUND(rollback_rate / (commit_rate + rollback_rate) * 100.0, 2)\n// Alert when rollback rate exceeds 5% of total transactions\n// < 1% is healthy; 1-5% is warning; > 5% is critical\n// High rollback ratios indicate poison messages, processing failures,\n// or resource contention causing transaction failures\n// Adjust threshold and minimum commit rate for your workload\n| WHERE rollback_pct > 5.0" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-log-filesystem-critically-low.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-log-filesystem-critically-low.json new file mode 100644 index 00000000000..1473351ae6e --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-log-filesystem-critically-low.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-log-filesystem-critically-low", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] Log filesystem critically low", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 3 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS log_fs_free_pct = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage))\n BY attributes.qmgr\n// Alert when log filesystem free space drops below 10%\n// Log filesystem exhaustion halts all transactional operations\n// Adjust threshold based on your capacity planning requirements\n| WHERE log_fs_free_pct IS NOT NULL AND log_fs_free_pct < 10" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-queue-manager-filesystem-low.json b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-queue-manager-filesystem-low.json new file mode 100644 index 00000000000..f8432dc43a4 --- /dev/null +++ b/packages/ibmmq_otel/kibana/alerting_rule_template/ibmmq_otel-queue-manager-filesystem-low.json @@ -0,0 +1,36 @@ +{ + "id": "ibmmq_otel-queue-manager-filesystem-low", + "type": "alerting_rule_template", + "managed": true, + "attributes": { + "name": "[IBM MQ OTel] Queue manager filesystem low", + "ruleTypeId": ".es-query", + "tags": [ + "observability", + "ibmmq" + ], + "schedule": { + "interval": "5m" + }, + "alertDelay": { + "active": 3 + }, + "params": { + "searchType": "esqlQuery", + "esqlQuery": { + "esql": "TS metrics-ibmmq.otel-*\n| STATS qmgr_fs_free_pct = MAX(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage))\n BY attributes.qmgr\n// Alert when queue manager filesystem free space drops below 20%\n// The queue manager filesystem stores configuration and queue data\n// Adjust threshold based on your capacity planning requirements\n| WHERE qmgr_fs_free_pct IS NOT NULL AND qmgr_fs_free_pct < 20" + }, + "size": 0, + "threshold": [ + 0 + ], + "thresholdComparator": ">", + "timeField": "@timestamp", + "timeWindowSize": 15, + "timeWindowUnit": "m", + "groupBy": "row", + "termField": "attributes.qmgr", + "termSize": 10 + } + } +} diff --git a/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-error-analysis.json b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-error-analysis.json new file mode 100644 index 00000000000..69a40951c0a --- /dev/null +++ b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-error-analysis.json @@ -0,0 +1,54 @@ +{ + "attributes": { + "title": "[IBM MQ OTel] Error Analysis", + "description": "Comprehensive error monitoring for IBM MQ queue managers covering all failed API operations, transaction rollbacks, expired messages, and FDC file generation.", + "panelsJSON": "[{\"panelIndex\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\", \"gridData\": {\"x\": 0, \"y\": 0, \"w\": 48, \"h\": 2, \"i\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\"}, \"type\": \"links\", \"embeddableConfig\": {\"title\": \"Navigation\", \"enhancements\": {}, \"attributes\": {\"layout\": \"horizontal\", \"links\": [{\"id\": \"3af4ba12-6f83-488a-bdc9-0c7216a22d73\", \"order\": 0, \"label\": \"Overview\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard\"}, {\"id\": \"d16d89a9-684e-0340-d3b9-d6235eafdcda\", \"order\": 1, \"label\": \"Message Traffic\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard\"}, {\"id\": \"34ac4a25-a459-0027-aab9-c29ed2019add\", \"order\": 2, \"label\": \"Error Analysis\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard\"}, {\"id\": \"efecfd2b-d524-b83b-c3cd-35d5623b9342\", \"order\": 3, \"label\": \"Resources & Performance\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard\"}]}}}, {\"panelIndex\": \"0563dba8-e018-01bf-7e3c-91932750954e\", \"gridData\": {\"x\": 0, \"y\": 2, \"w\": 16, \"h\": 12, \"i\": \"0563dba8-e018-01bf-7e3c-91932750954e\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## [IBM MQ OTel] Error Analysis\\n\\nThis dashboard monitors all IBM MQ error signals:\\n- Core messaging failures (put, get, browse)\\n- Connection and object access failures\\n- Pub/sub and subscription errors\\n- Administrative operation failures\\n- Transaction rollback rates vs commits\\n- Expired messages and FDC file generation\\n\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"8c4cbbaa-2650-60ed-1bda-be7906f4829c\", \"gridData\": {\"x\": 16, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"8c4cbbaa-2650-60ed-1bda-be7906f4829c\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Failed Put Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"96e0bea8-4834-8b90-16fd-b6d4164580f9\", \"layerType\": \"data\", \"metricAccessor\": \"94fff297-56b2-d8dc-69d4-d915d63a7a08\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS f_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), f_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total))\\n| EVAL failed_put_rate = COALESCE(f_put, 0) + COALESCE(f_put1, 0)\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"96e0bea8-4834-8b90-16fd-b6d4164580f9\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS f_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), f_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total))\\n| EVAL failed_put_rate = COALESCE(f_put, 0) + COALESCE(f_put1, 0)\"}, \"columns\": [{\"fieldName\": \"failed_put_rate\", \"columnId\": \"94fff297-56b2-d8dc-69d4-d915d63a7a08\", \"label\": \"Failed Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"failed_put_rate\", \"columnId\": \"94fff297-56b2-d8dc-69d4-d915d63a7a08\", \"label\": \"Failed Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"a7793b9f-20e8-ee45-9b6d-adad203f2337\", \"gridData\": {\"x\": 24, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"a7793b9f-20e8-ee45-9b6d-adad203f2337\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Failed Get Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"e6ac1411-22ae-9590-b713-f834d8a81c36\", \"layerType\": \"data\", \"metricAccessor\": \"5c583779-86b2-9980-b69d-3bfe6664e377\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS f_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), f_browse = SUM(RATE(ibmmq_qmgr_failed_browse_total))\\n| EVAL failed_get_rate = COALESCE(f_get, 0) + COALESCE(f_browse, 0)\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"e6ac1411-22ae-9590-b713-f834d8a81c36\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS f_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), f_browse = SUM(RATE(ibmmq_qmgr_failed_browse_total))\\n| EVAL failed_get_rate = COALESCE(f_get, 0) + COALESCE(f_browse, 0)\"}, \"columns\": [{\"fieldName\": \"failed_get_rate\", \"columnId\": \"5c583779-86b2-9980-b69d-3bfe6664e377\", \"label\": \"Failed Gets\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"failed_get_rate\", \"columnId\": \"5c583779-86b2-9980-b69d-3bfe6664e377\", \"label\": \"Failed Gets\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"4dc8c2d8-f97e-3f8a-3844-49b313cda832\", \"gridData\": {\"x\": 32, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"4dc8c2d8-f97e-3f8a-3844-49b313cda832\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Failed Connection Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"48040175-13ec-9139-6d80-8b04117d3626\", \"layerType\": \"data\", \"metricAccessor\": \"e736b6bb-748e-b8d5-0272-82b7a3f03f82\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_failed_mqconn_mqconnx_total IS NOT NULL\\n| STATS failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"48040175-13ec-9139-6d80-8b04117d3626\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_failed_mqconn_mqconnx_total IS NOT NULL\\n| STATS failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total))\"}, \"columns\": [{\"fieldName\": \"failed_conn\", \"columnId\": \"e736b6bb-748e-b8d5-0272-82b7a3f03f82\", \"label\": \"Failed Connects\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"failed_conn\", \"columnId\": \"e736b6bb-748e-b8d5-0272-82b7a3f03f82\", \"label\": \"Failed Connects\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"8c95de0b-8d1e-2dd6-87eb-3c0253e6a5fc\", \"gridData\": {\"x\": 40, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"8c95de0b-8d1e-2dd6-87eb-3c0253e6a5fc\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Rollback Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"75e00e5c-2f0a-731c-5011-155a5de5921a\", \"layerType\": \"data\", \"metricAccessor\": \"fb86ba8f-23df-d25e-d3bc-c4fac2b0143a\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_rollback_total IS NOT NULL\\n| STATS rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"75e00e5c-2f0a-731c-5011-155a5de5921a\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_rollback_total IS NOT NULL\\n| STATS rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total))\"}, \"columns\": [{\"fieldName\": \"rollback_rate\", \"columnId\": \"fb86ba8f-23df-d25e-d3bc-c4fac2b0143a\", \"label\": \"Rollbacks\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"rollback_rate\", \"columnId\": \"fb86ba8f-23df-d25e-d3bc-c4fac2b0143a\", \"label\": \"Rollbacks\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"02738750-8801-1529-8dc5-761c62703c5b\", \"gridData\": {\"x\": 16, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"02738750-8801-1529-8dc5-761c62703c5b\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Expired Messages Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"c5c867fa-751c-d43f-ec0e-d2eaaba592c2\", \"layerType\": \"data\", \"metricAccessor\": \"b1e249f7-1385-4050-79ad-038d7d4dd270\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_expired_message_total IS NOT NULL\\n| STATS expired_rate = SUM(RATE(ibmmq_qmgr_expired_message_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"c5c867fa-751c-d43f-ec0e-d2eaaba592c2\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_expired_message_total IS NOT NULL\\n| STATS expired_rate = SUM(RATE(ibmmq_qmgr_expired_message_total))\"}, \"columns\": [{\"fieldName\": \"expired_rate\", \"columnId\": \"b1e249f7-1385-4050-79ad-038d7d4dd270\", \"label\": \"Expired Msgs\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"expired_rate\", \"columnId\": \"b1e249f7-1385-4050-79ad-038d7d4dd270\", \"label\": \"Expired Msgs\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"9313adce-7373-9685-ed2f-5327d15c8379\", \"gridData\": {\"x\": 24, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"9313adce-7373-9685-ed2f-5327d15c8379\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"FDC Files\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"28fdf49b-daa6-ab01-2a61-433dfe5b428c\", \"layerType\": \"data\", \"metricAccessor\": \"fee27a07-9aa2-fc10-10a5-3ab0853d9e80\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_fdc_files IS NOT NULL\\n| STATS fdc_count = SUM(LAST_OVER_TIME(ibmmq_qmgr_fdc_files))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"28fdf49b-daa6-ab01-2a61-433dfe5b428c\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_fdc_files IS NOT NULL\\n| STATS fdc_count = SUM(LAST_OVER_TIME(ibmmq_qmgr_fdc_files))\"}, \"columns\": [{\"fieldName\": \"fdc_count\", \"columnId\": \"fee27a07-9aa2-fc10-10a5-3ab0853d9e80\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}], \"allColumns\": [{\"fieldName\": \"fdc_count\", \"columnId\": \"fee27a07-9aa2-fc10-10a5-3ab0853d9e80\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"c0d88a2d-9aad-1108-c5cc-df184d660275\", \"gridData\": {\"x\": 32, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"c0d88a2d-9aad-1108-c5cc-df184d660275\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Failed Open Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"f93cdacb-6827-7078-25d6-7fd7dbc3d6e4\", \"layerType\": \"data\", \"metricAccessor\": \"7afc702d-2981-3a68-40cf-b60405aa2daa\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_failed_mqopen_total IS NOT NULL\\n| STATS failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"f93cdacb-6827-7078-25d6-7fd7dbc3d6e4\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_failed_mqopen_total IS NOT NULL\\n| STATS failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total))\"}, \"columns\": [{\"fieldName\": \"failed_open\", \"columnId\": \"7afc702d-2981-3a68-40cf-b60405aa2daa\", \"label\": \"Failed Opens\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"failed_open\", \"columnId\": \"7afc702d-2981-3a68-40cf-b60405aa2daa\", \"label\": \"Failed Opens\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"bf2c3dde-3d19-a494-781e-ac29a0fad9f4\", \"gridData\": {\"x\": 40, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"bf2c3dde-3d19-a494-781e-ac29a0fad9f4\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Failed Topic Puts\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"684a7c61-fbf6-b83f-9db9-8527a4eb41a4\", \"layerType\": \"data\", \"metricAccessor\": \"02fedb7c-eafa-641b-8d1f-c167efc52a75\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_failed_topic_mqput_mqput1_total IS NOT NULL\\n| STATS failed_topic = SUM(RATE(ibmmq_qmgr_failed_topic_mqput_mqput1_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"684a7c61-fbf6-b83f-9db9-8527a4eb41a4\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_failed_topic_mqput_mqput1_total IS NOT NULL\\n| STATS failed_topic = SUM(RATE(ibmmq_qmgr_failed_topic_mqput_mqput1_total))\"}, \"columns\": [{\"fieldName\": \"failed_topic\", \"columnId\": \"02fedb7c-eafa-641b-8d1f-c167efc52a75\", \"label\": \"Failed Topic Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"failed_topic\", \"columnId\": \"02fedb7c-eafa-641b-8d1f-c167efc52a75\", \"label\": \"Failed Topic Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"435b6e7d-7991-5d7d-99df-153d6dcc8f89\", \"gridData\": {\"x\": 0, \"y\": 14, \"w\": 24, \"h\": 12, \"i\": \"435b6e7d-7991-5d7d-99df-153d6dcc8f89\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Core Messaging Failures Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"c1207fc7-da87-a189-cafa-cd5ac9d8a264\", \"accessors\": [\"9b2e1bbe-3d27-d076-be21-c7c425e07382\", \"d1e6026d-44a4-d2af-10a5-753ca96469ec\", \"ab02f7c7-6eb8-303d-dc2b-87e05feaacfc\", \"9f69baee-f7e9-6cd4-0693-9e50fe68adb7\"], \"layerType\": \"data\", \"seriesType\": \"area\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"area\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), failed_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), failed_browse = SUM(RATE(ibmmq_qmgr_failed_browse_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"c1207fc7-da87-a189-cafa-cd5ac9d8a264\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), failed_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), failed_browse = SUM(RATE(ibmmq_qmgr_failed_browse_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"failed_put\", \"columnId\": \"9b2e1bbe-3d27-d076-be21-c7c425e07382\", \"label\": \"Failed MQPUT\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_put1\", \"columnId\": \"d1e6026d-44a4-d2af-10a5-753ca96469ec\", \"label\": \"Failed MQPUT1\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_get\", \"columnId\": \"ab02f7c7-6eb8-303d-dc2b-87e05feaacfc\", \"label\": \"Failed MQGET\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_browse\", \"columnId\": \"9f69baee-f7e9-6cd4-0693-9e50fe68adb7\", \"label\": \"Failed Browse\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"failed_put\", \"columnId\": \"9b2e1bbe-3d27-d076-be21-c7c425e07382\", \"label\": \"Failed MQPUT\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_put1\", \"columnId\": \"d1e6026d-44a4-d2af-10a5-753ca96469ec\", \"label\": \"Failed MQPUT1\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_get\", \"columnId\": \"ab02f7c7-6eb8-303d-dc2b-87e05feaacfc\", \"label\": \"Failed MQGET\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_browse\", \"columnId\": \"9f69baee-f7e9-6cd4-0693-9e50fe68adb7\", \"label\": \"Failed Browse\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"e6c67eb0-eb12-0fa3-7af4-aade4608d421\", \"gridData\": {\"x\": 24, \"y\": 14, \"w\": 24, \"h\": 12, \"i\": \"e6c67eb0-eb12-0fa3-7af4-aade4608d421\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Connection & Access Failures Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"be8e15ee-15c1-c9e6-43f1-03386b993bca\", \"accessors\": [\"b7324ed7-f686-8447-bd41-8cb817622d3a\", \"31124fbb-c599-27e9-5c6a-ff41e1856445\", \"bc58b4a9-d988-6ab4-72c7-21f3c627bbdc\"], \"layerType\": \"data\", \"seriesType\": \"area\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"area\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)), failed_close = SUM(RATE(ibmmq_qmgr_failed_mqclose_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"be8e15ee-15c1-c9e6-43f1-03386b993bca\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)), failed_close = SUM(RATE(ibmmq_qmgr_failed_mqclose_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"failed_conn\", \"columnId\": \"b7324ed7-f686-8447-bd41-8cb817622d3a\", \"label\": \"Failed Connect\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_open\", \"columnId\": \"31124fbb-c599-27e9-5c6a-ff41e1856445\", \"label\": \"Failed Open\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_close\", \"columnId\": \"bc58b4a9-d988-6ab4-72c7-21f3c627bbdc\", \"label\": \"Failed Close\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"failed_conn\", \"columnId\": \"b7324ed7-f686-8447-bd41-8cb817622d3a\", \"label\": \"Failed Connect\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_open\", \"columnId\": \"31124fbb-c599-27e9-5c6a-ff41e1856445\", \"label\": \"Failed Open\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_close\", \"columnId\": \"bc58b4a9-d988-6ab4-72c7-21f3c627bbdc\", \"label\": \"Failed Close\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"6e21c415-39f0-ed6c-8aa0-9aad638bec4c\", \"gridData\": {\"x\": 0, \"y\": 26, \"w\": 24, \"h\": 12, \"i\": \"6e21c415-39f0-ed6c-8aa0-9aad638bec4c\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Pub/Sub Failures Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"1350e9bf-f56e-0ffa-5b4b-c751ac082faa\", \"accessors\": [\"8d94108f-ca14-f27f-961c-8d9ce8d750d2\", \"d7b7b03a-d38d-65da-b8d9-124581023353\", \"b670f834-56eb-fb3c-37c2-b4927baa9a33\"], \"layerType\": \"data\", \"seriesType\": \"area\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"area\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_topic_put = SUM(RATE(ibmmq_qmgr_failed_topic_mqput_mqput1_total)), failed_sub_create = SUM(RATE(ibmmq_qmgr_failed_subscription_create_alter_resume_total)), failed_sub_delete = SUM(RATE(ibmmq_qmgr_failed_subscription_delete_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"1350e9bf-f56e-0ffa-5b4b-c751ac082faa\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_topic_put = SUM(RATE(ibmmq_qmgr_failed_topic_mqput_mqput1_total)), failed_sub_create = SUM(RATE(ibmmq_qmgr_failed_subscription_create_alter_resume_total)), failed_sub_delete = SUM(RATE(ibmmq_qmgr_failed_subscription_delete_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"failed_topic_put\", \"columnId\": \"8d94108f-ca14-f27f-961c-8d9ce8d750d2\", \"label\": \"Failed Topic Put\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_sub_create\", \"columnId\": \"d7b7b03a-d38d-65da-b8d9-124581023353\", \"label\": \"Failed Sub Create/Alter\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_sub_delete\", \"columnId\": \"b670f834-56eb-fb3c-37c2-b4927baa9a33\", \"label\": \"Failed Sub Delete\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"failed_topic_put\", \"columnId\": \"8d94108f-ca14-f27f-961c-8d9ce8d750d2\", \"label\": \"Failed Topic Put\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_sub_create\", \"columnId\": \"d7b7b03a-d38d-65da-b8d9-124581023353\", \"label\": \"Failed Sub Create/Alter\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_sub_delete\", \"columnId\": \"b670f834-56eb-fb3c-37c2-b4927baa9a33\", \"label\": \"Failed Sub Delete\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"d80aab03-5c1b-d557-f0a0-813950b2a130\", \"gridData\": {\"x\": 24, \"y\": 26, \"w\": 24, \"h\": 12, \"i\": \"d80aab03-5c1b-d557-f0a0-813950b2a130\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Administrative Failures Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"d2cdcd67-2a3d-00cf-d222-9193b566e9ce\", \"accessors\": [\"b395bd4c-9fee-4726-26c9-458406170909\", \"366d6416-0bd1-03d7-2ebe-a818a51e9f9c\", \"eccb2c98-b939-5ee6-cd49-0bd789346369\", \"7186226c-f662-7557-8f2c-4b371055c0b4\"], \"layerType\": \"data\", \"seriesType\": \"area\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"area\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_inq = SUM(RATE(ibmmq_qmgr_failed_mqinq_total)), failed_set = SUM(RATE(ibmmq_qmgr_failed_mqset_total)), failed_cb = SUM(RATE(ibmmq_qmgr_failed_mqcb_total)), failed_subrq = SUM(RATE(ibmmq_qmgr_failed_mqsubrq_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"d2cdcd67-2a3d-00cf-d222-9193b566e9ce\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_inq = SUM(RATE(ibmmq_qmgr_failed_mqinq_total)), failed_set = SUM(RATE(ibmmq_qmgr_failed_mqset_total)), failed_cb = SUM(RATE(ibmmq_qmgr_failed_mqcb_total)), failed_subrq = SUM(RATE(ibmmq_qmgr_failed_mqsubrq_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"failed_inq\", \"columnId\": \"b395bd4c-9fee-4726-26c9-458406170909\", \"label\": \"Failed Inquire\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_set\", \"columnId\": \"366d6416-0bd1-03d7-2ebe-a818a51e9f9c\", \"label\": \"Failed Set\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_cb\", \"columnId\": \"eccb2c98-b939-5ee6-cd49-0bd789346369\", \"label\": \"Failed Callback\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_subrq\", \"columnId\": \"7186226c-f662-7557-8f2c-4b371055c0b4\", \"label\": \"Failed SubRequest\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"failed_inq\", \"columnId\": \"b395bd4c-9fee-4726-26c9-458406170909\", \"label\": \"Failed Inquire\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_set\", \"columnId\": \"366d6416-0bd1-03d7-2ebe-a818a51e9f9c\", \"label\": \"Failed Set\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_cb\", \"columnId\": \"eccb2c98-b939-5ee6-cd49-0bd789346369\", \"label\": \"Failed Callback\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_subrq\", \"columnId\": \"7186226c-f662-7557-8f2c-4b371055c0b4\", \"label\": \"Failed SubRequest\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"222bfb5a-4391-cf45-2e04-01a2b52d5453\", \"gridData\": {\"x\": 0, \"y\": 38, \"w\": 24, \"h\": 12, \"i\": \"222bfb5a-4391-cf45-2e04-01a2b52d5453\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Commit vs Rollback Rate Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"29674102-6a61-9132-dd2f-a894cf9d2b6f\", \"accessors\": [\"9fcc3079-3f9a-1b6f-14a8-e548007f6ffe\", \"fef52637-e5d9-5839-f705-d1cdb2f557c1\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [{\"rule\": {\"type\": \"matchExactly\", \"values\": [\"Commits\"]}, \"color\": {\"type\": \"colorCode\", \"colorCode\": \"#54b399\"}, \"touched\": false}, {\"rule\": {\"type\": \"matchExactly\", \"values\": [\"Rollbacks\"]}, \"color\": {\"type\": \"colorCode\", \"colorCode\": \"#cc5642\"}, \"touched\": false}], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"29674102-6a61-9132-dd2f-a894cf9d2b6f\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"commit_rate\", \"columnId\": \"9fcc3079-3f9a-1b6f-14a8-e548007f6ffe\", \"label\": \"Commits\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"rollback_rate\", \"columnId\": \"fef52637-e5d9-5839-f705-d1cdb2f557c1\", \"label\": \"Rollbacks\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"commit_rate\", \"columnId\": \"9fcc3079-3f9a-1b6f-14a8-e548007f6ffe\", \"label\": \"Commits\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"rollback_rate\", \"columnId\": \"fef52637-e5d9-5839-f705-d1cdb2f557c1\", \"label\": \"Rollbacks\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"97ad3d14-e606-9dd1-fa5d-aef6d8dcc957\", \"gridData\": {\"x\": 24, \"y\": 38, \"w\": 24, \"h\": 12, \"i\": \"97ad3d14-e606-9dd1-fa5d-aef6d8dcc957\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Expired Messages & FDC Files Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"e2514c51-e3d8-e9e2-c31e-e186645b638d\", \"accessors\": [\"1beb041b-54ad-3559-f5a8-12f8ca296a87\", \"8f2df849-0247-bbf9-f227-5919a2d55a84\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS expired = SUM(RATE(ibmmq_qmgr_expired_message_total)), fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"e2514c51-e3d8-e9e2-c31e-e186645b638d\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS expired = SUM(RATE(ibmmq_qmgr_expired_message_total)), fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"expired\", \"columnId\": \"1beb041b-54ad-3559-f5a8-12f8ca296a87\", \"label\": \"Expired Messages (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"fdc\", \"columnId\": \"8f2df849-0247-bbf9-f227-5919a2d55a84\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"expired\", \"columnId\": \"1beb041b-54ad-3559-f5a8-12f8ca296a87\", \"label\": \"Expired Messages (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"fdc\", \"columnId\": \"8f2df849-0247-bbf9-f227-5919a2d55a84\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"bb57372c-b406-4e48-d509-28c6cf55ea1c\", \"gridData\": {\"x\": 0, \"y\": 50, \"w\": 48, \"h\": 15, \"i\": \"bb57372c-b406-4e48-d509-28c6cf55ea1c\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Error Summary by Queue Manager\", \"visualizationType\": \"lnsDatatable\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"columns\": [{\"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"c8bf0b7b-c5f3-374d-2d7d-baf1f0449f77\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"964fa356-7118-e40d-6ab1-a38875c5c86b\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"a5874841-0eaa-8cde-a477-b6613c331061\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"f168c5dd-4213-9a37-0bba-7be96fa93b58\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"af473192-3754-6672-7ec0-202fbdfc32b6\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"bd3006ba-c0da-670e-980e-6d5966839666\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"c5995863-5ff3-4568-40d1-50f773fc26eb\", \"isTransposed\": false, \"isMetric\": true}], \"layerId\": \"8bd3bc75-dab4-6757-2520-850e41198a28\", \"layerType\": \"data\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), failed_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)), commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), expired = SUM(RATE(ibmmq_qmgr_expired_message_total)), fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) BY attributes.qmgr\\n| EVAL total_failures = COALESCE(failed_put, 0) + COALESCE(failed_put1, 0) + COALESCE(failed_get, 0) + COALESCE(failed_conn, 0) + COALESCE(failed_open, 0)\\n| EVAL rollback_pct = ROUND(CASE( commit_rate + rollback_rate > 0, rollback_rate / (commit_rate + rollback_rate) * 100, 0), 2)\\n| KEEP attributes.qmgr, total_failures, failed_put, failed_get, failed_conn, rollback_pct, expired, fdc\\n| SORT total_failures DESC\\n| LIMIT 50\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"8bd3bc75-dab4-6757-2520-850e41198a28\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), failed_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)), commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), expired = SUM(RATE(ibmmq_qmgr_expired_message_total)), fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)) BY attributes.qmgr\\n| EVAL total_failures = COALESCE(failed_put, 0) + COALESCE(failed_put1, 0) + COALESCE(failed_get, 0) + COALESCE(failed_conn, 0) + COALESCE(failed_open, 0)\\n| EVAL rollback_pct = ROUND(CASE( commit_rate + rollback_rate > 0, rollback_rate / (commit_rate + rollback_rate) * 100, 0), 2)\\n| KEEP attributes.qmgr, total_failures, failed_put, failed_get, failed_conn, rollback_pct, expired, fdc\\n| SORT total_failures DESC\\n| LIMIT 50\"}, \"columns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"total_failures\", \"columnId\": \"c8bf0b7b-c5f3-374d-2d7d-baf1f0449f77\", \"label\": \"Total Failures (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"failed_put\", \"columnId\": \"964fa356-7118-e40d-6ab1-a38875c5c86b\", \"label\": \"Failed Put (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"failed_get\", \"columnId\": \"a5874841-0eaa-8cde-a477-b6613c331061\", \"label\": \"Failed Get (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"failed_conn\", \"columnId\": \"f168c5dd-4213-9a37-0bba-7be96fa93b58\", \"label\": \"Failed Connect (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"rollback_pct\", \"columnId\": \"af473192-3754-6672-7ec0-202fbdfc32b6\", \"label\": \"Rollback %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \"%\"}}}}, {\"fieldName\": \"expired\", \"columnId\": \"bd3006ba-c0da-670e-980e-6d5966839666\", \"label\": \"Expired (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"fdc\", \"columnId\": \"c5995863-5ff3-4568-40d1-50f773fc26eb\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}], \"allColumns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"total_failures\", \"columnId\": \"c8bf0b7b-c5f3-374d-2d7d-baf1f0449f77\", \"label\": \"Total Failures (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"failed_put\", \"columnId\": \"964fa356-7118-e40d-6ab1-a38875c5c86b\", \"label\": \"Failed Put (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"failed_get\", \"columnId\": \"a5874841-0eaa-8cde-a477-b6613c331061\", \"label\": \"Failed Get (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"failed_conn\", \"columnId\": \"f168c5dd-4213-9a37-0bba-7be96fa93b58\", \"label\": \"Failed Connect (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"rollback_pct\", \"columnId\": \"af473192-3754-6672-7ec0-202fbdfc32b6\", \"label\": \"Rollback %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \"%\"}}}}, {\"fieldName\": \"expired\", \"columnId\": \"bd3006ba-c0da-670e-980e-6d5966839666\", \"label\": \"Expired (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"fdc\", \"columnId\": \"c5995863-5ff3-4568-40d1-50f773fc26eb\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}]", + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"disabled\":false,\"negate\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"data_stream.dataset\",\"field\":\"data_stream.dataset\",\"params\":{\"query\":\"ibmmq.otel\"}},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"ibmmq.otel\"}}}],\"query\":{\"query\":\"\",\"language\":\"kuery\"}}" + }, + "timeRestore": true, + "timeFrom": "now-1h", + "timeTo": "now", + "version": 1, + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{}", + "showApplySelections": false + } + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-10-01T00:00:00Z", + "created_by": "admin", + "id": "ibmmq_otel-error-analysis", + "managed": false, + "references": [ + { + "type": "dashboard", + "id": "ibmmq_otel-overview", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-message-traffic", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-error-analysis", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-resources", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_at": "2023-10-01T00:00:00Z", + "updated_by": "admin", + "version": "1" +} \ No newline at end of file diff --git a/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-message-traffic.json b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-message-traffic.json new file mode 100644 index 00000000000..3694116796d --- /dev/null +++ b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-message-traffic.json @@ -0,0 +1,54 @@ +{ + "attributes": { + "title": "[IBM MQ OTel] Message Traffic", + "description": "Detailed message throughput analysis for IBM MQ queue managers including put/get rates, byte throughput, persistence breakdown, pub/sub activity, and connection metrics.", + "panelsJSON": "[{\"panelIndex\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\", \"gridData\": {\"x\": 0, \"y\": 0, \"w\": 48, \"h\": 2, \"i\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\"}, \"type\": \"links\", \"embeddableConfig\": {\"title\": \"Navigation\", \"enhancements\": {}, \"attributes\": {\"layout\": \"horizontal\", \"links\": [{\"id\": \"3af4ba12-6f83-488a-bdc9-0c7216a22d73\", \"order\": 0, \"label\": \"Overview\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard\"}, {\"id\": \"d16d89a9-684e-0340-d3b9-d6235eafdcda\", \"order\": 1, \"label\": \"Message Traffic\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard\"}, {\"id\": \"34ac4a25-a459-0027-aab9-c29ed2019add\", \"order\": 2, \"label\": \"Error Analysis\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard\"}, {\"id\": \"efecfd2b-d524-b83b-c3cd-35d5623b9342\", \"order\": 3, \"label\": \"Resources & Performance\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard\"}]}}}, {\"panelIndex\": \"0563dba8-e018-01bf-7e3c-91932750954e\", \"gridData\": {\"x\": 0, \"y\": 2, \"w\": 16, \"h\": 12, \"i\": \"0563dba8-e018-01bf-7e3c-91932750954e\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## [IBM MQ OTel] Message Traffic\\n\\nThis dashboard provides detailed insight into IBM MQ message flow:\\n- Per-queue-manager put and get message rates\\n- Byte throughput for puts and gets\\n- Persistent vs non-persistent message breakdown\\n- Pub/sub topic and subscriber delivery rates\\n- Connection and disconnection activity\\n\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"ad4777fe-093f-16d0-8488-a09b33e0a37c\", \"gridData\": {\"x\": 16, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"ad4777fe-093f-16d0-8488-a09b33e0a37c\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Put Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"4090b9b7-ab6e-4b13-28f6-373b3403ebd3\", \"layerType\": \"data\", \"metricAccessor\": \"6a210ad9-efc1-4cdd-595e-520155a1ab0c\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"4090b9b7-ab6e-4b13-28f6-373b3403ebd3\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total))\"}, \"columns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"6a210ad9-efc1-4cdd-595e-520155a1ab0c\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"6a210ad9-efc1-4cdd-595e-520155a1ab0c\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"aacf1aca-5e37-d984-9f06-406c5385d416\", \"gridData\": {\"x\": 24, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"aacf1aca-5e37-d984-9f06-406c5385d416\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Get Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"a62a876d-8754-d90e-038b-eb7992ccfbb7\", \"layerType\": \"data\", \"metricAccessor\": \"cd01512f-be92-6193-3d83-8af4ff358971\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL\\n| STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"a62a876d-8754-d90e-038b-eb7992ccfbb7\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL\\n| STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total))\"}, \"columns\": [{\"fieldName\": \"get_rate\", \"columnId\": \"cd01512f-be92-6193-3d83-8af4ff358971\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"get_rate\", \"columnId\": \"cd01512f-be92-6193-3d83-8af4ff358971\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"d850e25f-9b91-c75d-36bf-a0c391300fa6\", \"gridData\": {\"x\": 32, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"d850e25f-9b91-c75d-36bf-a0c391300fa6\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Put Bytes Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"719f9ea0-1ed7-e2e4-1680-369958a8675f\", \"layerType\": \"data\", \"metricAccessor\": \"a474e9ef-4c0c-328e-3ca8-0115f0c6779e\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_bytes_total IS NOT NULL\\n| STATS put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"719f9ea0-1ed7-e2e4-1680-369958a8675f\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_bytes_total IS NOT NULL\\n| STATS put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total))\"}, \"columns\": [{\"fieldName\": \"put_bytes\", \"columnId\": \"a474e9ef-4c0c-328e-3ca8-0115f0c6779e\", \"label\": \"Put Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}], \"allColumns\": [{\"fieldName\": \"put_bytes\", \"columnId\": \"a474e9ef-4c0c-328e-3ca8-0115f0c6779e\", \"label\": \"Put Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"67b5892b-f1d7-f1d8-3d7a-bd466d2d1542\", \"gridData\": {\"x\": 40, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"67b5892b-f1d7-f1d8-3d7a-bd466d2d1542\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Get Bytes Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"b8a2c0d3-6313-28ba-4264-703f1227f4f1\", \"layerType\": \"data\", \"metricAccessor\": \"9c594726-10fe-55c5-8c17-6dfdb84791e7\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_bytes_total IS NOT NULL\\n| STATS get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"b8a2c0d3-6313-28ba-4264-703f1227f4f1\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_bytes_total IS NOT NULL\\n| STATS get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total))\"}, \"columns\": [{\"fieldName\": \"get_bytes\", \"columnId\": \"9c594726-10fe-55c5-8c17-6dfdb84791e7\", \"label\": \"Get Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}], \"allColumns\": [{\"fieldName\": \"get_bytes\", \"columnId\": \"9c594726-10fe-55c5-8c17-6dfdb84791e7\", \"label\": \"Get Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"88db327a-7904-d279-ec62-42b6bf222c81\", \"gridData\": {\"x\": 16, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"88db327a-7904-d279-ec62-42b6bf222c81\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Topic Put Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"1af63e96-11b9-b10c-c305-85bc99eb7c0a\", \"layerType\": \"data\", \"metricAccessor\": \"9d7a6997-e804-da6a-66cd-f9c13959988a\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_topic_mqput_mqput1_total IS NOT NULL\\n| STATS topic_rate = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"1af63e96-11b9-b10c-c305-85bc99eb7c0a\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_topic_mqput_mqput1_total IS NOT NULL\\n| STATS topic_rate = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total))\"}, \"columns\": [{\"fieldName\": \"topic_rate\", \"columnId\": \"9d7a6997-e804-da6a-66cd-f9c13959988a\", \"label\": \"Topic Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"topic_rate\", \"columnId\": \"9d7a6997-e804-da6a-66cd-f9c13959988a\", \"label\": \"Topic Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"30bf7386-340c-5fbf-0f68-8ca6effdea94\", \"gridData\": {\"x\": 24, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"30bf7386-340c-5fbf-0f68-8ca6effdea94\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Subscriber Delivery Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"57b7e39d-8181-3c7f-46f4-6deee4887ad5\", \"layerType\": \"data\", \"metricAccessor\": \"f62ea641-7121-6905-0444-99fa23c35ed0\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_published_to_subscribers_message_total IS NOT NULL\\n| STATS sub_rate = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"57b7e39d-8181-3c7f-46f4-6deee4887ad5\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_published_to_subscribers_message_total IS NOT NULL\\n| STATS sub_rate = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total))\"}, \"columns\": [{\"fieldName\": \"sub_rate\", \"columnId\": \"f62ea641-7121-6905-0444-99fa23c35ed0\", \"label\": \"Sub Delivery\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"sub_rate\", \"columnId\": \"f62ea641-7121-6905-0444-99fa23c35ed0\", \"label\": \"Sub Delivery\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"accd3c51-5a66-3429-177c-a6e580fbb0c0\", \"gridData\": {\"x\": 32, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"accd3c51-5a66-3429-177c-a6e580fbb0c0\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Connection Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"230e766c-cdda-4069-71ef-728a3f6aa33b\", \"layerType\": \"data\", \"metricAccessor\": \"f0a546cc-8a6b-ead2-ef13-c9c2f3a11de8\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqconn_mqconnx_total IS NOT NULL\\n| STATS conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"230e766c-cdda-4069-71ef-728a3f6aa33b\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqconn_mqconnx_total IS NOT NULL\\n| STATS conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total))\"}, \"columns\": [{\"fieldName\": \"conn_rate\", \"columnId\": \"f0a546cc-8a6b-ead2-ef13-c9c2f3a11de8\", \"label\": \"Connections\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"conn_rate\", \"columnId\": \"f0a546cc-8a6b-ead2-ef13-c9c2f3a11de8\", \"label\": \"Connections\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"dd91ad74-ad2b-626a-0ca2-c726bd6e39e6\", \"gridData\": {\"x\": 40, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"dd91ad74-ad2b-626a-0ca2-c726bd6e39e6\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Disconnect Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"011b9715-4ee2-f664-76dc-b480396aa4c3\", \"layerType\": \"data\", \"metricAccessor\": \"a86451a0-98dc-b821-49f8-c2012e65193e\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqdisc_total IS NOT NULL\\n| STATS disc_rate = SUM(RATE(ibmmq_qmgr_mqdisc_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"011b9715-4ee2-f664-76dc-b480396aa4c3\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqdisc_total IS NOT NULL\\n| STATS disc_rate = SUM(RATE(ibmmq_qmgr_mqdisc_total))\"}, \"columns\": [{\"fieldName\": \"disc_rate\", \"columnId\": \"a86451a0-98dc-b821-49f8-c2012e65193e\", \"label\": \"Disconnections\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"disc_rate\", \"columnId\": \"a86451a0-98dc-b821-49f8-c2012e65193e\", \"label\": \"Disconnections\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"7343d6f9-4e22-3c07-b723-96dad0a7fa52\", \"gridData\": {\"x\": 0, \"y\": 14, \"w\": 24, \"h\": 12, \"i\": \"7343d6f9-4e22-3c07-b723-96dad0a7fa52\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Put Rate by Queue Manager\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"d7a647d4-27d2-e450-605d-f8ca04320b16\", \"accessors\": [\"2bf0375b-b611-aa89-424d-24a9db201d9f\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"d7a647d4-27d2-e450-605d-f8ca04320b16\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"2bf0375b-b611-aa89-424d-24a9db201d9f\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"2bf0375b-b611-aa89-424d-24a9db201d9f\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"185a5996-8470-a66a-7383-9c343bf1529b\", \"gridData\": {\"x\": 24, \"y\": 14, \"w\": 24, \"h\": 12, \"i\": \"185a5996-8470-a66a-7383-9c343bf1529b\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Get Rate by Queue Manager\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"26a40c7f-5169-bfb9-be0b-129f95e521b2\", \"accessors\": [\"1cdaaaa5-1ef5-45bd-34dc-53eaca9117b6\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL\\n| STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"26a40c7f-5169-bfb9-be0b-129f95e521b2\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL\\n| STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"get_rate\", \"columnId\": \"1cdaaaa5-1ef5-45bd-34dc-53eaca9117b6\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"get_rate\", \"columnId\": \"1cdaaaa5-1ef5-45bd-34dc-53eaca9117b6\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"0847d887-8bb5-6bfc-bafd-97f76906d8fb\", \"gridData\": {\"x\": 0, \"y\": 26, \"w\": 24, \"h\": 12, \"i\": \"0847d887-8bb5-6bfc-bafd-97f76906d8fb\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Byte Throughput Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"6d8d8ead-00a1-d063-0fc6-d32423a4719d\", \"accessors\": [\"81fad4fb-979c-f470-1fb1-5f8223ba193d\", \"50c8ffd6-c8df-4353-913a-d691080be034\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total)), get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"6d8d8ead-00a1-d063-0fc6-d32423a4719d\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total)), get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"put_bytes\", \"columnId\": \"81fad4fb-979c-f470-1fb1-5f8223ba193d\", \"label\": \"Put Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"get_bytes\", \"columnId\": \"50c8ffd6-c8df-4353-913a-d691080be034\", \"label\": \"Get Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"put_bytes\", \"columnId\": \"81fad4fb-979c-f470-1fb1-5f8223ba193d\", \"label\": \"Put Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"get_bytes\", \"columnId\": \"50c8ffd6-c8df-4353-913a-d691080be034\", \"label\": \"Get Bytes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"8f42911b-37a1-d6d0-44fd-8b0184b11466\", \"gridData\": {\"x\": 24, \"y\": 26, \"w\": 24, \"h\": 12, \"i\": \"8f42911b-37a1-d6d0-44fd-8b0184b11466\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Connection Activity Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"fa202345-9a30-279f-ad40-36cb306614d0\", \"accessors\": [\"f7f9139f-5d95-2667-13e5-97823336ccb8\", \"2811b58e-f191-e996-8a21-0afb24e526c7\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS connects = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)), disconnects = SUM(RATE(ibmmq_qmgr_mqdisc_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"fa202345-9a30-279f-ad40-36cb306614d0\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS connects = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)), disconnects = SUM(RATE(ibmmq_qmgr_mqdisc_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"connects\", \"columnId\": \"f7f9139f-5d95-2667-13e5-97823336ccb8\", \"label\": \"Connects\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"disconnects\", \"columnId\": \"2811b58e-f191-e996-8a21-0afb24e526c7\", \"label\": \"Disconnects\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"connects\", \"columnId\": \"f7f9139f-5d95-2667-13e5-97823336ccb8\", \"label\": \"Connects\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"disconnects\", \"columnId\": \"2811b58e-f191-e996-8a21-0afb24e526c7\", \"label\": \"Disconnects\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"3914ace9-2f55-f058-d97f-5be3e3950b4b\", \"gridData\": {\"x\": 0, \"y\": 38, \"w\": 24, \"h\": 12, \"i\": \"3914ace9-2f55-f058-d97f-5be3e3950b4b\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Persistent vs Non-Persistent Puts\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"69f86248-d746-7205-1594-9450b0b8f8cf\", \"accessors\": [\"8ca552eb-d450-58c9-8fe9-e279e209ade1\", \"55ff1c85-4f96-2c00-ccc8-639f7f44b256\"], \"layerType\": \"data\", \"seriesType\": \"area\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"area\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS persistent_put = SUM(RATE(ibmmq_qmgr_persistent_message_mqput_total)), non_persistent_put = SUM(RATE(ibmmq_qmgr_non_persistent_message_mqput_total)), persistent_put1 = SUM(RATE(ibmmq_qmgr_persistent_message_mqput1_total)), non_persistent_put1 = SUM(RATE(ibmmq_qmgr_non_persistent_message_mqput1_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| EVAL persistent = COALESCE(persistent_put, 0) + COALESCE(persistent_put1, 0), non_persistent = COALESCE(non_persistent_put, 0) + COALESCE(non_persistent_put1, 0)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"69f86248-d746-7205-1594-9450b0b8f8cf\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS persistent_put = SUM(RATE(ibmmq_qmgr_persistent_message_mqput_total)), non_persistent_put = SUM(RATE(ibmmq_qmgr_non_persistent_message_mqput_total)), persistent_put1 = SUM(RATE(ibmmq_qmgr_persistent_message_mqput1_total)), non_persistent_put1 = SUM(RATE(ibmmq_qmgr_non_persistent_message_mqput1_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| EVAL persistent = COALESCE(persistent_put, 0) + COALESCE(persistent_put1, 0), non_persistent = COALESCE(non_persistent_put, 0) + COALESCE(non_persistent_put1, 0)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"persistent\", \"columnId\": \"8ca552eb-d450-58c9-8fe9-e279e209ade1\", \"label\": \"Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"non_persistent\", \"columnId\": \"55ff1c85-4f96-2c00-ccc8-639f7f44b256\", \"label\": \"Non-Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"persistent\", \"columnId\": \"8ca552eb-d450-58c9-8fe9-e279e209ade1\", \"label\": \"Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"non_persistent\", \"columnId\": \"55ff1c85-4f96-2c00-ccc8-639f7f44b256\", \"label\": \"Non-Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"47246274-6f6f-b480-30c3-4d492f2f154a\", \"gridData\": {\"x\": 24, \"y\": 38, \"w\": 24, \"h\": 12, \"i\": \"47246274-6f6f-b480-30c3-4d492f2f154a\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Persistent vs Non-Persistent Gets\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"219a3204-1faf-0e44-aa9c-11eafe44224a\", \"accessors\": [\"8ca552eb-d450-58c9-8fe9-e279e209ade1\", \"55ff1c85-4f96-2c00-ccc8-639f7f44b256\"], \"layerType\": \"data\", \"seriesType\": \"area\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"area\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS persistent = SUM(RATE(ibmmq_qmgr_persistent_message_destructive_get_total)), non_persistent = SUM(RATE(ibmmq_qmgr_non_persistent_message_destructive_get_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"219a3204-1faf-0e44-aa9c-11eafe44224a\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS persistent = SUM(RATE(ibmmq_qmgr_persistent_message_destructive_get_total)), non_persistent = SUM(RATE(ibmmq_qmgr_non_persistent_message_destructive_get_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"persistent\", \"columnId\": \"8ca552eb-d450-58c9-8fe9-e279e209ade1\", \"label\": \"Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"non_persistent\", \"columnId\": \"55ff1c85-4f96-2c00-ccc8-639f7f44b256\", \"label\": \"Non-Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"persistent\", \"columnId\": \"8ca552eb-d450-58c9-8fe9-e279e209ade1\", \"label\": \"Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"non_persistent\", \"columnId\": \"55ff1c85-4f96-2c00-ccc8-639f7f44b256\", \"label\": \"Non-Persistent\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"f39e319f-10d0-a14f-0ad8-3b88dd2d5efa\", \"gridData\": {\"x\": 0, \"y\": 50, \"w\": 48, \"h\": 3, \"i\": \"f39e319f-10d0-a14f-0ad8-3b88dd2d5efa\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"Pub/Sub\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## Publish / Subscribe\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"a33e153b-5aa7-121f-a303-7409c4d1b3dd\", \"gridData\": {\"x\": 0, \"y\": 53, \"w\": 24, \"h\": 12, \"i\": \"a33e153b-5aa7-121f-a303-7409c4d1b3dd\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Topic Put vs Subscriber Delivery Rate\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"7d397e2c-9b57-b1d0-68ea-a564c741beeb\", \"accessors\": [\"b138dade-26ed-6400-c9a3-4cf3dbf7ec26\", \"d74ef966-e424-51c2-2fad-c9db4d127134\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS topic_puts = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total)), sub_delivery = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"7d397e2c-9b57-b1d0-68ea-a564c741beeb\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS topic_puts = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total)), sub_delivery = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"topic_puts\", \"columnId\": \"b138dade-26ed-6400-c9a3-4cf3dbf7ec26\", \"label\": \"Topic Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"sub_delivery\", \"columnId\": \"d74ef966-e424-51c2-2fad-c9db4d127134\", \"label\": \"Subscriber Delivery\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"topic_puts\", \"columnId\": \"b138dade-26ed-6400-c9a3-4cf3dbf7ec26\", \"label\": \"Topic Puts\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"sub_delivery\", \"columnId\": \"d74ef966-e424-51c2-2fad-c9db4d127134\", \"label\": \"Subscriber Delivery\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"1da10597-b081-17e1-89b0-5616f536ccb5\", \"gridData\": {\"x\": 24, \"y\": 53, \"w\": 24, \"h\": 12, \"i\": \"1da10597-b081-17e1-89b0-5616f536ccb5\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Subscription Activity Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"eb295e19-740c-ebf0-8201-f36cf386eea6\", \"accessors\": [\"c580cb44-2be1-1e28-d3f8-07d852f20e7e\", \"aca8386b-d12a-d894-5d01-f4f9733a9d05\", \"e8e920ae-05d8-3f92-c79b-e8733b514828\", \"f1f92718-8ad4-9dc1-ab9b-ccd3b4e0d693\"], \"layerType\": \"data\", \"seriesType\": \"bar_stacked\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"bar_stacked\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS durable_create = SUM(RATE(ibmmq_qmgr_durable_subscription_create_total)), durable_delete = SUM(RATE(ibmmq_qmgr_durable_subscription_delete_total)), non_durable_create = SUM(RATE(ibmmq_qmgr_non_durable_subscription_create_total)), non_durable_delete = SUM(RATE(ibmmq_qmgr_non_durable_subscription_delete_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"eb295e19-740c-ebf0-8201-f36cf386eea6\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS durable_create = SUM(RATE(ibmmq_qmgr_durable_subscription_create_total)), durable_delete = SUM(RATE(ibmmq_qmgr_durable_subscription_delete_total)), non_durable_create = SUM(RATE(ibmmq_qmgr_non_durable_subscription_create_total)), non_durable_delete = SUM(RATE(ibmmq_qmgr_non_durable_subscription_delete_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"durable_create\", \"columnId\": \"c580cb44-2be1-1e28-d3f8-07d852f20e7e\", \"label\": \"Durable Create\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"durable_delete\", \"columnId\": \"aca8386b-d12a-d894-5d01-f4f9733a9d05\", \"label\": \"Durable Delete\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"non_durable_create\", \"columnId\": \"e8e920ae-05d8-3f92-c79b-e8733b514828\", \"label\": \"Non-Durable Create\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"non_durable_delete\", \"columnId\": \"f1f92718-8ad4-9dc1-ab9b-ccd3b4e0d693\", \"label\": \"Non-Durable Delete\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"durable_create\", \"columnId\": \"c580cb44-2be1-1e28-d3f8-07d852f20e7e\", \"label\": \"Durable Create\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"durable_delete\", \"columnId\": \"aca8386b-d12a-d894-5d01-f4f9733a9d05\", \"label\": \"Durable Delete\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"non_durable_create\", \"columnId\": \"e8e920ae-05d8-3f92-c79b-e8733b514828\", \"label\": \"Non-Durable Create\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"non_durable_delete\", \"columnId\": \"f1f92718-8ad4-9dc1-ab9b-ccd3b4e0d693\", \"label\": \"Non-Durable Delete\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"782f2331-4ca7-cb2c-1862-c89df8ed0c6a\", \"gridData\": {\"x\": 0, \"y\": 65, \"w\": 48, \"h\": 15, \"i\": \"782f2331-4ca7-cb2c-1862-c89df8ed0c6a\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Message Traffic Summary by Queue Manager\", \"visualizationType\": \"lnsDatatable\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"columns\": [{\"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"2fdf4605-0fe3-4cce-45ba-e2af2096130b\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"1bf1915f-63d5-8159-e0b8-6d2588537478\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"30848d2e-1ae2-7187-016d-333378e9204f\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"b68d938b-6492-7edf-3c34-bc662501c890\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"d87afc84-e00f-dfca-45c5-34de753a1589\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"d23eaa2c-c3c3-bec2-9635-3b9e5f5b75e4\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"a0bc3ba3-0343-739c-93e6-cb3290309d3d\", \"isTransposed\": false, \"isMetric\": true}], \"layerId\": \"79edd81a-d168-0f99-aa2b-49f92f4646d0\", \"layerType\": \"data\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)), put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total)), get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total)), conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)), topic_rate = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total)), sub_delivery = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total)) BY attributes.qmgr\\n| SORT put_rate DESC\\n| LIMIT 50\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"79edd81a-d168-0f99-aa2b-49f92f4646d0\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)), put_bytes = SUM(RATE(ibmmq_qmgr_mqput_mqput1_bytes_total)), get_bytes = SUM(RATE(ibmmq_qmgr_destructive_get_bytes_total)), conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total)), topic_rate = SUM(RATE(ibmmq_qmgr_topic_mqput_mqput1_total)), sub_delivery = SUM(RATE(ibmmq_qmgr_published_to_subscribers_message_total)) BY attributes.qmgr\\n| SORT put_rate DESC\\n| LIMIT 50\"}, \"columns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"put_rate\", \"columnId\": \"2fdf4605-0fe3-4cce-45ba-e2af2096130b\", \"label\": \"Put Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"get_rate\", \"columnId\": \"1bf1915f-63d5-8159-e0b8-6d2588537478\", \"label\": \"Get Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"put_bytes\", \"columnId\": \"30848d2e-1ae2-7187-016d-333378e9204f\", \"label\": \"Put Bytes (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"get_bytes\", \"columnId\": \"b68d938b-6492-7edf-3c34-bc662501c890\", \"label\": \"Get Bytes (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"conn_rate\", \"columnId\": \"d87afc84-e00f-dfca-45c5-34de753a1589\", \"label\": \"Connects (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"topic_rate\", \"columnId\": \"d23eaa2c-c3c3-bec2-9635-3b9e5f5b75e4\", \"label\": \"Topic Puts (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"sub_delivery\", \"columnId\": \"a0bc3ba3-0343-739c-93e6-cb3290309d3d\", \"label\": \"Sub Delivery (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}], \"allColumns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"put_rate\", \"columnId\": \"2fdf4605-0fe3-4cce-45ba-e2af2096130b\", \"label\": \"Put Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"get_rate\", \"columnId\": \"1bf1915f-63d5-8159-e0b8-6d2588537478\", \"label\": \"Get Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"put_bytes\", \"columnId\": \"30848d2e-1ae2-7187-016d-333378e9204f\", \"label\": \"Put Bytes (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"get_bytes\", \"columnId\": \"b68d938b-6492-7edf-3c34-bc662501c890\", \"label\": \"Get Bytes (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"conn_rate\", \"columnId\": \"d87afc84-e00f-dfca-45c5-34de753a1589\", \"label\": \"Connects (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"topic_rate\", \"columnId\": \"d23eaa2c-c3c3-bec2-9635-3b9e5f5b75e4\", \"label\": \"Topic Puts (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"sub_delivery\", \"columnId\": \"a0bc3ba3-0343-739c-93e6-cb3290309d3d\", \"label\": \"Sub Delivery (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}]", + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"disabled\":false,\"negate\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"data_stream.dataset\",\"field\":\"data_stream.dataset\",\"params\":{\"query\":\"ibmmq.otel\"}},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"ibmmq.otel\"}}}],\"query\":{\"query\":\"\",\"language\":\"kuery\"}}" + }, + "timeRestore": true, + "timeFrom": "now-1h", + "timeTo": "now", + "version": 1, + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{}", + "showApplySelections": false + } + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-10-01T00:00:00Z", + "created_by": "admin", + "id": "ibmmq_otel-message-traffic", + "managed": false, + "references": [ + { + "type": "dashboard", + "id": "ibmmq_otel-overview", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-message-traffic", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-error-analysis", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-resources", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_at": "2023-10-01T00:00:00Z", + "updated_by": "admin", + "version": "1" +} \ No newline at end of file diff --git a/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-overview.json b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-overview.json new file mode 100644 index 00000000000..7d1abe6b9d3 --- /dev/null +++ b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-overview.json @@ -0,0 +1,54 @@ +{ + "attributes": { + "title": "[IBM MQ OTel] Overview", + "description": "High-level health overview of IBM MQ queue managers showing golden signals: message throughput, transaction health, API error rates, log performance, and resource utilization.", + "panelsJSON": "[{\"panelIndex\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\", \"gridData\": {\"x\": 0, \"y\": 0, \"w\": 48, \"h\": 2, \"i\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\"}, \"type\": \"links\", \"embeddableConfig\": {\"title\": \"Navigation\", \"enhancements\": {}, \"attributes\": {\"layout\": \"horizontal\", \"links\": [{\"id\": \"3af4ba12-6f83-488a-bdc9-0c7216a22d73\", \"order\": 0, \"label\": \"Overview\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard\"}, {\"id\": \"d16d89a9-684e-0340-d3b9-d6235eafdcda\", \"order\": 1, \"label\": \"Message Traffic\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard\"}, {\"id\": \"34ac4a25-a459-0027-aab9-c29ed2019add\", \"order\": 2, \"label\": \"Error Analysis\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard\"}, {\"id\": \"efecfd2b-d524-b83b-c3cd-35d5623b9342\", \"order\": 3, \"label\": \"Resources & Performance\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard\"}]}}}, {\"panelIndex\": \"0563dba8-e018-01bf-7e3c-91932750954e\", \"gridData\": {\"x\": 0, \"y\": 2, \"w\": 16, \"h\": 12, \"i\": \"0563dba8-e018-01bf-7e3c-91932750954e\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## [IBM MQ OTel] Overview\\n\\nThis dashboard provides a high-level health view of IBM MQ queue managers:\\n- Message put and get throughput rates\\n- Transaction commit and rollback activity\\n- Failed API operation rates\\n- Log write latency and filesystem capacity\\n- CPU load and resource utilization\\n- FDC file generation (internal errors)\\n\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"99bf4b70-8197-5d71-7b13-fa15e41904ed\", \"gridData\": {\"x\": 16, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"99bf4b70-8197-5d71-7b13-fa15e41904ed\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Message Put Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"4090b9b7-ab6e-4b13-28f6-373b3403ebd3\", \"layerType\": \"data\", \"metricAccessor\": \"6a210ad9-efc1-4cdd-595e-520155a1ab0c\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"4090b9b7-ab6e-4b13-28f6-373b3403ebd3\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqput_mqput1_total IS NOT NULL\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total))\"}, \"columns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"6a210ad9-efc1-4cdd-595e-520155a1ab0c\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"6a210ad9-efc1-4cdd-595e-520155a1ab0c\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"c40d30dd-c84c-65aa-2120-f494c307b958\", \"gridData\": {\"x\": 24, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"c40d30dd-c84c-65aa-2120-f494c307b958\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Message Get Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"a62a876d-8754-d90e-038b-eb7992ccfbb7\", \"layerType\": \"data\", \"metricAccessor\": \"cd01512f-be92-6193-3d83-8af4ff358971\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL\\n| STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"a62a876d-8754-d90e-038b-eb7992ccfbb7\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_destructive_get_total IS NOT NULL\\n| STATS get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total))\"}, \"columns\": [{\"fieldName\": \"get_rate\", \"columnId\": \"cd01512f-be92-6193-3d83-8af4ff358971\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"get_rate\", \"columnId\": \"cd01512f-be92-6193-3d83-8af4ff358971\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"c3195505-bec5-c81d-5d71-242dc44523f8\", \"gridData\": {\"x\": 32, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"c3195505-bec5-c81d-5d71-242dc44523f8\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Connection Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"230e766c-cdda-4069-71ef-728a3f6aa33b\", \"layerType\": \"data\", \"metricAccessor\": \"f0a546cc-8a6b-ead2-ef13-c9c2f3a11de8\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqconn_mqconnx_total IS NOT NULL\\n| STATS conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"230e766c-cdda-4069-71ef-728a3f6aa33b\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_mqconn_mqconnx_total IS NOT NULL\\n| STATS conn_rate = SUM(RATE(ibmmq_qmgr_mqconn_mqconnx_total))\"}, \"columns\": [{\"fieldName\": \"conn_rate\", \"columnId\": \"f0a546cc-8a6b-ead2-ef13-c9c2f3a11de8\", \"label\": \"Connections\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"conn_rate\", \"columnId\": \"f0a546cc-8a6b-ead2-ef13-c9c2f3a11de8\", \"label\": \"Connections\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"9a03e8e4-0f81-c693-57be-e8b52787b96f\", \"gridData\": {\"x\": 40, \"y\": 2, \"w\": 8, \"h\": 6, \"i\": \"9a03e8e4-0f81-c693-57be-e8b52787b96f\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Commit Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"0308dd0c-785e-f62a-4cb4-b85a13c56c84\", \"layerType\": \"data\", \"metricAccessor\": \"d469a4e8-a34f-c142-3c23-d8812eea165f\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_commit_total IS NOT NULL\\n| STATS commit_rate = SUM(RATE(ibmmq_qmgr_commit_total))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"0308dd0c-785e-f62a-4cb4-b85a13c56c84\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_commit_total IS NOT NULL\\n| STATS commit_rate = SUM(RATE(ibmmq_qmgr_commit_total))\"}, \"columns\": [{\"fieldName\": \"commit_rate\", \"columnId\": \"d469a4e8-a34f-c142-3c23-d8812eea165f\", \"label\": \"Commits\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"commit_rate\", \"columnId\": \"d469a4e8-a34f-c142-3c23-d8812eea165f\", \"label\": \"Commits\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"d07f2dea-25f0-bbe7-60fc-8e69b23023c0\", \"gridData\": {\"x\": 16, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"d07f2dea-25f0-bbe7-60fc-8e69b23023c0\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Failed Operations Rate\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"a7a9c12d-3b23-6224-476e-1f0de7d54cdd\", \"layerType\": \"data\", \"metricAccessor\": \"9cc16006-edcf-b5a9-80ec-f992719ba3b3\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS f_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), f_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), f_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), f_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), f_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total))\\n| EVAL failed_rate = COALESCE(f_put, 0) + COALESCE(f_put1, 0) + COALESCE(f_get, 0) + COALESCE(f_conn, 0) + COALESCE(f_open, 0)\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"a7a9c12d-3b23-6224-476e-1f0de7d54cdd\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS f_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), f_put1 = SUM(RATE(ibmmq_qmgr_failed_mqput1_total)), f_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), f_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), f_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total))\\n| EVAL failed_rate = COALESCE(f_put, 0) + COALESCE(f_put1, 0) + COALESCE(f_get, 0) + COALESCE(f_conn, 0) + COALESCE(f_open, 0)\"}, \"columns\": [{\"fieldName\": \"failed_rate\", \"columnId\": \"9cc16006-edcf-b5a9-80ec-f992719ba3b3\", \"label\": \"Failed Ops\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"allColumns\": [{\"fieldName\": \"failed_rate\", \"columnId\": \"9cc16006-edcf-b5a9-80ec-f992719ba3b3\", \"label\": \"Failed Ops\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\", \"compact\": true}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"ea1ab1ad-cc08-72d0-74fa-dac86f370bd9\", \"gridData\": {\"x\": 24, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"ea1ab1ad-cc08-72d0-74fa-dac86f370bd9\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Log Write Latency\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"56bdcd99-82d0-bf77-2a6c-5e73bb664bd4\", \"layerType\": \"data\", \"metricAccessor\": \"41204799-fb87-a282-47b5-2644e2b4adb8\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL\\n| STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds))\\n| EVAL latency_ms = ROUND(latency_s * 1000, 3)\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"56bdcd99-82d0-bf77-2a6c-5e73bb664bd4\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL\\n| STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds))\\n| EVAL latency_ms = ROUND(latency_s * 1000, 3)\"}, \"columns\": [{\"fieldName\": \"latency_ms\", \"columnId\": \"41204799-fb87-a282-47b5-2644e2b4adb8\", \"label\": \"Log Latency\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3, \"suffix\": \" ms\"}}}}], \"allColumns\": [{\"fieldName\": \"latency_ms\", \"columnId\": \"41204799-fb87-a282-47b5-2644e2b4adb8\", \"label\": \"Log Latency\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3, \"suffix\": \" ms\"}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"3c1abf6d-a5b9-b56b-bd18-fd433b697328\", \"gridData\": {\"x\": 32, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"3c1abf6d-a5b9-b56b-bd18-fd433b697328\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"Log FS Free\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"686e6b88-829d-aa64-cbfa-24da3e7c3259\", \"layerType\": \"data\", \"metricAccessor\": \"fb920bfe-2826-28ac-2240-ce5ed2f61dea\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_file_system_free_space_percentage IS NOT NULL\\n| STATS free_pct = MIN(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"686e6b88-829d-aa64-cbfa-24da3e7c3259\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_file_system_free_space_percentage IS NOT NULL\\n| STATS free_pct = MIN(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage))\"}, \"columns\": [{\"fieldName\": \"free_pct\", \"columnId\": \"fb920bfe-2826-28ac-2240-ce5ed2f61dea\", \"label\": \"Log FS Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}], \"allColumns\": [{\"fieldName\": \"free_pct\", \"columnId\": \"fb920bfe-2826-28ac-2240-ce5ed2f61dea\", \"label\": \"Log FS Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"fea0f305-11b8-b8f3-3bc5-a8b2bf64a13a\", \"gridData\": {\"x\": 40, \"y\": 8, \"w\": 8, \"h\": 6, \"i\": \"fea0f305-11b8-b8f3-3bc5-a8b2bf64a13a\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"attributes\": {\"title\": \"FDC Files\", \"visualizationType\": \"lnsMetric\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"28fdf49b-daa6-ab01-2a61-433dfe5b428c\", \"layerType\": \"data\", \"metricAccessor\": \"fee27a07-9aa2-fc10-10a5-3ab0853d9e80\", \"showBar\": false, \"applyColorTo\": \"background\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_fdc_files IS NOT NULL\\n| STATS fdc_count = SUM(LAST_OVER_TIME(ibmmq_qmgr_fdc_files))\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"28fdf49b-daa6-ab01-2a61-433dfe5b428c\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_fdc_files IS NOT NULL\\n| STATS fdc_count = SUM(LAST_OVER_TIME(ibmmq_qmgr_fdc_files))\"}, \"columns\": [{\"fieldName\": \"fdc_count\", \"columnId\": \"fee27a07-9aa2-fc10-10a5-3ab0853d9e80\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}], \"allColumns\": [{\"fieldName\": \"fdc_count\", \"columnId\": \"fee27a07-9aa2-fc10-10a5-3ab0853d9e80\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"cf2dfc92-8740-ccfb-4dcc-20de9e0661aa\", \"gridData\": {\"x\": 0, \"y\": 14, \"w\": 24, \"h\": 12, \"i\": \"cf2dfc92-8740-ccfb-4dcc-20de9e0661aa\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Message Throughput Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"4694524e-7a5b-7488-2ba5-a9b3a19ee7e0\", \"accessors\": [\"2bf0375b-b611-aa89-424d-24a9db201d9f\", \"1cdaaaa5-1ef5-45bd-34dc-53eaca9117b6\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"4694524e-7a5b-7488-2ba5-a9b3a19ee7e0\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"2bf0375b-b611-aa89-424d-24a9db201d9f\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"get_rate\", \"columnId\": \"1cdaaaa5-1ef5-45bd-34dc-53eaca9117b6\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"put_rate\", \"columnId\": \"2bf0375b-b611-aa89-424d-24a9db201d9f\", \"label\": \"Put Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"get_rate\", \"columnId\": \"1cdaaaa5-1ef5-45bd-34dc-53eaca9117b6\", \"label\": \"Get Rate\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"8a50f326-27af-39ab-e559-d1e5563e05fe\", \"gridData\": {\"x\": 24, \"y\": 14, \"w\": 24, \"h\": 12, \"i\": \"8a50f326-27af-39ab-e559-d1e5563e05fe\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Transaction Health Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"29674102-6a61-9132-dd2f-a894cf9d2b6f\", \"accessors\": [\"9fcc3079-3f9a-1b6f-14a8-e548007f6ffe\", \"fef52637-e5d9-5839-f705-d1cdb2f557c1\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [{\"rule\": {\"type\": \"matchExactly\", \"values\": [\"Commits\"]}, \"color\": {\"type\": \"colorCode\", \"colorCode\": \"#54b399\"}, \"touched\": false}, {\"rule\": {\"type\": \"matchExactly\", \"values\": [\"Rollbacks\"]}, \"color\": {\"type\": \"colorCode\", \"colorCode\": \"#cc5642\"}, \"touched\": false}], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"29674102-6a61-9132-dd2f-a894cf9d2b6f\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"commit_rate\", \"columnId\": \"9fcc3079-3f9a-1b6f-14a8-e548007f6ffe\", \"label\": \"Commits\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"rollback_rate\", \"columnId\": \"fef52637-e5d9-5839-f705-d1cdb2f557c1\", \"label\": \"Rollbacks\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"commit_rate\", \"columnId\": \"9fcc3079-3f9a-1b6f-14a8-e548007f6ffe\", \"label\": \"Commits\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"rollback_rate\", \"columnId\": \"fef52637-e5d9-5839-f705-d1cdb2f557c1\", \"label\": \"Rollbacks\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" /s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"39899020-317d-6c3a-2c45-0993f7467f13\", \"gridData\": {\"x\": 0, \"y\": 26, \"w\": 24, \"h\": 12, \"i\": \"39899020-317d-6c3a-2c45-0993f7467f13\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Failed Operations Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"fb74f617-a3c7-d084-7d55-9710440f6393\", \"accessors\": [\"17e695ba-8d89-e54a-0671-a92f3cea8c01\", \"edb00439-da59-cbc2-0841-3f4143305eda\", \"b7324ed7-f686-8447-bd41-8cb817622d3a\", \"31124fbb-c599-27e9-5c6a-ff41e1856445\"], \"layerType\": \"data\", \"seriesType\": \"area\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"area\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"fb74f617-a3c7-d084-7d55-9710440f6393\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), failed_get = SUM(RATE(ibmmq_qmgr_failed_mqget_total)), failed_conn = SUM(RATE(ibmmq_qmgr_failed_mqconn_mqconnx_total)), failed_open = SUM(RATE(ibmmq_qmgr_failed_mqopen_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"failed_put\", \"columnId\": \"17e695ba-8d89-e54a-0671-a92f3cea8c01\", \"label\": \"Failed Put\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_get\", \"columnId\": \"edb00439-da59-cbc2-0841-3f4143305eda\", \"label\": \"Failed Get\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_conn\", \"columnId\": \"b7324ed7-f686-8447-bd41-8cb817622d3a\", \"label\": \"Failed Connect\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_open\", \"columnId\": \"31124fbb-c599-27e9-5c6a-ff41e1856445\", \"label\": \"Failed Open\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"failed_put\", \"columnId\": \"17e695ba-8d89-e54a-0671-a92f3cea8c01\", \"label\": \"Failed Put\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_get\", \"columnId\": \"edb00439-da59-cbc2-0841-3f4143305eda\", \"label\": \"Failed Get\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_conn\", \"columnId\": \"b7324ed7-f686-8447-bd41-8cb817622d3a\", \"label\": \"Failed Connect\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"failed_open\", \"columnId\": \"31124fbb-c599-27e9-5c6a-ff41e1856445\", \"label\": \"Failed Open\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"8850958a-4ac1-3880-d925-8357605eb4bc\", \"gridData\": {\"x\": 24, \"y\": 26, \"w\": 24, \"h\": 12, \"i\": \"8850958a-4ac1-3880-d925-8357605eb4bc\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log Write Latency Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"34b497fd-240d-408e-aeac-498753a9e267\", \"accessors\": [\"a1d63a9f-593d-00b3-2b6e-e6938423344b\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL\\n| STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| EVAL latency_ms = ROUND(latency_s * 1000, 3)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"34b497fd-240d-408e-aeac-498753a9e267\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL\\n| STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| EVAL latency_ms = ROUND(latency_s * 1000, 3)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"latency_ms\", \"columnId\": \"a1d63a9f-593d-00b3-2b6e-e6938423344b\", \"label\": \"Log Write Latency\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3, \"suffix\": \" ms\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"latency_ms\", \"columnId\": \"a1d63a9f-593d-00b3-2b6e-e6938423344b\", \"label\": \"Log Write Latency\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3, \"suffix\": \" ms\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"5792bd13-f0a3-8316-7109-49e8ff959e04\", \"gridData\": {\"x\": 0, \"y\": 38, \"w\": 24, \"h\": 12, \"i\": \"5792bd13-f0a3-8316-7109-49e8ff959e04\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Filesystem Free Space Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"6ab58690-1b90-c528-8496-35fe60477091\", \"accessors\": [\"1b5ba795-a683-885f-7ac1-71ab7515c213\", \"bac771de-c1cf-0ac6-7488-3bf608dda02c\", \"cc468ddb-2d0d-2d06-fadd-576b1db376c1\", \"dfd50048-888a-a7f0-4d4d-0ed3bc291630\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS log_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), qmgr_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), errors_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), trace_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_trace_file_system_free_space_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"6ab58690-1b90-c528-8496-35fe60477091\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS log_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), qmgr_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), errors_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), trace_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_trace_file_system_free_space_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"log_fs\", \"columnId\": \"1b5ba795-a683-885f-7ac1-71ab7515c213\", \"label\": \"Log FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_fs\", \"columnId\": \"bac771de-c1cf-0ac6-7488-3bf608dda02c\", \"label\": \"QMgr FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"errors_fs\", \"columnId\": \"cc468ddb-2d0d-2d06-fadd-576b1db376c1\", \"label\": \"Errors FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"trace_fs\", \"columnId\": \"dfd50048-888a-a7f0-4d4d-0ed3bc291630\", \"label\": \"Trace FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"log_fs\", \"columnId\": \"1b5ba795-a683-885f-7ac1-71ab7515c213\", \"label\": \"Log FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_fs\", \"columnId\": \"bac771de-c1cf-0ac6-7488-3bf608dda02c\", \"label\": \"QMgr FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"errors_fs\", \"columnId\": \"cc468ddb-2d0d-2d06-fadd-576b1db376c1\", \"label\": \"Errors FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"trace_fs\", \"columnId\": \"dfd50048-888a-a7f0-4d4d-0ed3bc291630\", \"label\": \"Trace FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"08b34acd-faf5-7e1e-919d-33cfbd2aea93\", \"gridData\": {\"x\": 24, \"y\": 38, \"w\": 24, \"h\": 12, \"i\": \"08b34acd-faf5-7e1e-919d-33cfbd2aea93\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"CPU Load Average Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"7a9c2a55-4938-8d03-fc32-15efafbda7e7\", \"accessors\": [\"3e15e59e-6f09-b6ae-42cb-ca79d0bab0ca\", \"e7abff6a-c206-db8e-12af-6450b1411933\", \"89938b0b-77a3-f2c4-7cf6-9e6c6e5d3974\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS load_1m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), load_5m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_five_minute_average_percentage)), load_15m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_fifteen_minute_average_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"7a9c2a55-4938-8d03-fc32-15efafbda7e7\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS load_1m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), load_5m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_five_minute_average_percentage)), load_15m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_fifteen_minute_average_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"load_1m\", \"columnId\": \"3e15e59e-6f09-b6ae-42cb-ca79d0bab0ca\", \"label\": \"1 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_5m\", \"columnId\": \"e7abff6a-c206-db8e-12af-6450b1411933\", \"label\": \"5 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_15m\", \"columnId\": \"89938b0b-77a3-f2c4-7cf6-9e6c6e5d3974\", \"label\": \"15 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"load_1m\", \"columnId\": \"3e15e59e-6f09-b6ae-42cb-ca79d0bab0ca\", \"label\": \"1 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_5m\", \"columnId\": \"e7abff6a-c206-db8e-12af-6450b1411933\", \"label\": \"5 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_15m\", \"columnId\": \"89938b0b-77a3-f2c4-7cf6-9e6c6e5d3974\", \"label\": \"15 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"a0b3932a-1ba9-e360-a8f8-d8c19aae6bec\", \"gridData\": {\"x\": 0, \"y\": 50, \"w\": 48, \"h\": 15, \"i\": \"a0b3932a-1ba9-e360-a8f8-d8c19aae6bec\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Queue Manager Health Summary\", \"visualizationType\": \"lnsDatatable\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"columns\": [{\"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"2fdf4605-0fe3-4cce-45ba-e2af2096130b\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"1bf1915f-63d5-8159-e0b8-6d2588537478\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"964fa356-7118-e40d-6ab1-a38875c5c86b\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"af473192-3754-6672-7ec0-202fbdfc32b6\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"12458084-b3fd-93a0-fd15-56da6707ec40\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"c5c355ba-2ccc-2c72-bc78-0b98b2cec84a\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"c5995863-5ff3-4568-40d1-50f773fc26eb\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"7d59914e-33b6-4ed6-e826-84ec2f3aed3c\", \"isTransposed\": false, \"isMetric\": true}], \"layerId\": \"6ae034e3-653d-53e7-2412-74bb04377cf0\", \"layerType\": \"data\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)), failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)), log_latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)), log_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)), cpu_1m = MAX(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)) BY attributes.qmgr\\n| EVAL log_latency_ms = ROUND(log_latency_s * 1000, 3)\\n| EVAL rollback_pct = ROUND(CASE( commit_rate + rollback_rate > 0, rollback_rate / (commit_rate + rollback_rate) * 100, 0), 2)\\n| KEEP attributes.qmgr, put_rate, get_rate, failed_put, rollback_pct, log_latency_ms, log_fs_free, fdc, cpu_1m\\n| SORT put_rate DESC\\n| LIMIT 50\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"6ae034e3-653d-53e7-2412-74bb04377cf0\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS put_rate = SUM(RATE(ibmmq_qmgr_mqput_mqput1_total)), get_rate = SUM(RATE(ibmmq_qmgr_destructive_get_total)), failed_put = SUM(RATE(ibmmq_qmgr_failed_mqput_total)), commit_rate = SUM(RATE(ibmmq_qmgr_commit_total)), rollback_rate = SUM(RATE(ibmmq_qmgr_rollback_total)), log_latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)), log_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), fdc = MAX(LAST_OVER_TIME(ibmmq_qmgr_fdc_files)), cpu_1m = MAX(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)) BY attributes.qmgr\\n| EVAL log_latency_ms = ROUND(log_latency_s * 1000, 3)\\n| EVAL rollback_pct = ROUND(CASE( commit_rate + rollback_rate > 0, rollback_rate / (commit_rate + rollback_rate) * 100, 0), 2)\\n| KEEP attributes.qmgr, put_rate, get_rate, failed_put, rollback_pct, log_latency_ms, log_fs_free, fdc, cpu_1m\\n| SORT put_rate DESC\\n| LIMIT 50\"}, \"columns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"put_rate\", \"columnId\": \"2fdf4605-0fe3-4cce-45ba-e2af2096130b\", \"label\": \"Put Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"get_rate\", \"columnId\": \"1bf1915f-63d5-8159-e0b8-6d2588537478\", \"label\": \"Get Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"failed_put\", \"columnId\": \"964fa356-7118-e40d-6ab1-a38875c5c86b\", \"label\": \"Failed Put (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"rollback_pct\", \"columnId\": \"af473192-3754-6672-7ec0-202fbdfc32b6\", \"label\": \"Rollback %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \"%\"}}}}, {\"fieldName\": \"log_latency_ms\", \"columnId\": \"12458084-b3fd-93a0-fd15-56da6707ec40\", \"label\": \"Log Latency (ms)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3}}}}, {\"fieldName\": \"log_fs_free\", \"columnId\": \"c5c355ba-2ccc-2c72-bc78-0b98b2cec84a\", \"label\": \"Log FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"fdc\", \"columnId\": \"c5995863-5ff3-4568-40d1-50f773fc26eb\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}, {\"fieldName\": \"cpu_1m\", \"columnId\": \"7d59914e-33b6-4ed6-e826-84ec2f3aed3c\", \"label\": \"CPU 1m %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}], \"allColumns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"put_rate\", \"columnId\": \"2fdf4605-0fe3-4cce-45ba-e2af2096130b\", \"label\": \"Put Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"get_rate\", \"columnId\": \"1bf1915f-63d5-8159-e0b8-6d2588537478\", \"label\": \"Get Rate (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1}}}}, {\"fieldName\": \"failed_put\", \"columnId\": \"964fa356-7118-e40d-6ab1-a38875c5c86b\", \"label\": \"Failed Put (/s)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"rollback_pct\", \"columnId\": \"af473192-3754-6672-7ec0-202fbdfc32b6\", \"label\": \"Rollback %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \"%\"}}}}, {\"fieldName\": \"log_latency_ms\", \"columnId\": \"12458084-b3fd-93a0-fd15-56da6707ec40\", \"label\": \"Log Latency (ms)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3}}}}, {\"fieldName\": \"log_fs_free\", \"columnId\": \"c5c355ba-2ccc-2c72-bc78-0b98b2cec84a\", \"label\": \"Log FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"fdc\", \"columnId\": \"c5995863-5ff3-4568-40d1-50f773fc26eb\", \"label\": \"FDC Files\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 0}}}}, {\"fieldName\": \"cpu_1m\", \"columnId\": \"7d59914e-33b6-4ed6-e826-84ec2f3aed3c\", \"label\": \"CPU 1m %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}]", + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"disabled\":false,\"negate\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"data_stream.dataset\",\"field\":\"data_stream.dataset\",\"params\":{\"query\":\"ibmmq.otel\"}},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"ibmmq.otel\"}}}],\"query\":{\"query\":\"\",\"language\":\"kuery\"}}" + }, + "timeRestore": true, + "timeFrom": "now-1h", + "timeTo": "now", + "version": 1, + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{}", + "showApplySelections": false + } + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-10-01T00:00:00Z", + "created_by": "admin", + "id": "ibmmq_otel-overview", + "managed": false, + "references": [ + { + "type": "dashboard", + "id": "ibmmq_otel-overview", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-message-traffic", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-error-analysis", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-resources", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_at": "2023-10-01T00:00:00Z", + "updated_by": "admin", + "version": "1" +} \ No newline at end of file diff --git a/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-resources.json b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-resources.json new file mode 100644 index 00000000000..4b33abd769a --- /dev/null +++ b/packages/ibmmq_otel/kibana/dashboard/ibmmq_otel-resources.json @@ -0,0 +1,54 @@ +{ + "attributes": { + "title": "[IBM MQ OTel] Resources & Performance", + "description": "Resource utilization and log subsystem performance for IBM MQ queue managers. Covers log write latency, filesystem capacity, CPU load, RAM usage, and log I/O efficiency.", + "panelsJSON": "[{\"panelIndex\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\", \"gridData\": {\"x\": 0, \"y\": 0, \"w\": 48, \"h\": 2, \"i\": \"91144e9b-fac7-b44d-0b1d-8339201b83cb\"}, \"type\": \"links\", \"embeddableConfig\": {\"title\": \"Navigation\", \"enhancements\": {}, \"attributes\": {\"layout\": \"horizontal\", \"links\": [{\"id\": \"3af4ba12-6f83-488a-bdc9-0c7216a22d73\", \"order\": 0, \"label\": \"Overview\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard\"}, {\"id\": \"d16d89a9-684e-0340-d3b9-d6235eafdcda\", \"order\": 1, \"label\": \"Message Traffic\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard\"}, {\"id\": \"34ac4a25-a459-0027-aab9-c29ed2019add\", \"order\": 2, \"label\": \"Error Analysis\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard\"}, {\"id\": \"efecfd2b-d524-b83b-c3cd-35d5623b9342\", \"order\": 3, \"label\": \"Resources & Performance\", \"type\": \"dashboardLink\", \"destinationRefName\": \"link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard\"}]}}}, {\"panelIndex\": \"0563dba8-e018-01bf-7e3c-91932750954e\", \"gridData\": {\"x\": 0, \"y\": 2, \"w\": 16, \"h\": 12, \"i\": \"0563dba8-e018-01bf-7e3c-91932750954e\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## [IBM MQ OTel] Resources & Performance\\n\\nThis dashboard provides detailed infrastructure monitoring:\\n- Log write latency and peak latency tracking\\n- Log I/O efficiency (logical vs physical writes)\\n- Filesystem capacity for log, queue manager, errors, and trace areas\\n- Log space utilization (primary and workload)\\n- CPU load averages and host vs queue manager CPU\\n- RAM availability and queue manager memory estimate\\n\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"297b5146-d410-e0d1-58ef-1e30b7bf4f4c\", \"gridData\": {\"x\": 16, \"y\": 2, \"w\": 8, \"h\": 12, \"i\": \"297b5146-d410-e0d1-58ef-1e30b7bf4f4c\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log FS Free\", \"visualizationType\": \"lnsGauge\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"bcd2a5f9-22df-42ae-48fc-1556764d4577\", \"layerType\": \"data\", \"metricAccessor\": \"eb864e77-f1c0-8f09-343f-10d991cb25f3\", \"minAccessor\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"maxAccessor\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"shape\": \"arc\", \"ticksPosition\": \"auto\", \"labelMajorMode\": \"auto\", \"colorMode\": \"palette\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": 0.0, \"rangeMax\": 100.0, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#cc5642\", \"stop\": 10.0}, {\"color\": \"#d6bf57\", \"stop\": 30.0}, {\"color\": \"#54b399\", \"stop\": 100.0}], \"colorStops\": [{\"color\": \"#cc5642\", \"stop\": 0.0}, {\"color\": \"#d6bf57\", \"stop\": 10.0}, {\"color\": \"#54b399\", \"stop\": 30.0}], \"continuity\": \"above\", \"maxSteps\": 3}}}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_file_system_free_space_percentage IS NOT NULL\\n| STATS free_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"bcd2a5f9-22df-42ae-48fc-1556764d4577\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_file_system_free_space_percentage IS NOT NULL\\n| STATS free_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"columns\": [{\"fieldName\": \"free_pct\", \"columnId\": \"eb864e77-f1c0-8f09-343f-10d991cb25f3\", \"label\": \"Log FS Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"allColumns\": [{\"fieldName\": \"free_pct\", \"columnId\": \"eb864e77-f1c0-8f09-343f-10d991cb25f3\", \"label\": \"Log FS Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"171ad754-034c-58b3-5d67-76651834453d\", \"gridData\": {\"x\": 24, \"y\": 2, \"w\": 8, \"h\": 12, \"i\": \"171ad754-034c-58b3-5d67-76651834453d\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"QMgr FS Free\", \"visualizationType\": \"lnsGauge\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"820cd189-2c7d-f020-5309-2410e32e8f1c\", \"layerType\": \"data\", \"metricAccessor\": \"2cd326dc-9f77-1009-74f2-bb6d29516f51\", \"minAccessor\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"maxAccessor\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"shape\": \"arc\", \"ticksPosition\": \"auto\", \"labelMajorMode\": \"auto\", \"colorMode\": \"palette\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": 0.0, \"rangeMax\": 100.0, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#cc5642\", \"stop\": 10.0}, {\"color\": \"#d6bf57\", \"stop\": 30.0}, {\"color\": \"#54b399\", \"stop\": 100.0}], \"colorStops\": [{\"color\": \"#cc5642\", \"stop\": 0.0}, {\"color\": \"#d6bf57\", \"stop\": 10.0}, {\"color\": \"#54b399\", \"stop\": 30.0}], \"continuity\": \"above\", \"maxSteps\": 3}}}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_queue_manager_file_system_free_space_percentage IS NOT NULL\\n| STATS free_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"820cd189-2c7d-f020-5309-2410e32e8f1c\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_queue_manager_file_system_free_space_percentage IS NOT NULL\\n| STATS free_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"columns\": [{\"fieldName\": \"free_pct\", \"columnId\": \"2cd326dc-9f77-1009-74f2-bb6d29516f51\", \"label\": \"QMgr FS Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"allColumns\": [{\"fieldName\": \"free_pct\", \"columnId\": \"2cd326dc-9f77-1009-74f2-bb6d29516f51\", \"label\": \"QMgr FS Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"92c65d4f-bc9f-8ac2-3363-2b2c0ba20f83\", \"gridData\": {\"x\": 32, \"y\": 2, \"w\": 8, \"h\": 12, \"i\": \"92c65d4f-bc9f-8ac2-3363-2b2c0ba20f83\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"CPU 1m Load\", \"visualizationType\": \"lnsGauge\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"975ec949-d5ff-01eb-d9f6-8cee76f92ea0\", \"layerType\": \"data\", \"metricAccessor\": \"366889eb-f19f-f382-32d4-f6202de6d024\", \"minAccessor\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"maxAccessor\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"shape\": \"arc\", \"ticksPosition\": \"auto\", \"labelMajorMode\": \"auto\", \"colorMode\": \"palette\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": 0.0, \"rangeMax\": 100.0, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#54b399\", \"stop\": 70.0}, {\"color\": \"#d6bf57\", \"stop\": 85.0}, {\"color\": \"#cc5642\", \"stop\": 100.0}], \"colorStops\": [{\"color\": \"#54b399\", \"stop\": 0.0}, {\"color\": \"#d6bf57\", \"stop\": 70.0}, {\"color\": \"#cc5642\", \"stop\": 85.0}], \"continuity\": \"above\", \"maxSteps\": 3}}}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_cpu_load_one_minute_average_percentage IS NOT NULL\\n| STATS cpu_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"975ec949-d5ff-01eb-d9f6-8cee76f92ea0\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_cpu_load_one_minute_average_percentage IS NOT NULL\\n| STATS cpu_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"columns\": [{\"fieldName\": \"cpu_pct\", \"columnId\": \"366889eb-f19f-f382-32d4-f6202de6d024\", \"label\": \"CPU 1m Load\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"allColumns\": [{\"fieldName\": \"cpu_pct\", \"columnId\": \"366889eb-f19f-f382-32d4-f6202de6d024\", \"label\": \"CPU 1m Load\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"a9192032-9d1a-4c23-f056-ae890d9acc48\", \"gridData\": {\"x\": 40, \"y\": 2, \"w\": 8, \"h\": 12, \"i\": \"a9192032-9d1a-4c23-f056-ae890d9acc48\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"RAM Free\", \"visualizationType\": \"lnsGauge\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layerId\": \"48bab4b5-e788-1b08-35f4-f151dc3aa729\", \"layerType\": \"data\", \"metricAccessor\": \"c77689a7-17b1-4390-eddb-c21b081ad995\", \"minAccessor\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"maxAccessor\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"shape\": \"arc\", \"ticksPosition\": \"auto\", \"labelMajorMode\": \"auto\", \"colorMode\": \"palette\", \"palette\": {\"name\": \"custom\", \"type\": \"palette\", \"params\": {\"steps\": 3, \"name\": \"custom\", \"reverse\": false, \"rangeType\": \"number\", \"rangeMin\": 0.0, \"rangeMax\": 100.0, \"progression\": \"fixed\", \"stops\": [{\"color\": \"#cc5642\", \"stop\": 10.0}, {\"color\": \"#d6bf57\", \"stop\": 20.0}, {\"color\": \"#54b399\", \"stop\": 100.0}], \"colorStops\": [{\"color\": \"#cc5642\", \"stop\": 0.0}, {\"color\": \"#d6bf57\", \"stop\": 10.0}, {\"color\": \"#54b399\", \"stop\": 20.0}], \"continuity\": \"above\", \"maxSteps\": 3}}}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_ram_free_percentage IS NOT NULL\\n| STATS ram_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_ram_free_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"48bab4b5-e788-1b08-35f4-f151dc3aa729\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_ram_free_percentage IS NOT NULL\\n| STATS ram_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_ram_free_percentage))\\n| EVAL min_val = 0, max_val = 100\"}, \"columns\": [{\"fieldName\": \"ram_pct\", \"columnId\": \"c77689a7-17b1-4390-eddb-c21b081ad995\", \"label\": \"RAM Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"allColumns\": [{\"fieldName\": \"ram_pct\", \"columnId\": \"c77689a7-17b1-4390-eddb-c21b081ad995\", \"label\": \"RAM Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"min_val\", \"columnId\": \"46d0f1d5-79ce-2fae-4a9b-5958d97e7fa2\", \"label\": \"min_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"max_val\", \"columnId\": \"870bfed3-1af3-8829-2b44-1af2c031ee62\", \"label\": \"max_val\", \"customLabel\": false, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"8d054f6c-758f-84ca-a262-0614abdc37f8\", \"gridData\": {\"x\": 0, \"y\": 14, \"w\": 48, \"h\": 3, \"i\": \"8d054f6c-758f-84ca-a262-0614abdc37f8\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"Log Performance\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## Log Subsystem Performance\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"22ca52ad-9943-1540-7fec-7e8e37e2d4c8\", \"gridData\": {\"x\": 0, \"y\": 17, \"w\": 24, \"h\": 12, \"i\": \"22ca52ad-9943-1540-7fec-7e8e37e2d4c8\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log Write Latency Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"34b497fd-240d-408e-aeac-498753a9e267\", \"accessors\": [\"a1d63a9f-593d-00b3-2b6e-e6938423344b\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL\\n| STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| EVAL latency_ms = ROUND(latency_s * 1000, 3)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"34b497fd-240d-408e-aeac-498753a9e267\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_latency_seconds IS NOT NULL\\n| STATS latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| EVAL latency_ms = ROUND(latency_s * 1000, 3)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"latency_ms\", \"columnId\": \"a1d63a9f-593d-00b3-2b6e-e6938423344b\", \"label\": \"Log Write Latency\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3, \"suffix\": \" ms\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"latency_ms\", \"columnId\": \"a1d63a9f-593d-00b3-2b6e-e6938423344b\", \"label\": \"Log Write Latency\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3, \"suffix\": \" ms\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"41c3f11c-26ba-e69b-8eda-a056d3d7128f\", \"gridData\": {\"x\": 24, \"y\": 17, \"w\": 24, \"h\": 12, \"i\": \"41c3f11c-26ba-e69b-8eda-a056d3d7128f\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Slowest Write Since Restart\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"f2c0d737-6cad-a741-30bd-6f1773cd6085\", \"accessors\": [\"f1e1ece0-4456-a655-9715-405896ec8d3a\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_slowest_write_since_restart_seconds IS NOT NULL\\n| STATS slowest_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_slowest_write_since_restart_seconds)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| EVAL slowest_ms = ROUND(slowest_s * 1000, 2)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"f2c0d737-6cad-a741-30bd-6f1773cd6085\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_slowest_write_since_restart_seconds IS NOT NULL\\n| STATS slowest_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_slowest_write_since_restart_seconds)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| EVAL slowest_ms = ROUND(slowest_s * 1000, 2)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"slowest_ms\", \"columnId\": \"f1e1ece0-4456-a655-9715-405896ec8d3a\", \"label\": \"Slowest Write\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" ms\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"slowest_ms\", \"columnId\": \"f1e1ece0-4456-a655-9715-405896ec8d3a\", \"label\": \"Slowest Write\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2, \"suffix\": \" ms\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"a8f8b202-e233-7b9e-7349-14be26472e6d\", \"gridData\": {\"x\": 0, \"y\": 29, \"w\": 24, \"h\": 12, \"i\": \"a8f8b202-e233-7b9e-7349-14be26472e6d\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log I/O \\u2014 Logical vs Physical Write Rate\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"bd1f7bd2-af28-a5df-d805-0a71438d0eb0\", \"accessors\": [\"46fefbf1-1e2f-9465-c39b-a195d76faa41\", \"7c8bc326-a55c-5087-6434-da3495fd3f83\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS logical = SUM(RATE(ibmmq_qmgr_log_logical_written_bytes_total)), physical = SUM(RATE(ibmmq_qmgr_log_physical_written_bytes_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"bd1f7bd2-af28-a5df-d805-0a71438d0eb0\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS logical = SUM(RATE(ibmmq_qmgr_log_logical_written_bytes_total)), physical = SUM(RATE(ibmmq_qmgr_log_physical_written_bytes_total)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"logical\", \"columnId\": \"46fefbf1-1e2f-9465-c39b-a195d76faa41\", \"label\": \"Logical Writes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"physical\", \"columnId\": \"7c8bc326-a55c-5087-6434-da3495fd3f83\", \"label\": \"Physical Writes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"logical\", \"columnId\": \"46fefbf1-1e2f-9465-c39b-a195d76faa41\", \"label\": \"Logical Writes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"physical\", \"columnId\": \"7c8bc326-a55c-5087-6434-da3495fd3f83\", \"label\": \"Physical Writes\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2, \"suffix\": \"/s\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"96c0eece-bce3-a80f-25a1-0711d064b817\", \"gridData\": {\"x\": 24, \"y\": 29, \"w\": 24, \"h\": 12, \"i\": \"96c0eece-bce3-a80f-25a1-0711d064b817\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log Write Size Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"e8fae731-4496-b9bd-920d-dca2b68a8577\", \"accessors\": [\"ab7a33d1-09d6-62e4-84fa-2ce6b3bfa64c\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_size_bytes IS NOT NULL\\n| STATS write_size = AVG(AVG_OVER_TIME(ibmmq_qmgr_log_write_size_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"e8fae731-4496-b9bd-920d-dca2b68a8577\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_write_size_bytes IS NOT NULL\\n| STATS write_size = AVG(AVG_OVER_TIME(ibmmq_qmgr_log_write_size_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"write_size\", \"columnId\": \"ab7a33d1-09d6-62e4-84fa-2ce6b3bfa64c\", \"label\": \"Avg Write Size\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"write_size\", \"columnId\": \"ab7a33d1-09d6-62e4-84fa-2ce6b3bfa64c\", \"label\": \"Avg Write Size\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"c2f1753f-b10d-1549-2dbd-d78a729ebbfd\", \"gridData\": {\"x\": 0, \"y\": 41, \"w\": 48, \"h\": 3, \"i\": \"c2f1753f-b10d-1549-2dbd-d78a729ebbfd\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"Filesystem\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## Filesystem Utilization\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"b4d95344-f75c-dece-e37a-ed4af77e1be7\", \"gridData\": {\"x\": 0, \"y\": 44, \"w\": 24, \"h\": 12, \"i\": \"b4d95344-f75c-dece-e37a-ed4af77e1be7\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"All Filesystem Free Space Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"6ab58690-1b90-c528-8496-35fe60477091\", \"accessors\": [\"1b5ba795-a683-885f-7ac1-71ab7515c213\", \"bac771de-c1cf-0ac6-7488-3bf608dda02c\", \"cc468ddb-2d0d-2d06-fadd-576b1db376c1\", \"dfd50048-888a-a7f0-4d4d-0ed3bc291630\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS log_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), qmgr_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), errors_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), trace_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_trace_file_system_free_space_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"6ab58690-1b90-c528-8496-35fe60477091\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS log_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), qmgr_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), errors_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), trace_fs = AVG(LAST_OVER_TIME(ibmmq_qmgr_trace_file_system_free_space_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"log_fs\", \"columnId\": \"1b5ba795-a683-885f-7ac1-71ab7515c213\", \"label\": \"Log FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_fs\", \"columnId\": \"bac771de-c1cf-0ac6-7488-3bf608dda02c\", \"label\": \"QMgr FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"errors_fs\", \"columnId\": \"cc468ddb-2d0d-2d06-fadd-576b1db376c1\", \"label\": \"Errors FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"trace_fs\", \"columnId\": \"dfd50048-888a-a7f0-4d4d-0ed3bc291630\", \"label\": \"Trace FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"log_fs\", \"columnId\": \"1b5ba795-a683-885f-7ac1-71ab7515c213\", \"label\": \"Log FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_fs\", \"columnId\": \"bac771de-c1cf-0ac6-7488-3bf608dda02c\", \"label\": \"QMgr FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"errors_fs\", \"columnId\": \"cc468ddb-2d0d-2d06-fadd-576b1db376c1\", \"label\": \"Errors FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"trace_fs\", \"columnId\": \"dfd50048-888a-a7f0-4d4d-0ed3bc291630\", \"label\": \"Trace FS\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"756cad8a-c5a4-7695-0e43-b5fa30778423\", \"gridData\": {\"x\": 24, \"y\": 44, \"w\": 24, \"h\": 12, \"i\": \"756cad8a-c5a4-7695-0e43-b5fa30778423\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log Space Utilization Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"80d2e292-d9f5-aa49-346e-745f00544807\", \"accessors\": [\"35e00db3-9b4d-8d31-b654-1550c434eb4e\", \"aa1c4c74-4d07-eedf-633f-10e95b9be3cc\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS primary_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_primary_space_in_use_percentage)), workload_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_workload_primary_space_utilization_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"80d2e292-d9f5-aa49-346e-745f00544807\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS primary_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_primary_space_in_use_percentage)), workload_pct = AVG(LAST_OVER_TIME(ibmmq_qmgr_log_workload_primary_space_utilization_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"primary_pct\", \"columnId\": \"35e00db3-9b4d-8d31-b654-1550c434eb4e\", \"label\": \"Primary Space Used\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"workload_pct\", \"columnId\": \"aa1c4c74-4d07-eedf-633f-10e95b9be3cc\", \"label\": \"Workload Utilization\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"primary_pct\", \"columnId\": \"35e00db3-9b4d-8d31-b654-1550c434eb4e\", \"label\": \"Primary Space Used\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"workload_pct\", \"columnId\": \"aa1c4c74-4d07-eedf-633f-10e95b9be3cc\", \"label\": \"Workload Utilization\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"daf24283-b0ac-57a8-145b-9ed71ef57d75\", \"gridData\": {\"x\": 0, \"y\": 56, \"w\": 24, \"h\": 12, \"i\": \"daf24283-b0ac-57a8-145b-9ed71ef57d75\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log Filesystem Usage by Queue Manager\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"05669400-31f3-5385-9ce8-ad96e2580303\", \"accessors\": [\"644d95c8-9020-4e86-b843-6cdc3f81ede7\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_file_system_in_use_bytes IS NOT NULL\\n| STATS in_use = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_in_use_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"05669400-31f3-5385-9ce8-ad96e2580303\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_file_system_in_use_bytes IS NOT NULL\\n| STATS in_use = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_in_use_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"in_use\", \"columnId\": \"644d95c8-9020-4e86-b843-6cdc3f81ede7\", \"label\": \"Log FS In Use\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"in_use\", \"columnId\": \"644d95c8-9020-4e86-b843-6cdc3f81ede7\", \"label\": \"Log FS In Use\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"50714d59-9dd5-09cb-7de5-5891978587b8\", \"gridData\": {\"x\": 24, \"y\": 56, \"w\": 24, \"h\": 12, \"i\": \"50714d59-9dd5-09cb-7de5-5891978587b8\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Log Active Space by Queue Manager\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"f0c84676-1845-d740-63a9-aef9f07ac31d\", \"accessors\": [\"255691c9-1ae9-5f50-c36e-f3db9ea7cc01\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_in_use_bytes IS NOT NULL\\n| STATS log_in_use = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_in_use_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"f0c84676-1845-d740-63a9-aef9f07ac31d\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_log_in_use_bytes IS NOT NULL\\n| STATS log_in_use = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_in_use_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"log_in_use\", \"columnId\": \"255691c9-1ae9-5f50-c36e-f3db9ea7cc01\", \"label\": \"Log Active Space\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"log_in_use\", \"columnId\": \"255691c9-1ae9-5f50-c36e-f3db9ea7cc01\", \"label\": \"Log Active Space\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"60afb29c-1a93-2a57-1a9c-a98d195874c0\", \"gridData\": {\"x\": 0, \"y\": 68, \"w\": 48, \"h\": 3, \"i\": \"60afb29c-1a93-2a57-1a9c-a98d195874c0\"}, \"type\": \"visualization\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"hidePanelTitles\": true, \"savedVis\": {\"type\": \"markdown\", \"id\": \"\", \"title\": \"Compute\", \"description\": \"\", \"params\": {\"fontSize\": 12, \"openLinksInNewTab\": false, \"markdown\": \"## Compute Resources\"}, \"uiState\": {}, \"data\": {\"aggs\": [], \"searchSource\": {\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}}}}}, {\"panelIndex\": \"a2653591-a674-6112-5e27-6ec2006efe4b\", \"gridData\": {\"x\": 0, \"y\": 71, \"w\": 24, \"h\": 12, \"i\": \"a2653591-a674-6112-5e27-6ec2006efe4b\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"CPU Load Averages Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"7a9c2a55-4938-8d03-fc32-15efafbda7e7\", \"accessors\": [\"3e15e59e-6f09-b6ae-42cb-ca79d0bab0ca\", \"e7abff6a-c206-db8e-12af-6450b1411933\", \"89938b0b-77a3-f2c4-7cf6-9e6c6e5d3974\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS load_1m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), load_5m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_five_minute_average_percentage)), load_15m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_fifteen_minute_average_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"7a9c2a55-4938-8d03-fc32-15efafbda7e7\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS load_1m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), load_5m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_five_minute_average_percentage)), load_15m = AVG(AVG_OVER_TIME(ibmmq_qmgr_cpu_load_fifteen_minute_average_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"load_1m\", \"columnId\": \"3e15e59e-6f09-b6ae-42cb-ca79d0bab0ca\", \"label\": \"1 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_5m\", \"columnId\": \"e7abff6a-c206-db8e-12af-6450b1411933\", \"label\": \"5 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_15m\", \"columnId\": \"89938b0b-77a3-f2c4-7cf6-9e6c6e5d3974\", \"label\": \"15 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"load_1m\", \"columnId\": \"3e15e59e-6f09-b6ae-42cb-ca79d0bab0ca\", \"label\": \"1 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_5m\", \"columnId\": \"e7abff6a-c206-db8e-12af-6450b1411933\", \"label\": \"5 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"load_15m\", \"columnId\": \"89938b0b-77a3-f2c4-7cf6-9e6c6e5d3974\", \"label\": \"15 min\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"ab837157-886c-0820-474a-56e244542ceb\", \"gridData\": {\"x\": 24, \"y\": 71, \"w\": 24, \"h\": 12, \"i\": \"ab837157-886c-0820-474a-56e244542ceb\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Host vs Queue Manager CPU Over Time\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"c91bb2c6-8785-1ffe-b17c-d6c0e8d7fd76\", \"accessors\": [\"130931c1-da9f-1d78-9e50-e60cac6efba1\", \"ed88e8d0-164f-d221-b94d-0f929065f663\", \"f0973953-b52e-1daa-81cf-d1bdc6ceb325\", \"f042fa21-68e7-a80b-5958-b8a264e173cb\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS host_system = AVG(AVG_OVER_TIME(ibmmq_qmgr_system_cpu_time_percentage)), host_user = AVG(AVG_OVER_TIME(ibmmq_qmgr_user_cpu_time_percentage)), qmgr_system = AVG(AVG_OVER_TIME(ibmmq_qmgr_system_cpu_time_estimate_for_queue_manager_percentage)), qmgr_user = AVG(AVG_OVER_TIME(ibmmq_qmgr_user_cpu_time_estimate_for_queue_manager_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"c91bb2c6-8785-1ffe-b17c-d6c0e8d7fd76\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS host_system = AVG(AVG_OVER_TIME(ibmmq_qmgr_system_cpu_time_percentage)), host_user = AVG(AVG_OVER_TIME(ibmmq_qmgr_user_cpu_time_percentage)), qmgr_system = AVG(AVG_OVER_TIME(ibmmq_qmgr_system_cpu_time_estimate_for_queue_manager_percentage)), qmgr_user = AVG(AVG_OVER_TIME(ibmmq_qmgr_user_cpu_time_estimate_for_queue_manager_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend)\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"host_system\", \"columnId\": \"130931c1-da9f-1d78-9e50-e60cac6efba1\", \"label\": \"Host System CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"host_user\", \"columnId\": \"ed88e8d0-164f-d221-b94d-0f929065f663\", \"label\": \"Host User CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_system\", \"columnId\": \"f0973953-b52e-1daa-81cf-d1bdc6ceb325\", \"label\": \"QMgr System CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_user\", \"columnId\": \"f042fa21-68e7-a80b-5958-b8a264e173cb\", \"label\": \"QMgr User CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"allColumns\": [{\"fieldName\": \"host_system\", \"columnId\": \"130931c1-da9f-1d78-9e50-e60cac6efba1\", \"label\": \"Host System CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"host_user\", \"columnId\": \"ed88e8d0-164f-d221-b94d-0f929065f663\", \"label\": \"Host User CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_system\", \"columnId\": \"f0973953-b52e-1daa-81cf-d1bdc6ceb325\", \"label\": \"QMgr System CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_user\", \"columnId\": \"f042fa21-68e7-a80b-5958-b8a264e173cb\", \"label\": \"QMgr User CPU\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"ada7d33c-8c80-7662-9811-8a834b244c48\", \"gridData\": {\"x\": 0, \"y\": 83, \"w\": 24, \"h\": 12, \"i\": \"ada7d33c-8c80-7662-9811-8a834b244c48\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"RAM Free & Queue Manager RAM Estimate\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"1cb97c50-798f-2e2d-89f4-781cfa51edeb\", \"accessors\": [\"31bcb636-0862-a602-66b8-35e06b240f2d\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_ram_free_percentage IS NOT NULL\\n| STATS ram_free = AVG(AVG_OVER_TIME(ibmmq_qmgr_ram_free_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"1cb97c50-798f-2e2d-89f4-781cfa51edeb\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_ram_free_percentage IS NOT NULL\\n| STATS ram_free = AVG(AVG_OVER_TIME(ibmmq_qmgr_ram_free_percentage)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"ram_free\", \"columnId\": \"31bcb636-0862-a602-66b8-35e06b240f2d\", \"label\": \"RAM Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"ram_free\", \"columnId\": \"31bcb636-0862-a602-66b8-35e06b240f2d\", \"label\": \"RAM Free\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"9d392b4a-035f-887b-8b8e-78f2894bceab\", \"gridData\": {\"x\": 24, \"y\": 83, \"w\": 24, \"h\": 12, \"i\": \"9d392b4a-035f-887b-8b8e-78f2894bceab\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Queue Manager RAM Estimate\", \"visualizationType\": \"lnsXY\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"layers\": [{\"layerId\": \"b8c57dfa-6498-40dd-ac1b-8b810b5c8218\", \"accessors\": [\"a769a420-af8d-3fa9-a528-c3cc16d13f13\"], \"layerType\": \"data\", \"seriesType\": \"line\", \"xAccessor\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"position\": \"top\", \"showGridlines\": false, \"splitAccessor\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"colorMapping\": {\"assignments\": [], \"specialAssignments\": [{\"rule\": {\"type\": \"other\"}, \"color\": {\"type\": \"loop\"}, \"touched\": false}], \"paletteId\": \"eui_amsterdam_color_blind\", \"colorMode\": {\"type\": \"categorical\"}}}], \"preferredSeriesType\": \"line\", \"legend\": {\"isVisible\": true, \"position\": \"right\"}, \"valueLabels\": \"hide\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes IS NOT NULL\\n| STATS qmgr_ram = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"b8c57dfa-6498-40dd-ac1b-8b810b5c8218\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| WHERE ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes IS NOT NULL\\n| STATS qmgr_ram = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes)) BY time_bucket = BUCKET(@timestamp, 20, ?_tstart, ?_tend), attributes.qmgr\\n| SORT time_bucket ASC\"}, \"columns\": [{\"fieldName\": \"qmgr_ram\", \"columnId\": \"a769a420-af8d-3fa9-a528-c3cc16d13f13\", \"label\": \"QMgr RAM\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"allColumns\": [{\"fieldName\": \"qmgr_ram\", \"columnId\": \"a769a420-af8d-3fa9-a528-c3cc16d13f13\", \"label\": \"QMgr RAM\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}, {\"fieldName\": \"time_bucket\", \"columnId\": \"42a876a0-15e3-395a-0a00-b1577942ad2f\", \"label\": \"time_bucket\", \"customLabel\": false, \"meta\": {\"type\": \"date\", \"esType\": \"date\"}}, {\"fieldName\": \"attributes.qmgr\", \"columnId\": \"a26cae93-1b7b-77ce-086b-73b08e2bacc8\", \"label\": \"attributes.qmgr\", \"customLabel\": false}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}, {\"panelIndex\": \"b5543c9a-c5ae-1ba0-ddd2-233998dd11f2\", \"gridData\": {\"x\": 0, \"y\": 95, \"w\": 48, \"h\": 15, \"i\": \"b5543c9a-c5ae-1ba0-ddd2-233998dd11f2\"}, \"type\": \"lens\", \"embeddableConfig\": {\"enhancements\": {\"dynamicActions\": {\"events\": []}}, \"attributes\": {\"title\": \"Resource Summary by Queue Manager\", \"visualizationType\": \"lnsDatatable\", \"type\": \"lens\", \"references\": [], \"state\": {\"visualization\": {\"columns\": [{\"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"12458084-b3fd-93a0-fd15-56da6707ec40\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"c5c355ba-2ccc-2c72-bc78-0b98b2cec84a\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"09ed04ce-54cb-0824-dd71-c015ae9714b7\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"7cd992ad-4337-ccac-02fa-d53abc300edd\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"7d59914e-33b6-4ed6-e826-84ec2f3aed3c\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"6f84154e-9b4d-3b4b-a45d-947e82d55eac\", \"isTransposed\": false, \"isMetric\": true}, {\"columnId\": \"530a9f28-99b7-6a56-b507-809ea56620ad\", \"isTransposed\": false, \"isMetric\": true}], \"layerId\": \"0a6e2b99-9ca4-5b8f-f4d2-686764f7d29d\", \"layerType\": \"data\"}, \"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS log_latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)), log_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), qmgr_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), errors_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), cpu_1m = MAX(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), ram_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_free_percentage)), qmgr_ram = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes)) BY attributes.qmgr\\n| EVAL log_latency_ms = ROUND(log_latency_s * 1000, 3)\\n| KEEP attributes.qmgr, log_latency_ms, log_fs_free, qmgr_fs_free, errors_fs_free, cpu_1m, ram_free, qmgr_ram\\n| SORT log_fs_free ASC\\n| LIMIT 50\"}, \"filters\": [], \"datasourceStates\": {\"textBased\": {\"layers\": {\"0a6e2b99-9ca4-5b8f-f4d2-686764f7d29d\": {\"query\": {\"esql\": \"TS metrics-ibmmq.otel-*\\n| STATS log_latency_s = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_write_latency_seconds)), log_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_log_file_system_free_space_percentage)), qmgr_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_queue_manager_file_system_free_space_percentage)), errors_fs_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_errors_file_system_free_space_percentage)), cpu_1m = MAX(LAST_OVER_TIME(ibmmq_qmgr_cpu_load_one_minute_average_percentage)), ram_free = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_free_percentage)), qmgr_ram = MAX(LAST_OVER_TIME(ibmmq_qmgr_ram_usage_estimate_for_queue_manager_bytes)) BY attributes.qmgr\\n| EVAL log_latency_ms = ROUND(log_latency_s * 1000, 3)\\n| KEEP attributes.qmgr, log_latency_ms, log_fs_free, qmgr_fs_free, errors_fs_free, cpu_1m, ram_free, qmgr_ram\\n| SORT log_fs_free ASC\\n| LIMIT 50\"}, \"columns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"log_latency_ms\", \"columnId\": \"12458084-b3fd-93a0-fd15-56da6707ec40\", \"label\": \"Log Latency (ms)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3}}}}, {\"fieldName\": \"log_fs_free\", \"columnId\": \"c5c355ba-2ccc-2c72-bc78-0b98b2cec84a\", \"label\": \"Log FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_fs_free\", \"columnId\": \"09ed04ce-54cb-0824-dd71-c015ae9714b7\", \"label\": \"QMgr FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"errors_fs_free\", \"columnId\": \"7cd992ad-4337-ccac-02fa-d53abc300edd\", \"label\": \"Errors FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"cpu_1m\", \"columnId\": \"7d59914e-33b6-4ed6-e826-84ec2f3aed3c\", \"label\": \"CPU 1m %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"ram_free\", \"columnId\": \"6f84154e-9b4d-3b4b-a45d-947e82d55eac\", \"label\": \"RAM Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_ram\", \"columnId\": \"530a9f28-99b7-6a56-b507-809ea56620ad\", \"label\": \"QMgr RAM\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}], \"allColumns\": [{\"fieldName\": \"attributes.qmgr\", \"columnId\": \"5518b3a8-a16c-cd51-60b5-0c734f50a629\", \"label\": \"Queue Manager\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true}, {\"fieldName\": \"log_latency_ms\", \"columnId\": \"12458084-b3fd-93a0-fd15-56da6707ec40\", \"label\": \"Log Latency (ms)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 3}}}}, {\"fieldName\": \"log_fs_free\", \"columnId\": \"c5c355ba-2ccc-2c72-bc78-0b98b2cec84a\", \"label\": \"Log FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_fs_free\", \"columnId\": \"09ed04ce-54cb-0824-dd71-c015ae9714b7\", \"label\": \"QMgr FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"errors_fs_free\", \"columnId\": \"7cd992ad-4337-ccac-02fa-d53abc300edd\", \"label\": \"Errors FS Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"cpu_1m\", \"columnId\": \"7d59914e-33b6-4ed6-e826-84ec2f3aed3c\", \"label\": \"CPU 1m %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"ram_free\", \"columnId\": \"6f84154e-9b4d-3b4b-a45d-947e82d55eac\", \"label\": \"RAM Free %\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 1, \"suffix\": \"%\"}}}}, {\"fieldName\": \"qmgr_ram\", \"columnId\": \"530a9f28-99b7-6a56-b507-809ea56620ad\", \"label\": \"QMgr RAM\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"long\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"bytes\", \"params\": {\"decimals\": 2}}}}], \"timeField\": \"@timestamp\"}}}}, \"internalReferences\": [], \"adHocDataViews\": {}}}, \"syncTooltips\": false, \"syncColors\": false, \"syncCursor\": true, \"filters\": [], \"query\": {\"query\": \"\", \"language\": \"kuery\"}}}]", + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"disabled\":false,\"negate\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"data_stream.dataset\",\"field\":\"data_stream.dataset\",\"params\":{\"query\":\"ibmmq.otel\"}},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"ibmmq.otel\"}}}],\"query\":{\"query\":\"\",\"language\":\"kuery\"}}" + }, + "timeRestore": true, + "timeFrom": "now-1h", + "timeTo": "now", + "version": 1, + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}", + "panelsJSON": "{}", + "showApplySelections": false + } + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-10-01T00:00:00Z", + "created_by": "admin", + "id": "ibmmq_otel-resources", + "managed": false, + "references": [ + { + "type": "dashboard", + "id": "ibmmq_otel-overview", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_3af4ba12-6f83-488a-bdc9-0c7216a22d73_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-message-traffic", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_d16d89a9-684e-0340-d3b9-d6235eafdcda_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-error-analysis", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_34ac4a25-a459-0027-aab9-c29ed2019add_dashboard" + }, + { + "type": "dashboard", + "id": "ibmmq_otel-resources", + "name": "91144e9b-fac7-b44d-0b1d-8339201b83cb:link_efecfd2b-d524-b83b-c3cd-35d5623b9342_dashboard" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_at": "2023-10-01T00:00:00Z", + "updated_by": "admin", + "version": "1" +} \ No newline at end of file diff --git a/packages/ibmmq_otel/kibana/slo_template/ibmmq_otel-log-write-latency-99.5-Rolling30Days.json b/packages/ibmmq_otel/kibana/slo_template/ibmmq_otel-log-write-latency-99.5-Rolling30Days.json new file mode 100644 index 00000000000..872224b25bb --- /dev/null +++ b/packages/ibmmq_otel/kibana/slo_template/ibmmq_otel-log-write-latency-99.5-Rolling30Days.json @@ -0,0 +1,52 @@ +{ + "attributes": { + "name": "[IBM MQ OTel] Log write latency 99.5% rolling 30 days", + "description": "Tracks the average log write latency of the IBM MQ queue manager, ensuring that 99.5% of 1-minute time intervals maintain average log write latency below 5 milliseconds over a rolling 30-day period. Log write performance directly governs persistent message throughput since every persistent MQPUT requires a synchronous log write before acknowledgement.", + "indicator": { + "type": "sli.metric.timeslice", + "params": { + "index": "metrics-*", + "filter": "data_stream.dataset: \"ibmmq.otel\"", + "metric": { + "metrics": [ + { + "name": "A", + "aggregation": "avg", + "field": "ibmmq_qmgr_log_write_latency_seconds", + "filter": "" + } + ], + "equation": "A", + "comparator": "LT", + "threshold": 0.005 + }, + "timestampField": "@timestamp" + } + }, + "budgetingMethod": "timeslices", + "timeWindow": { + "duration": "30d", + "type": "rolling" + }, + "objective": { + "target": 0.995, + "timesliceTarget": 0.95, + "timesliceWindow": "1m" + }, + "tags": [ + "ibmmq", + "otel" + ], + "groupBy": [ + "attributes.qmgr" + ] + }, + "artifacts": { + "dashboards": [ + { "id": "ibmmq_otel-resources" }, + { "id": "ibmmq_otel-overview" } + ] + }, + "id": "ibmmq_otel-log-write-latency-99.5-Rolling30Days", + "type": "slo_template" +} diff --git a/packages/ibmmq_otel/kibana/slo_template/ibmmq_otel-message-put-availability-99.5-Rolling30Days.json b/packages/ibmmq_otel/kibana/slo_template/ibmmq_otel-message-put-availability-99.5-Rolling30Days.json new file mode 100644 index 00000000000..a98e884fb5c --- /dev/null +++ b/packages/ibmmq_otel/kibana/slo_template/ibmmq_otel-message-put-availability-99.5-Rolling30Days.json @@ -0,0 +1,83 @@ +{ + "attributes": { + "name": "[IBM MQ OTel] Message put availability 99.5% rolling 30 days", + "description": "Tracks the success rate of MQPUT and MQPUT1 operations on the IBM MQ queue manager, ensuring that 99.5% of 1-minute time intervals maintain at least 99.5% put success rate over a rolling 30-day period. Failed put operations indicate that applications cannot deliver messages, typically caused by queue full conditions, authorization failures, or channel outages.", + "indicator": { + "type": "sli.metric.timeslice", + "params": { + "index": "metrics-*", + "filter": "data_stream.dataset: \"ibmmq.otel\"", + "metric": { + "metrics": [ + { + "name": "A", + "aggregation": "max", + "field": "ibmmq_qmgr_mqput_mqput1_total", + "filter": "" + }, + { + "name": "B", + "aggregation": "min", + "field": "ibmmq_qmgr_mqput_mqput1_total", + "filter": "" + }, + { + "name": "C", + "aggregation": "max", + "field": "ibmmq_qmgr_failed_mqput_total", + "filter": "" + }, + { + "name": "D", + "aggregation": "min", + "field": "ibmmq_qmgr_failed_mqput_total", + "filter": "" + }, + { + "name": "E", + "aggregation": "max", + "field": "ibmmq_qmgr_failed_mqput1_total", + "filter": "" + }, + { + "name": "F", + "aggregation": "min", + "field": "ibmmq_qmgr_failed_mqput1_total", + "filter": "" + } + ], + "equation": "(A-B) / ((A-B) + (C-D) + (E-F))", + "comparator": "GTE", + "threshold": 0.995 + }, + "timestampField": "@timestamp" + } + }, + "budgetingMethod": "timeslices", + "timeWindow": { + "duration": "30d", + "type": "rolling" + }, + "objective": { + "target": 0.995, + "timesliceTarget": 0.95, + "timesliceWindow": "1m" + }, + "tags": [ + "ibmmq", + "otel" + ], + "groupBy": [ + "attributes.qmgr" + ] + }, + "artifacts": { + "dashboards": [ + { "id": "ibmmq_otel-error-analysis" }, + { "id": "ibmmq_otel-message-traffic" }, + { "id": "ibmmq_otel-overview" } + ] + }, + "id": "ibmmq_otel-message-put-availability-99.5-Rolling30Days", + "type": "slo_template" +} diff --git a/packages/ibmmq_otel/manifest.yml b/packages/ibmmq_otel/manifest.yml new file mode 100644 index 00000000000..64197a8e867 --- /dev/null +++ b/packages/ibmmq_otel/manifest.yml @@ -0,0 +1,44 @@ +format_version: 3.5.7 +name: ibmmq_otel +title: "IBM MQ OpenTelemetry Assets" +version: 0.1.0 +source: + license: "Elastic-2.0" +description: "IBM MQ Assets from OpenTelemetry Collector" +type: content +categories: + - message_queue + - opentelemetry +conditions: + kibana: + version: "^9.2.1" + elastic: + subscription: "basic" +discovery: + datasets: + - name: ibmmq.otel +screenshots: + - src: /img/ibmmq_overview.png + title: IBM MQ metrics overview + size: 3360x3040 + type: image/png + - src: /img/ibmmq_resources.png + title: IBM MQ Resources + size: 3360x3040 + type: image/png + - src: /img/ibmmq_message_traffic.png + title: IBM MQ Message Traffic + size: 3360x3040 + type: image/png + - src: /img/ibmmq_error_analysis.png + title: IBM MQ Error Analysis + size: 1849x846 + type: image/png +icons: + - src: /img/ibmmq_otel_logo.svg + title: IBM MQ OTel + size: 32x32 + type: image/svg+xml +owner: + github: elastic/obs-infraobs-integrations + type: elastic