From 4af8a035abeb6663704cc16408ae6efac8da5dcb Mon Sep 17 00:00:00 2001 From: dprizentsov Date: Tue, 6 May 2025 14:53:16 +0200 Subject: [PATCH 01/10] add jobid into object name if it is available Signed-off-by: dprizentsov --- grafana/rmf-app/pkg/plugin/frame/frame.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/grafana/rmf-app/pkg/plugin/frame/frame.go b/grafana/rmf-app/pkg/plugin/frame/frame.go index c8d42743..803d87ca 100644 --- a/grafana/rmf-app/pkg/plugin/frame/frame.go +++ b/grafana/rmf-app/pkg/plugin/frame/frame.go @@ -22,6 +22,7 @@ import ( "fmt" "math" "strconv" + "strings" "time" "github.com/grafana/grafana-plugin-sdk-go/data" @@ -153,19 +154,28 @@ func buildLongForMetric(report *dds.Report, queryName string) *data.Frame { // iterateMetricRows parses metric key-value pairs and passes them to `process` while iterating over rows. func iterateMetricRows(report *dds.Report, defaultName string, process func(name string, value *float64)) { + var sb strings.Builder for _, jsonRow := range report.Rows { cols := jsonRow.Cols name, rawValue := cols[0], cols[1] if name == "*NoData*" { continue } - if len(jsonRow.Cols) == 3 { - name += "[" + cols[2] + "]" + sb.Reset() + sb.WriteString(name) + if len(jsonRow.Cols) >= 3 { + sb.WriteString("[") + sb.WriteString(cols[2]) + if len(jsonRow.Cols) >= 4 && cols[3] != "" { + sb.WriteString(".") + sb.WriteString(cols[3]) + } + sb.WriteString("]") } - if name == "" { - name = defaultName + if sb.Len() == 0 { + sb.WriteString(defaultName) } - process(name, parseFloat(rawValue)) + process(sb.String(), parseFloat(rawValue)) } } From 0837d2cf7f88e86dcdbb3d652268375ae7943794 Mon Sep 17 00:00:00 2001 From: Dmitry Nikolaev Date: Fri, 9 May 2025 15:12:10 +0200 Subject: [PATCH 02/10] Refactor time series streaming Signed-off-by: Dmitry Nikolaev --- .github/workflows/ibm-rmf-grafana.yml | 2 +- grafana/rmf-app/.golangci.yml | 60 +- grafana/rmf-app/.nvmrc | 2 +- grafana/rmf-app/go.mod | 102 +- grafana/rmf-app/go.sum | 220 +- grafana/rmf-app/package.json | 62 +- grafana/rmf-app/pkg/plugin/cache/cache.go | 80 + grafana/rmf-app/pkg/plugin/cache/channel.go | 57 - grafana/rmf-app/pkg/plugin/cache/frame.go | 111 - grafana/rmf-app/pkg/plugin/channel.go | 82 + grafana/rmf-app/pkg/plugin/config.go | 11 +- grafana/rmf-app/pkg/plugin/datasource.go | 536 +--- grafana/rmf-app/pkg/plugin/dds/client.go | 33 +- grafana/rmf-app/pkg/plugin/dds/headers.go | 14 +- grafana/rmf-app/pkg/plugin/dds/request.go | 78 + grafana/rmf-app/pkg/plugin/dds/response.go | 2 +- grafana/rmf-app/pkg/plugin/frame/frame.go | 74 +- .../rmf-app/pkg/plugin/frame/frame_test.go | 8 +- grafana/rmf-app/pkg/plugin/frame/query.go | 214 -- .../pkg/plugin/frame/testdata/frames.json | 334 +- grafana/rmf-app/pkg/plugin/frame/utils.go | 24 +- grafana/rmf-app/yarn.lock | 2738 +++++++++-------- 22 files changed, 2201 insertions(+), 2643 deletions(-) create mode 100644 grafana/rmf-app/pkg/plugin/cache/cache.go delete mode 100644 grafana/rmf-app/pkg/plugin/cache/channel.go delete mode 100644 grafana/rmf-app/pkg/plugin/cache/frame.go create mode 100644 grafana/rmf-app/pkg/plugin/channel.go create mode 100644 grafana/rmf-app/pkg/plugin/dds/request.go delete mode 100644 grafana/rmf-app/pkg/plugin/frame/query.go diff --git a/.github/workflows/ibm-rmf-grafana.yml b/.github/workflows/ibm-rmf-grafana.yml index c0390640..9fa48277 100644 --- a/.github/workflows/ibm-rmf-grafana.yml +++ b/.github/workflows/ibm-rmf-grafana.yml @@ -44,7 +44,7 @@ jobs: run: make test - name: Lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v8 with: version: latest only-new-issues: true diff --git a/grafana/rmf-app/.golangci.yml b/grafana/rmf-app/.golangci.yml index 79e34a31..18201ee5 100644 --- a/grafana/rmf-app/.golangci.yml +++ b/grafana/rmf-app/.golangci.yml @@ -1,15 +1,59 @@ +version: "2" run: allow-parallel-runners: true - linters: enable: - - gofmt + - asasalint + - asciicheck + - bidichk + - bodyclose + - contextcheck + - durationcheck + - errchkjson + - errorlint + - exhaustive + - fatcontext + - gocheckcompilerdirectives + - gochecksumtype + - gosec + - gosmopolitan + - loggercheck + - makezero + - nilerr + - nilnesserr + - noctx + - perfsprint + - prealloc + - protogetter + - reassign + - recvcheck + - rowserrcheck + - spancheck + - sqlclosecheck + - testifylint + - unparam + - zerologlint disable: - - wrapcheck - err113 - musttag - presets: - - bugs - - error - - unused - - performance + - wrapcheck + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + paths: + - third_party$ + - builtin$ + - examples$ +formatters: + enable: + - gofmt + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ diff --git a/grafana/rmf-app/.nvmrc b/grafana/rmf-app/.nvmrc index 016e34ba..9158a6fb 100644 --- a/grafana/rmf-app/.nvmrc +++ b/grafana/rmf-app/.nvmrc @@ -1 +1 @@ -v20.17.0 +v22.15.0 diff --git a/grafana/rmf-app/go.mod b/grafana/rmf-app/go.mod index 91baed01..0ebb8a17 100644 --- a/grafana/rmf-app/go.mod +++ b/grafana/rmf-app/go.mod @@ -1,71 +1,72 @@ module github.com/IBM/RMF/grafana/rmf-app -go 1.23.0 +go 1.24.3 require ( github.com/VictoriaMetrics/fastcache v1.12.2 github.com/google/uuid v1.6.0 - github.com/grafana/grafana-plugin-sdk-go v0.256.0 - github.com/stretchr/testify v1.9.0 - golang.org/x/sync v0.8.0 + github.com/grafana/grafana-plugin-sdk-go v0.277.1 + github.com/stretchr/testify v1.10.0 + golang.org/x/sync v0.14.0 ) require ( - github.com/BurntSushi/toml v1.4.0 // indirect - github.com/apache/arrow/go/v15 v15.0.2 // indirect + github.com/BurntSushi/toml v1.5.0 // indirect + github.com/apache/arrow-go/v18 v18.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cheekybits/genny v1.0.0 // indirect - github.com/chromedp/cdproto v0.0.0-20241022234722-4d5d5faf59fb // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect + github.com/chromedp/cdproto v0.0.0-20250429231605-6ed5b53462d4 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/elazarl/goproxy v0.0.0-20240909085733-6741dbfc16a1 // indirect + github.com/elazarl/goproxy v1.7.2 // indirect github.com/fatih/color v1.18.0 // indirect - github.com/getkin/kin-openapi v0.128.0 // indirect + github.com/getkin/kin-openapi v0.132.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect - github.com/goccy/go-json v0.10.3 // indirect + github.com/go-openapi/jsonpointer v0.21.1 // indirect + github.com/go-openapi/swag v0.23.1 // indirect + github.com/goccy/go-json v0.10.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.4 // indirect - github.com/google/flatbuffers v24.3.25+incompatible // indirect - github.com/google/go-cmp v0.6.0 // indirect + github.com/golang/snappy v1.0.0 // indirect + github.com/google/flatbuffers v25.2.10+incompatible // indirect + github.com/google/go-cmp v0.7.0 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/grafana/otel-profiling-go v0.5.1 // indirect github.com/grafana/pyroscope-go/godeltaprof v0.1.8 // indirect github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 // indirect - github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect - github.com/hashicorp/go-plugin v1.6.2 // indirect + github.com/hashicorp/go-plugin v1.6.3 // indirect github.com/hashicorp/yamux v0.1.2 // indirect - github.com/invopop/yaml v0.3.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.11 // indirect - github.com/klauspost/cpuid/v2 v2.2.8 // indirect + github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/magefile/mage v1.15.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/mailru/easyjson v0.9.0 // indirect github.com/mattetti/filebuffer v1.0.1 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect + github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect github.com/oklog/run v1.1.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/perimeterx/marshmallow v1.1.5 // indirect - github.com/pierrec/lz4/v4 v4.1.21 // indirect + github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.20.5 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.60.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_golang v1.22.0 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.63.0 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8 // indirect @@ -73,28 +74,29 @@ require ( github.com/unknwon/log v0.0.0-20200308114134-929b1006e34a // indirect github.com/urfave/cli v1.22.16 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 // indirect - go.opentelemetry.io/contrib/propagators/jaeger v1.31.0 // indirect - go.opentelemetry.io/contrib/samplers/jaegerremote v0.25.0 // indirect - go.opentelemetry.io/otel v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect - go.opentelemetry.io/otel/metric v1.31.0 // indirect - go.opentelemetry.io/otel/sdk v1.31.0 // indirect - go.opentelemetry.io/otel/trace v1.31.0 // indirect - go.opentelemetry.io/proto/otlp v1.3.1 // indirect - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect - golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.19.0 // indirect - golang.org/x/tools v0.26.0 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.60.0 // indirect + go.opentelemetry.io/contrib/propagators/jaeger v1.35.0 // indirect + go.opentelemetry.io/contrib/samplers/jaegerremote v0.29.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect + go.opentelemetry.io/otel/sdk v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/proto/otlp v1.6.0 // indirect + golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect + golang.org/x/mod v0.24.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.25.0 // indirect + golang.org/x/tools v0.33.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect - google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250505200425-f936aa4a68b2 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250505200425-f936aa4a68b2 // indirect + google.golang.org/grpc v1.72.0 // indirect + google.golang.org/protobuf v1.36.6 // indirect gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/grafana/rmf-app/go.sum b/grafana/rmf-app/go.sum index ae8ab247..bc58e0b4 100644 --- a/grafana/rmf-app/go.sum +++ b/grafana/rmf-app/go.sum @@ -1,12 +1,17 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/apache/arrow/go/v15 v15.0.2 h1:60IliRbiyTWCWjERBCkO1W4Qun9svcYoZrSLcyOsMLE= -github.com/apache/arrow/go/v15 v15.0.2/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= +github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= +github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= +github.com/apache/arrow-go/v18 v18.2.0 h1:QhWqpgZMKfWOniGPhbUxrHohWnooGURqL2R2Gg4SO1Q= +github.com/apache/arrow-go/v18 v18.2.0/go.mod h1:Ic/01WSwGJWRrdAZcxjBZ5hbApNJ28K96jGYaxzzGUc= +github.com/apache/thrift v0.21.0 h1:tdPmh/ptjE1IJnhbhrcl2++TauVjy242rkV/UzJChnE= +github.com/apache/thrift v0.21.0/go.mod h1:W1H8aR/QRtYNvrPeFXBtobyRkd0/YVhTc6i07XIAgDw= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= @@ -18,18 +23,17 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/chromedp/cdproto v0.0.0-20241022234722-4d5d5faf59fb h1:noKVm2SsG4v0Yd0lHNtFYc9EUxIVvrr4kJ6hM8wvIYU= -github.com/chromedp/cdproto v0.0.0-20241022234722-4d5d5faf59fb/go.mod h1:4XqMl3iIW08jtieURWL6Tt5924w21pxirC6th662XUM= +github.com/chromedp/cdproto v0.0.0-20250429231605-6ed5b53462d4 h1:UZdrvid2JFwnvPlUSEFlE794XZL4Jmrj8fuxfcLECJE= +github.com/chromedp/cdproto v0.0.0-20250429231605-6ed5b53462d4/go.mod h1:NItd7aLkcfOA/dcMXvl8p1u+lQqioRMq/SqDp71Pb/k= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= +github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/elazarl/goproxy v0.0.0-20240909085733-6741dbfc16a1 h1:g7YUigN4dW2+zpdusdTTghZ+5Py3BaUMAStvL8Nk+FY= -github.com/elazarl/goproxy v0.0.0-20240909085733-6741dbfc16a1/go.mod h1:thX175TtLTzLj3p7N/Q9IiKZ7NF+p72cvL91emV0hzo= -github.com/elazarl/goproxy/ext v0.0.0-20220115173737-adb46da277ac h1:9yrT5tmn9Zc0ytWPASlaPwQfQMQYnRf0RSDe1XvHw0Q= -github.com/elazarl/goproxy/ext v0.0.0-20220115173737-adb46da277ac/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= +github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o= +github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= @@ -37,32 +41,34 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/getkin/kin-openapi v0.128.0 h1:jqq3D9vC9pPq1dGcOCv7yOp1DaEe7c/T1vzcLbITSp4= -github.com/getkin/kin-openapi v0.128.0/go.mod h1:OZrfXzUfGrNbsKj+xmFBx6E5c6yH3At/tAKSc2UszXM= +github.com/getkin/kin-openapi v0.132.0 h1:3ISeLMsQzcb5v26yeJrBcdTCEQTag36ZjaGk7MIRUwk= +github.com/getkin/kin-openapi v0.132.0/go.mod h1:3OlG51PCYNsPByuiMB0t4fjnNlIDnaEDsjiKUV8nL58= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic= +github.com/go-openapi/jsonpointer v0.21.1/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk= +github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU= +github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= -github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= -github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= -github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= +github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= +github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -70,26 +76,24 @@ github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1 github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/grafana/grafana-plugin-sdk-go v0.256.0 h1:Vh7A+QaaenNx2gwKQekwHuGEGz8XNvc6Q2ZU+H4/Y/A= -github.com/grafana/grafana-plugin-sdk-go v0.256.0/go.mod h1:ACAKXTUgobDFdroItuDxXzdOxa2aCsG1GfZ5+j+/i8M= +github.com/grafana/grafana-plugin-sdk-go v0.277.1 h1:CF2pk2Pc/VX0DNBdk1+n3XSL0KvzMEcy6oubN/qdEmY= +github.com/grafana/grafana-plugin-sdk-go v0.277.1/go.mod h1:2ekE3wh4VyHmvBKP3VBdJNoAK4fD50HLxhlco9FzTwg= github.com/grafana/otel-profiling-go v0.5.1 h1:stVPKAFZSa7eGiqbYuG25VcqYksR6iWvF3YH66t4qL8= github.com/grafana/otel-profiling-go v0.5.1/go.mod h1:ftN/t5A/4gQI19/8MoWurBEtC6gFw8Dns1sJZ9W4Tls= github.com/grafana/pyroscope-go/godeltaprof v0.1.8 h1:iwOtYXeeVSAeYefJNaxDytgjKtUuKQbJqgAIjlnicKg= github.com/grafana/pyroscope-go/godeltaprof v0.1.8/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 h1:qnpSQwGEnkcRpTqNOIR6bJbR0gAorgP9CSALpRcKoAA= github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1/go.mod h1:lXGCsh6c22WGtjr+qGHj1otzZpV/1kwTMAqkwZsnWRU= -github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= -github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4zG2vvqG6uWNkBHSTqXOZk0= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= -github.com/hashicorp/go-plugin v1.6.2 h1:zdGAEd0V1lCaU0u+MxWQhtSDQmahpkwOun8U8EiRVog= -github.com/hashicorp/go-plugin v1.6.2/go.mod h1:CkgLQ5CZqNmdL9U9JzM532t8ZiYQ35+pj3b1FD37R0Q= +github.com/hashicorp/go-plugin v1.6.3 h1:xgHB+ZUSYeuJi96WtxEjzi23uh7YQpznjGh0U0UUrwg= +github.com/hashicorp/go-plugin v1.6.3/go.mod h1:MRobyh+Wc/nYy1V4KAXUiYfzxoYhs7V1mlH1Z7iY2h0= github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8= github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns= -github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso= -github.com/invopop/yaml v0.3.1/go.mod h1:PMOp3nn4/12yEZUFfmOuNHJsZToEEOwoWsT+D81KkeA= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -100,10 +104,12 @@ github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpR github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -112,22 +118,25 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattetti/filebuffer v1.0.1 h1:gG7pyfnSIZCxdoKq+cPa8T0hhYtD9NxCdI4D7PTjRLM= github.com/mattetti/filebuffer v1.0.1/go.mod h1:YdMURNDOttIiruleeVr6f56OrMc+MydEnTcXwtkxNVs= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -139,24 +148,28 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//JalHPu/3yz+De2J+4aLtSRlHiY= +github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037/go.mod h1:2bpvgLBZEtENV5scfDFEtB/5+1M4hkQhDQrccEJ/qGw= +github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 h1:bQx3WeLcUWy+RletIKwUIt4x3t8n2SxavmoclizMb8c= +github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s= github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= -github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= -github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= +github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= -github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= +github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -179,8 +192,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8 h1:aVGB3YnaS/JNfOW3tiHIlmNmTDg618va+eT0mVomgyI= @@ -199,56 +213,60 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 h1:4BZHA+B1wXEQoGNHxW8mURaLhcdGwvRnmhGbm+odRbc= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0/go.mod h1:3qi2EEwMgB4xnKgPLqsDP3j9qxnHDZeHsnAxfjQqTko= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM= -go.opentelemetry.io/contrib/propagators/jaeger v1.31.0 h1:k9P5RQEWIKUP6N18/ouSvPD/uTjc7s+8WPnuVK6lWOI= -go.opentelemetry.io/contrib/propagators/jaeger v1.31.0/go.mod h1:OpgiBRssaVKOTM5lSKkOBIGQh/ixvfZRmxQXARK/kGQ= -go.opentelemetry.io/contrib/samplers/jaegerremote v0.25.0 h1:nwxen/H3auImb5D4Neo8TDhDseskdRYmlHvi7j1sExc= -go.opentelemetry.io/contrib/samplers/jaegerremote v0.25.0/go.mod h1:KjcLnhrgBMLiPPAqyoGhuNmF6jm38LCPV6hdbBeFOTU= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.60.0 h1:0tY123n7CdWMem7MOVdKOt0YfshufLCwfE5Bob+hQuM= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.60.0/go.mod h1:CosX/aS4eHnG9D7nESYpV753l4j9q5j3SL/PUYd2lR8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= +go.opentelemetry.io/contrib/propagators/jaeger v1.35.0 h1:UIrZgRBHUrYRlJ4V419lVb4rs2ar0wFzKNAebaP05XU= +go.opentelemetry.io/contrib/propagators/jaeger v1.35.0/go.mod h1:0ciyFyYZxE6JqRAQvIgGRabKWDUmNdW3GAQb6y/RlFU= +go.opentelemetry.io/contrib/samplers/jaegerremote v0.29.0 h1:VpYbyLrB5BS3blBCJMqHRIrbU4RlPnyFovR3La+1j4Q= +go.opentelemetry.io/contrib/samplers/jaegerremote v0.29.0/go.mod h1:XAJmM2MWhiIoTO4LCLBVeE8w009TmsYk6hq1UNdXs5A= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo= go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= -go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= -go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= +go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191020152052-9984515f0562/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -258,38 +276,36 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= -gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= -google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 h1:2oV8dfuIkM1Ti7DwXc0BJfnwr9csz4TDXI9EmiI+Rbw= -google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38/go.mod h1:vuAjtvlwkDKF6L1GQ0SokiRLCGFfeBUXWr/aFFkHACc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= +gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= +google.golang.org/genproto/googleapis/api v0.0.0-20250505200425-f936aa4a68b2 h1:vPV0tzlsK6EzEDHNNH5sa7Hs9bd7iXR7B1tSiPepkV0= +google.golang.org/genproto/googleapis/api v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:pKLAc5OolXC3ViWGI62vvC0n10CpwAtRcTNCFwTKBEw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250505200425-f936aa4a68b2 h1:IqsN8hx+lWLqlN+Sc3DoMy/watjofWiU8sRFgQ8fhKM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM= +google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/grafana/rmf-app/package.json b/grafana/rmf-app/package.json index b4f98772..dc62ac66 100644 --- a/grafana/rmf-app/package.json +++ b/grafana/rmf-app/package.json @@ -1,7 +1,7 @@ { "author": "IBM", "name": "ibm-rmf", - "version": "1.0.8", + "version": "1.0.9", "description": "IBM RMF for z/OS", "license": "Apache-2.0", "scripts": { @@ -28,40 +28,40 @@ "upgrade": "yarn upgrade --latest" }, "devDependencies": { - "@babel/core": "^7.25.9", + "@babel/core": "^7.27.1", "@grafana/eslint-config": "^8.0.0", "@grafana/tsconfig": "^2.0.0", - "@playwright/test": "^1.48.1", - "@swc/core": "^1.7.39", - "@swc/helpers": "^0.5.13", - "@swc/jest": "^0.2.36", - "@testing-library/jest-dom": "^6.6.2", - "@testing-library/react": "^16.0.1", + "@playwright/test": "^1.52.0", + "@swc/core": "^1.11.24", + "@swc/helpers": "^0.5.17", + "@swc/jest": "^0.2.38", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.3.0", "@types/jest": "^29.5.14", - "@types/lodash": "^4.17.12", - "@types/node": "^22.7.9", + "@types/lodash": "^4.17.16", + "@types/node": "^22.15.17", "@types/react-router-dom": "^5.3.3", - "copy-webpack-plugin": "^12.0.2", + "copy-webpack-plugin": "^13.0.0", "css-loader": "^7.1.2", "eslint-plugin-deprecation": "^3.0.0", - "eslint-webpack-plugin": "^4.2.0", - "fork-ts-checker-webpack-plugin": "^9.0.2", - "glob": "^11.0.0", + "eslint-webpack-plugin": "^5.0.1", + "fork-ts-checker-webpack-plugin": "^9.1.0", + "glob": "^11.0.2", "identity-obj-proxy": "^3.0.0", "imports-loader": "^5.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "prettier": "^3.3.3", + "prettier": "^3.5.3", "replace-in-file-webpack-plugin": "^1.0.6", - "sass": "^1.80.3", - "sass-loader": "^16.0.2", + "sass": "^1.87.0", + "sass-loader": "^16.0.5", "style-loader": "^4.0.0", "swc-loader": "^0.2.6", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", - "typescript": "^5.6.3", - "webpack": "^5.95.0", - "webpack-cli": "^5.1.4", + "typescript": "^5.8.3", + "webpack": "^5.99.8", + "webpack-cli": "^6.0.1", "webpack-livereload-plugin": "^3.0.2", "webpack-virtual-modules": "^0.6.2" }, @@ -69,17 +69,17 @@ "node": ">=20" }, "dependencies": { - "@emotion/css": "^11.13.4", - "@grafana/data": "^11.3.0", - "@grafana/runtime": "^11.3.0", - "@grafana/schema": "^11.3.0", - "@grafana/ui": "^11.3.0", + "@emotion/css": "^11.13.5", + "@grafana/data": "^12.0.0", + "@grafana/runtime": "^12.0.0", + "@grafana/schema": "^12.0.0", + "@grafana/ui": "^12.0.0", "antlr4": "^4.13.2", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-router-dom": "^6.27.0", - "rxjs": "^7.8.1", - "tslib": "^2.8.0" + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-router-dom": "^7.6.0", + "rxjs": "^7.8.2", + "tslib": "^2.8.1" }, - "packageManager": "yarn@4.5.0" + "packageManager": "yarn@4.9.1" } diff --git a/grafana/rmf-app/pkg/plugin/cache/cache.go b/grafana/rmf-app/pkg/plugin/cache/cache.go new file mode 100644 index 00000000..ea16bc72 --- /dev/null +++ b/grafana/rmf-app/pkg/plugin/cache/cache.go @@ -0,0 +1,80 @@ +/** +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + */ + +package cache + +import ( + "encoding/json" + "fmt" + + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/dds" + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/log" + + "github.com/VictoriaMetrics/fastcache" + "github.com/grafana/grafana-plugin-sdk-go/data" +) + +type Cache struct { + cache *fastcache.Cache +} + +func NewFrameCache(size int) *Cache { + return &Cache{cache: fastcache.New(size * 1024 * 1024)} +} + +func (fc *Cache) Reset() { + fc.cache.Reset() +} + +func Key(r *dds.Request, wide bool) []byte { + format := "long" + if wide { + format = "wide" + } + return []byte(fmt.Sprintf("%s[%s]@%d-%d", r.Resource, format, r.TimeRange.From.UnixMilli(), r.TimeRange.To.UnixMilli())) +} + +func (fc *Cache) GetFrame(r *dds.Request, wide bool) *data.Frame { + logger := log.Logger.With("func", "GetFrame") + var frame data.Frame + key := Key(r, wide) + buf := fc.cache.GetBig(nil, key) + if buf != nil { + err := json.Unmarshal(buf, &frame) + if err != nil { + logger.Error("Unmarshal error", "err", err, "key", key) + return nil + } else { + return &frame + } + } + return nil +} + +func (fc *Cache) SaveFrame(f *data.Frame, r *dds.Request, wide bool) error { + key := Key(r, wide) + frame := fc.GetFrame(r, wide) + if frame != nil { + return nil + } + val, err := json.Marshal(&f) + if err != nil { + return err + } + fc.cache.SetBig(key, val) + return nil +} diff --git a/grafana/rmf-app/pkg/plugin/cache/channel.go b/grafana/rmf-app/pkg/plugin/cache/channel.go deleted file mode 100644 index 0ac92c3c..00000000 --- a/grafana/rmf-app/pkg/plugin/cache/channel.go +++ /dev/null @@ -1,57 +0,0 @@ -/** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. - */ - -package cache - -import ( - "encoding/json" - - "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/frame" - - "github.com/VictoriaMetrics/fastcache" -) - -type ChannelCache struct { - cache *fastcache.Cache -} - -func NewChannelCache(size int) *ChannelCache { - return &ChannelCache{cache: fastcache.New(size * 1024 * 1024)} -} - -func (cc *ChannelCache) GetChannelQuery(path string) (*frame.QueryModel, error) { - var query frame.QueryModel - queryBytes := cc.cache.Get(nil, []byte(path)) - err := json.Unmarshal(queryBytes, &query) - return &query, err -} - -func (cc *ChannelCache) SetChannelQuery(path string, query *frame.QueryModel) error { - queryBytes, err := json.Marshal(*query) - if err == nil { - cc.cache.Set([]byte(path), queryBytes) - } - return err -} - -func (cc *ChannelCache) HasChannelQuery(path string) bool { - return cc.cache.Has([]byte(path)) -} - -func (cc *ChannelCache) Reset() { - cc.cache.Reset() -} diff --git a/grafana/rmf-app/pkg/plugin/cache/frame.go b/grafana/rmf-app/pkg/plugin/cache/frame.go deleted file mode 100644 index cb23db2a..00000000 --- a/grafana/rmf-app/pkg/plugin/cache/frame.go +++ /dev/null @@ -1,111 +0,0 @@ -/** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. - */ - -package cache - -import ( - "encoding/json" - "math" - "time" - - "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/frame" - "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/log" - - "github.com/VictoriaMetrics/fastcache" - "github.com/grafana/grafana-plugin-sdk-go/data" -) - -type CacheItemValue struct { - ValueKey time.Time - Value data.Frame - - frame.ResponseStatus -} - -type FrameCache struct { - cache *fastcache.Cache -} - -func NewFrameCache(size int) *FrameCache { - return &FrameCache{cache: fastcache.New(size * 1024 * 1024)} -} - -func (fc *FrameCache) getCacheItemValue(key []byte) *CacheItemValue { - logger := log.Logger.With("func", "getCacheItemValue") - byteCacheItemValue := fc.cache.GetBig(nil, key) - if byteCacheItemValue != nil { - var cacheItemValue CacheItemValue - err := json.Unmarshal(byteCacheItemValue, &cacheItemValue) - if err != nil { - logger.Debug("Unmarshal error", "err", err, "key", string(key)) - return nil - } - return &cacheItemValue - } - return nil -} - -func (fc *FrameCache) GetFrame(qm *frame.QueryModel) *data.Frame { - var ( - resultframe *data.Frame - ) - matchedCacheItem := fc.getCacheItemValue(qm.CacheKey()) - if matchedCacheItem != nil { - diffInSecs := int(matchedCacheItem.ValueKey.Sub(qm.CurrentTime).Seconds()) - if int(math.Abs(float64(diffInSecs))) <= int(matchedCacheItem.Mintime) { - qm.Update(&matchedCacheItem.ResponseStatus) - resultframe = &matchedCacheItem.Value - } - } - return resultframe -} - -func (fc *FrameCache) SaveFrame(frame *data.Frame, qm *frame.QueryModel) error { - logger := log.Logger.With("func", "SaveFrame") - - var cacheItemValue *CacheItemValue - cacheItemValue = fc.getCacheItemValue(qm.CacheKey()) - if cacheItemValue != nil { - if cacheItemValue.CurrentTime.Equal(qm.CurrentTime) { - logger.Debug("cache item already exist", "key", string(qm.CacheKey())) - return nil - } - } - var newCacheItemValue CacheItemValue = fc.createCacheItemValue(frame, qm) - - if cacheItemValueBytes, err := json.Marshal(&newCacheItemValue); err != nil { - return err - } else { - fc.cache.SetBig(qm.CacheKey(), cacheItemValueBytes) - logger.Debug("cache item added", "key", string(qm.CacheKey())) - } - return nil -} - -func (fc *FrameCache) createCacheItemValue(frame *data.Frame, qm *frame.QueryModel) CacheItemValue { - var ( - cacheItemValue CacheItemValue - ) - cacheItemValue.ValueKey = qm.CurrentTime - cacheItemValue.Value = *frame - cacheItemValue.Update(&qm.ResponseStatus) - return cacheItemValue -} - -func (fc *FrameCache) Reset() { - fc.cache.Reset() -} diff --git a/grafana/rmf-app/pkg/plugin/channel.go b/grafana/rmf-app/pkg/plugin/channel.go new file mode 100644 index 00000000..4c6d9280 --- /dev/null +++ b/grafana/rmf-app/pkg/plugin/channel.go @@ -0,0 +1,82 @@ +/** +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + */ + +package plugin + +import ( + "encoding/base64" + "errors" + "strconv" + "strings" + "time" + + "github.com/google/uuid" +) + +const Sep = ":" + +func encodeChannelPath(res string, from time.Time, to time.Time, absolute bool, interval time.Duration) string { + absFlag := "0" + if absolute { + absFlag = "1" + } + path := res + + Sep + strconv.FormatInt(from.Unix(), 10) + + Sep + strconv.FormatInt(to.Unix(), 10) + + Sep + absFlag + + Sep + strconv.FormatInt(int64(interval.Seconds()), 10) + + Sep + uuid.NewString()[:8] + return base64.StdEncoding.EncodeToString([]byte(path)) +} + +func decodeChannelPath(b string) (string, time.Time, time.Time, bool, time.Duration, error) { + var ( + res string + from time.Time + to time.Time + absolute bool + interval time.Duration + ) + path, err := base64.StdEncoding.DecodeString(b) + if err != nil { + return res, from, to, absolute, interval, err + } + parts := strings.Split(string(path), Sep) + if len(parts) != 6 { + return res, from, to, absolute, interval, errors.New("invalid number of elements") + } + res = parts[0] + if timestamp, err := strconv.ParseInt(parts[1], 10, 64); err != nil { + return res, from, to, absolute, interval, err + } else { + from = time.Unix(timestamp, 0) + } + if timestamp, err := strconv.ParseInt(parts[2], 10, 64); err != nil { + return res, from, to, absolute, interval, err + } else { + to = time.Unix(timestamp, 0) + } + if parts[3] == "1" { + absolute = true + } + if d, err := strconv.ParseInt(parts[4], 10, 64); err != nil { + return res, from, to, absolute, interval, err + } else { + interval = time.Duration(d) * time.Second + } + return res, from, to, absolute, interval, nil +} diff --git a/grafana/rmf-app/pkg/plugin/config.go b/grafana/rmf-app/pkg/plugin/config.go index 924809d9..40c5c6eb 100644 --- a/grafana/rmf-app/pkg/plugin/config.go +++ b/grafana/rmf-app/pkg/plugin/config.go @@ -1,6 +1,6 @@ /** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,11 +30,6 @@ const DefaultHttpTimeout = 60 const DefaultCacheSizeMB = 1024 const MinimalCacheSizeMB = 128 -// There's up to two queries per channel to be cached. -// One query takes about 1KB of memory. -// So, 16MB means about 8k channels per data source. -const ChannelCacheSizeMB = 16 - type Config struct { URL string Timeout int @@ -95,7 +90,7 @@ func (ds *RMFDatasource) getConfig(settings backend.DataSourceInstanceSettings) } } if config.CacheSize, err = strconv.Atoi(config.JSON.CacheSizeRaw); err != nil { - logger.Warn("cache size is not valid, applying default", "cacheSize", config.JSON.CacheSizeRaw) + logger.Warn("cache size is not valid, applying default", "cacheSize", config.JSON.CacheSizeRaw, "err", err) config.CacheSize = DefaultCacheSizeMB } if config.CacheSize < MinimalCacheSizeMB { diff --git a/grafana/rmf-app/pkg/plugin/datasource.go b/grafana/rmf-app/pkg/plugin/datasource.go index 3faf4d71..e13f8920 100644 --- a/grafana/rmf-app/pkg/plugin/datasource.go +++ b/grafana/rmf-app/pkg/plugin/datasource.go @@ -1,6 +1,6 @@ /** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,15 +21,12 @@ import ( "context" "encoding/json" "errors" - "fmt" - "math" "net/http" "runtime/debug" "strings" "sync" "time" - "github.com/google/uuid" "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" "github.com/grafana/grafana-plugin-sdk-go/data" @@ -54,15 +51,15 @@ var ( _ backend.StreamHandler = (*RMFDatasource)(nil) ) -const SdsDelay = 5 +const SdsDelay = 5 * time.Second +const TimeSeriesType = "TimeSeries" type RMFDatasource struct { - uid string - name string - channelCache *cache.ChannelCache - frameCache *cache.FrameCache - ddsClient *dds.Client - single singleflight.Group + uid string + name string + cache *cache.Cache + ddsClient *dds.Client + single singleflight.Group } // NewRMFDatasource creates a new instance of the RMF datasource. @@ -77,8 +74,7 @@ func NewRMFDatasource(ctx context.Context, settings backend.DataSourceInstanceSe // nolint:contextcheck ds.ddsClient = dds.NewClient(config.URL, config.Username, config.Password, config.Timeout, config.JSON.TlsSkipVerify, config.JSON.DisableCompression) - ds.channelCache = cache.NewChannelCache(ChannelCacheSizeMB) - ds.frameCache = cache.NewFrameCache(config.CacheSize) + ds.cache = cache.NewFrameCache(config.CacheSize) logger.Info("initialized a datasource", "uid", settings.UID, "name", settings.Name, "url", config.URL, "timeout", config.Timeout, "cacheSize", config.CacheSize, @@ -93,8 +89,7 @@ func (ds *RMFDatasource) Dispose() { logger := log.Logger.With("func", "Dispose") // Recover from any panic so as to not bring down this backend datasource defer log.LogAndRecover(logger) - ds.channelCache.Reset() - ds.frameCache.Reset() + ds.cache.Reset() ds.ddsClient.Close() logger.Info("disposed datasource", "uid", ds.uid, "name", ds.name) } @@ -184,6 +179,14 @@ func (ds *RMFDatasource) CallResource(ctx context.Context, req *backend.CallReso } } +type RequestParams struct { + Resource struct { + Value string `json:"value"` + } `json:"selectedResource"` + AbsoluteTime bool `json:"absoluteTimeSelected"` + VisType string `json:"selectedVisualisationType"` +} + // QueryData handles multiple queries and returns multiple responses. // req contains the queries []DataQuery (where each query contains RefID as a unique identifier). // The QueryDataResponse contains a map of RefID to the response for each query, and each response @@ -223,28 +226,44 @@ func (ds *RMFDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe go func(q backend.DataQuery) { defer wg.Done() + var response *backend.DataResponse - qm, err := frame.NewQueryModel(q) + var params RequestParams + err := json.Unmarshal(q.JSON, ¶ms) + if err != nil { - if errors.Is(err, frame.ErrBlankResource) { - response = &backend.DataResponse{Status: backend.StatusOK} - } else { - response = &backend.DataResponse{Status: backend.StatusBadRequest, Error: err} - } + response = &backend.DataResponse{Status: backend.StatusBadRequest, Error: err} } else { - // nolint:contextcheck - qm.TimeOffset = ds.ddsClient.GetCachedTimeOffset() - // nolint:contextcheck - qm.Mintime = ds.ddsClient.GetCachedMintime() - if qm.SelectedVisualisationType == frame.TimeSeriesType { - response = ds.queryTimeSeries(ctx, req.PluginContext, qm) + mintime := ds.ddsClient.GetCachedMintime() + if params.VisType == TimeSeriesType { + // Initialize time series stream + from := q.TimeRange.From + f := frame.TaggedFrame(from, "No data yet...") + path := encodeChannelPath(params.Resource.Value, from, q.TimeRange.To, params.AbsoluteTime, q.Interval) + channel := live.Channel{ + Scope: live.ScopeDatasource, + Namespace: req.PluginContext.DataSourceInstanceSettings.UID, + Path: path, + } + f.SetMeta(&data.FrameMeta{Channel: channel.String()}) + response = &backend.DataResponse{Frames: data.Frames{f}} } else { - // FIXME: it's not actually table data. Just not time series. - response = ds.queryTableData(ctx, qm) - } - if response == nil { - err = log.ErrorWithId(logger, log.InternalError, "query response is nil") - response = &backend.DataResponse{Status: backend.StatusInternal, Error: err} + // Query non-timeseries data + r := dds.NewRequest(params.Resource.Value, q.TimeRange.From, q.TimeRange.To, mintime) + response = &backend.DataResponse{} + // FIXME: doesn't it need to be cached? + if newFrame, err := ds.getFrame(ctx, r, false); err != nil { + // nolint:errorlint + if cause, ok := errors.Unwrap(err).(*dds.Message); ok { + response.Error = cause + response.Status = backend.StatusBadRequest + } else { + response.Error = log.FrameErrorWithId(logger, err) + response.Status = backend.StatusInternal + } + } else if newFrame != nil { + response.Frames = append(response.Frames, newFrame) + } } } responseChan <- ResponseWithId{refId: q.RefID, response: response} @@ -262,294 +281,152 @@ func (ds *RMFDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe return qr, nil } -func (ds *RMFDatasource) queryTimeSeries(ctx context.Context, pCtx backend.PluginContext, query *frame.QueryModel) *backend.DataResponse { - logger := log.Logger.With("func", "queryTimeSeries") - - var ( - newFrame *data.Frame - err error - dataResponse *backend.DataResponse = &backend.DataResponse{} - ) - - setQueryTimeRange(query, false) - if latestNotReady(query.CurrentTime, query.Mintime) { - logger.Debug("interval not yet ready, step back", "time", query.CurrentTime.String()) - moveNextPrevious(query, false) - } - if newFrame, err = ds.getFrameFromCacheOrServer(ctx, query); err != nil { - // nolint:errorlint - if cause, ok := errors.Unwrap(err).(*dds.Message); ok { - dataResponse.Error = cause - dataResponse.Status = backend.StatusBadRequest - } else { - dataResponse.Error = log.FrameErrorWithId(logger, err) - dataResponse.Status = backend.StatusInternal - } - } else if newFrame != nil { - dataResponse.Frames = append(dataResponse.Frames, newFrame) - if err := ds.createChannelForStreaming(pCtx, query, newFrame); err != nil { - dataResponse.Error = err - } - } - return dataResponse -} - -func (ds *RMFDatasource) createChannelForStreaming(pCtx backend.PluginContext, query *frame.QueryModel, firstFrame *data.Frame) error { - channelPath := uuid.New().String() - channel := live.Channel{ - Scope: live.ScopeDatasource, - Namespace: pCtx.DataSourceInstanceSettings.UID, - Path: channelPath, - } - firstFrame.SetMeta(&data.FrameMeta{Channel: channel.String()}) - query.SeriesFields = frame.SeriesFields{} - frame.SyncFieldNames(query.SeriesFields, firstFrame, query.CurrentTime) - return ds.channelCache.SetChannelQuery(channelPath, query) -} - -// RunStream is called once for any open channel. Results are shared with everyone +// RunStream is called once for any open channel. Results are shared with everyone // subscribed to the same channel. func (ds *RMFDatasource) RunStream(ctx context.Context, req *backend.RunStreamRequest, sender *backend.StreamSender) error { logger := log.Logger.With("func", "RunStream") // Recover from any panic so as to not bring down this backend datasource defer log.LogAndRecover(logger) - var err error - query, err := ds.channelCache.GetChannelQuery(req.Path) + res, from, to, absolute, interval, err := decodeChannelPath(string(req.Path)) if err != nil { - return err + logger.Error("unable to decode channel path", "err", err) + return nil } - logger.Debug("RunStream", "path", req.Path, "query", query.SelectedQuery, "dashboard", query.DashboardUid, "absoluteTime", query.AbsoluteTimeSelected) - // Stream absolute or relative timeline data - if query.AbsoluteTimeSelected { - err = ds.streamDataForAbsoluteRange(ctx, req, sender, query) - } else { - err = ds.streamDataForRelativeRange(ctx, req, sender, query) - } - return err -} - -func (ds *RMFDatasource) streamDataForAbsoluteRange(ctx context.Context, req *backend.RunStreamRequest, sender *backend.StreamSender, matchedQueryModel *frame.QueryModel) error { - var waitTime time.Duration - logger := log.Logger.With("func", "streamDataForAbsoluteRange") - //Recover from any panic so as to not bring down this backend datasource - defer log.LogAndRecover(logger) - // Set wait time to 1/100th of a second - waitTime = (time.Second * time.Duration(1)) / 100 - - // Stream data frames periodically till stream closed by Grafana. - err := ds.streamDataAbsolute(ctx, req, sender, matchedQueryModel, waitTime) - if err != nil { - return err - } - - return nil -} - -func (ds *RMFDatasource) streamDataForRelativeRange(ctx context.Context, req *backend.RunStreamRequest, sender *backend.StreamSender, matchedQueryModel *frame.QueryModel) error { - logger := log.Logger.With("func", "streamDataForRelativeRange") - //Recover from any panic so as to not bring down this backend datasource - defer log.LogAndRecover(logger) - - // Set wait time to 'ServiceCallInterval' for relative and 1/100th of a second for historical - waitTime := (time.Second * time.Duration(matchedQueryModel.Mintime)) - histWaitTime := (time.Second * time.Duration(1)) / 100 - - // Stream data frames periodically till stream closed by Grafana. - err := ds.streamDataRelative(ctx, req, sender, matchedQueryModel, &waitTime, &histWaitTime) - if err != nil { - return err + // Calculate the most appropriate interval length, i.e. time series step. + // There's no ideal solution. We assume that it aligns with one hour. + // If it doesn't, streaming will still work, but some queries will miss cache. + mintime := ds.ddsClient.GetCachedMintime() + n := 3600 / int(mintime.Seconds()) + step := time.Hour // The maximum possible + for i := 1; i <= n; i++ { + if n%i == 0 && time.Duration(i)*mintime >= interval { + step = time.Duration(i) * mintime + break + } } - return nil -} + logger.Debug("starting streaming", "step", step.String(), "interval", interval.String(), "path", req.Path) -func (ds *RMFDatasource) streamDataAbsolute(ctx context.Context, req *backend.RunStreamRequest, sender *backend.StreamSender, matchedQueryModel *frame.QueryModel, waitTime time.Duration) error { - logger := log.Logger.With("func", "streamDataAbsolute") - var ( - newFrame *data.Frame - err error - ) - histTicker := time.NewTicker(waitTime) - seriesFields := matchedQueryModel.SeriesFields + r := dds.NewRequest(res, from, from, step) + seriesFields := frame.SeriesFields{} + // Stream historical part of time series for { - select { - case <-ctx.Done(): - err := ctx.Err() - logger.Debug("closing stream: Done.", "reason", err, "path", req.Path) - histTicker.Stop() - return err - case <-histTicker.C: - if matchedQueryModel.TimeRangeExceeded() { - histTicker.Stop() - logger.Debug("closing stream", "reason", "finished with historical data", "path", req.Path, "CurrentTime", matchedQueryModel.CurrentTime.String(), "TimeRangeFrom", matchedQueryModel.TimeRangeFrom, "TimeRangeTo", matchedQueryModel.TimeRangeTo.String()) + if err := ctx.Err(); err != nil { + logger.Info("streaming stopped", "reason", err, "path", req.Path) + return nil + } + if !absolute && r.TimeRange.To.After(time.Now().Add(-SdsDelay)) || absolute && r.TimeRange.To.After(to) { + logger.Debug("finished with historical data", "request", r.String(), "path", req.Path) + break + } + logger.Debug("executing query", "request", r.String()) + f, err := ds.getFrameCached(ctx, r, true) + if err != nil { + logger.Error("failed to get data", "request", r.String(), "reason", err, "path", req.Path) + f = frame.NoDataFrame(r.TimeRange.To) + } + // No data was returned by DDS yet by this and any previous request + if len(f.Fields) < 2 && len(seriesFields) == 0 { + r.Add(step) + continue + } + frame.SyncFieldNames(seriesFields, f, r.TimeRange.To) + if err := sender.SendFrame(f, data.IncludeAll); err != nil { + logger.Info("streaming stopped", "reason", err, "path", req.Path) + return nil + } + r.Add(step) + } + if !absolute { + // Stream live data as it's being collected + for { + if err := ctx.Err(); err != nil { + logger.Info("streaming stopped", "reason", err, "path", req.Path) return nil } - setQueryTimeRange(matchedQueryModel) - if latestNotReady(matchedQueryModel.CurrentTime, matchedQueryModel.Mintime) { - logger.Debug("interval not yet ready", "time", matchedQueryModel.CurrentTime.String()) - continue - } - // Send new data periodically. - logger.Debug("executing query", "query", matchedQueryModel.SelectedQuery, "current", matchedQueryModel.CurrentTime, "to", matchedQueryModel.TimeRangeTo) - if newFrame, err = ds.getFrameFromCacheOrServer(ctx, matchedQueryModel); err != nil { - moveNextPrevious(matchedQueryModel, true) - return log.ErrorWithId(logger, log.InternalError, "could not get new frame", "error", err) - } - if matchedQueryModel.CurrentTime.Equal(matchedQueryModel.LastTime) { - moveNextPrevious(matchedQueryModel, true) - logger.Debug("skip frame due to duplication", "time", matchedQueryModel.CurrentTime.String()) - continue - } - matchedQueryModel.LastTime = matchedQueryModel.CurrentTime - frame.SyncFieldNames(seriesFields, newFrame, matchedQueryModel.CurrentTime) - err = sender.SendFrame(newFrame, data.IncludeAll) - if err != nil { - return log.ErrorWithId(logger, log.InternalError, "failed to send frame", "error", err) - } - err = ds.channelCache.SetChannelQuery(req.Path, matchedQueryModel) + d := time.Until(r.TimeRange.To.Add(SdsDelay)) + logger.Debug("waiting for the next mintime", "duration", d.String(), "path", req.Path) + time.Sleep(d) + + f, err := ds.getFrameCached(ctx, r, true) if err != nil { - return log.ErrorWithId(logger, log.InternalError, "failed to save frame in cache", "error", err) + logger.Error("failed to get data", "request", r.String(), "reason", err, "path", req.Path) + f = frame.NoDataFrame(r.TimeRange.To) } - } - } -} - -func (ds *RMFDatasource) streamDataRelative(ctx context.Context, req *backend.RunStreamRequest, sender *backend.StreamSender, matchedQueryModel *frame.QueryModel, waitTime *time.Duration, histWaitTime *time.Duration) error { - logger := log.Logger.With("func", "streamDataRelative") - var newFrame *data.Frame - // FIXME: tickers are not suitable for the streaming. - // Time for the next request should be calculated based on the time of the latest response. - // Also, requests for historical and current data should be synchronized. - mainTicker := time.NewTicker(*waitTime) - histTicker := time.NewTicker(*histWaitTime) - seriesFields := matchedQueryModel.SeriesFields - duration := matchedQueryModel.TimeRangeTo.Sub(matchedQueryModel.TimeRangeFrom) - - histQueryModel, err := ds.channelCache.GetChannelQuery(req.Path + "/h") - if err != nil { - histQueryModel = matchedQueryModel.Copy() - histQueryModel.AbsoluteTimeSelected = true - } - for { - select { - case <-ctx.Done(): // Did the client cancel out? - err := ctx.Err() - logger.Debug("closing stream: Done.", "reason", err, "path", req.Path) - // Stop tickers to enable garbage collection of resources - mainTicker.Stop() - histTicker.Stop() - return err - case <-histTicker.C: - if histQueryModel.TimeRangeExceeded() { - histTicker.Stop() - logger.Debug("finished with historical data", "path", req.Path, "CurrentTime", histQueryModel.CurrentTime.String(), "TimeRangeFrom", matchedQueryModel.TimeRangeFrom.String(), "TimeRangeTo", matchedQueryModel.TimeRangeTo.String()) - continue - } - setQueryTimeRange(histQueryModel, true) - logger.Debug("executing query for historical data", "query", histQueryModel.SelectedQuery, "current", histQueryModel.CurrentTime, "from", histQueryModel.TimeRangeFrom) - // Fetch the data - if latestNotReady(histQueryModel.CurrentTime, histQueryModel.Mintime) { - logger.Debug("interval not yet ready", "time", histQueryModel.CurrentTime.String()) + t, ok := f.Fields[0].At(0).(time.Time) + if !ok || t.Before(r.TimeRange.To) { + logger.Debug("mintime is not ready yet", "path", req.Path) + time.Sleep(SdsDelay) continue } - if newFrame, err = ds.getFrameFromCacheOrServer(ctx, histQueryModel); err != nil { - moveNextPrevious(histQueryModel, false) - return log.ErrorWithId(logger, log.InternalError, "could not get new frame for historical data", "error", err) - } - if histQueryModel.CurrentTime.Equal(histQueryModel.LastTime) { - logger.Debug("skip frame due to duplication", "time", histQueryModel.CurrentTime.String()) - moveNextPrevious(histQueryModel, false) + // No data was returned by DDS yet by any previous request + if len(f.Fields) < 2 && len(seriesFields) == 0 { + r.Add(step) continue } - histQueryModel.LastTime = histQueryModel.CurrentTime - frame.SyncFieldNames(seriesFields, newFrame, histQueryModel.CurrentTime) - err = sender.SendFrame(newFrame, data.IncludeAll) - if err != nil { - return log.ErrorWithId(logger, log.InternalError, "failed to send frame for historical data", "error", err) - } - err = ds.channelCache.SetChannelQuery(req.Path+"/h", matchedQueryModel) - if err != nil { - return log.ErrorWithId(logger, log.InternalError, "failed to save frame in cache", "error", err) - } - case <-mainTicker.C: - var numberOfIterations int - if numberOfIterations, err = getIterationsForRelativePlotting(matchedQueryModel); err != nil { - return err - } - logger.Debug("executing query for relative data", "query", matchedQueryModel.SelectedQuery, "iterations", numberOfIterations) - for counter := 0; counter < numberOfIterations; counter++ { - setQueryTimeRange(matchedQueryModel) - if latestNotReady(matchedQueryModel.CurrentTime, matchedQueryModel.Mintime) { - logger.Debug("interval not yet ready", "time", matchedQueryModel.CurrentTime.String()) - continue - } - logger.Debug("executing query", "query", matchedQueryModel.SelectedQuery, "current", matchedQueryModel.CurrentTime) - if newFrame, err = ds.getFrameFromCacheOrServer(ctx, matchedQueryModel); err != nil { - moveNextPrevious(matchedQueryModel, true) - return log.ErrorWithId(logger, log.InternalError, "could not get new frame for relative data", "error", err) - } - if matchedQueryModel.CurrentTime.Equal(matchedQueryModel.LastTime) { - moveNextPrevious(matchedQueryModel, true) - logger.Debug("skip frame due to duplication", "time", matchedQueryModel.CurrentTime.String()) - continue - } - matchedQueryModel.LastTime = matchedQueryModel.CurrentTime - frame.RemoveOldFieldNames(seriesFields, matchedQueryModel.CurrentTime.Add(-duration)) - frame.SyncFieldNames(seriesFields, newFrame, histQueryModel.CurrentTime) - err = sender.SendFrame(newFrame, data.IncludeAll) - if err != nil { - return log.ErrorWithId(logger, log.InternalError, "failed to send frame for relative data", "error", err) - } - // Save the query model in cache - err = ds.channelCache.SetChannelQuery(req.Path, matchedQueryModel) - if err != nil { - return log.ErrorWithId(logger, log.InternalError, "failed to save frame in cache", "error", err) - } + frame.SyncFieldNames(seriesFields, f, r.TimeRange.To) + if err := sender.SendFrame(f, data.IncludeAll); err != nil { + logger.Info("streaming stopped", "reason", err, "path", req.Path) + return nil } + r.Add(step) + } + } + if len(seriesFields) == 0 { + // There is no data at all, send a dummy frame without fields to reflect it in UI + f := data.NewFrame("") + if err := sender.SendFrame(f, data.IncludeAll); err != nil { + logger.Info("streaming stopped", "reason", err, "path", req.Path) + return nil } } + logger.Info("streaming stopped", "reason", "all the data sent", "path", req.Path) + return nil } -func (ds *RMFDatasource) getFrame(ctx context.Context, queryModel *frame.QueryModel) (*data.Frame, error) { - path, params := queryModel.GetPathWithParams() - ddsResponse, err := ds.ddsClient.Get(ctx, path, params...) +func (ds *RMFDatasource) getFrame(ctx context.Context, r *dds.Request, wide bool) (*data.Frame, error) { + ddsResponse, err := ds.ddsClient.GetByRequest(ctx, r) if err != nil { - return nil, fmt.Errorf("failed to get DDS response: %w", err) + return nil, err } - // nolint:contextcheck - newFrame, err := frame.Build(ddsResponse, ds.ddsClient.GetCachedHeaders(), queryModel) + headers := ds.ddsClient.GetCachedHeaders() + f, err := frame.Build(ddsResponse, headers, wide) if err != nil { - return nil, fmt.Errorf("failed to construct frame: %w", err) + return nil, err } - return newFrame, nil + return f, nil } -func (ds *RMFDatasource) getFrameFromCacheOrServer(ctx context.Context, queryModel *frame.QueryModel) (*data.Frame, error) { - logger := log.Logger.With("func", "getFrameFromCacheOrServer") - key := string(queryModel.CacheKey()) - result, err, _ := ds.single.Do(key, func() (interface{}, error) { - var ( - newFrame *data.Frame - err error - ) - newFrame = ds.frameCache.GetFrame(queryModel) +func (ds *RMFDatasource) getFrameCached(ctx context.Context, r *dds.Request, wide bool) (*data.Frame, error) { + logger := log.Logger.With("func", "getFrameCached") + key := cache.Key(r, wide) + + result, err, _ := ds.single.Do(string(key), func() (interface{}, error) { + f := ds.cache.GetFrame(r, wide) // Fetch from the DDS Server and then save to cache if required. - if newFrame == nil { - newFrame, err = ds.getFrame(ctx, queryModel) + if f == nil { + f, err := ds.getFrame(ctx, r, wide) if err != nil { return nil, err } else { - if err = ds.frameCache.SaveFrame(newFrame, queryModel); err != nil { + // Probably the requested mintime is not ready yet, don't cache it + // We still can use it in non-timeseries views + t, ok := f.Fields[0].At(0).(time.Time) + if !ok || t.Before(r.TimeRange.To) { + return f, nil + } + if err = ds.cache.SaveFrame(f, r, wide); err != nil { return nil, err } } + return f, nil } else { - logger.Debug("cached value exist", "key", key) + logger.Debug("cached value exists", "key", key) } - return newFrame, nil + return f, nil }) if result != nil { return result.(*data.Frame), err @@ -561,107 +438,10 @@ func (ds *RMFDatasource) getFrameFromCacheOrServer(ctx context.Context, queryMod // SubscribeStream is called when a client wants to connect to a stream. This callback // allows sending the first message. func (ds *RMFDatasource) SubscribeStream(_ context.Context, req *backend.SubscribeStreamRequest) (*backend.SubscribeStreamResponse, error) { - logger := log.Logger.With("func", "SubscribeStream") - // Recover from any panic so as to not bring down this backend datasource - defer log.LogAndRecover(logger) - - status := backend.SubscribeStreamStatusPermissionDenied - if ds.channelCache.HasChannelQuery(req.Path) { - status = backend.SubscribeStreamStatusOK - } - return &backend.SubscribeStreamResponse{Status: status}, nil + return &backend.SubscribeStreamResponse{Status: backend.SubscribeStreamStatusOK}, nil } // PublishStream is called when a client sends a message to the stream. func (d *RMFDatasource) PublishStream(_ context.Context, req *backend.PublishStreamRequest) (*backend.PublishStreamResponse, error) { - logger := log.Logger.With("func", "PublishStream") - // Recover from any panic so as to not bring down this backend datasource - defer log.LogAndRecover(logger) - - // Do not allow publishing at all. return &backend.PublishStreamResponse{Status: backend.PublishStreamStatusPermissionDenied}, nil } - -func (ds *RMFDatasource) queryTableData(ctx context.Context, qm *frame.QueryModel) *backend.DataResponse { - logger := log.Logger.With("func", "queryTableData") - dataResponse := &backend.DataResponse{} - // FIXME: doesn't it need to be cached? - if newFrame, err := ds.getFrame(ctx, qm); err != nil { - // nolint:errorlint - if cause, ok := errors.Unwrap(err).(*dds.Message); ok { - dataResponse.Error = cause - dataResponse.Status = backend.StatusBadRequest - } else { - dataResponse.Error = log.FrameErrorWithId(logger, err) - dataResponse.Status = backend.StatusInternal - } - } else if newFrame != nil { - dataResponse.Frames = append(dataResponse.Frames, newFrame) - } - return dataResponse -} - -func getIterationsForRelativePlotting(qm *frame.QueryModel) (int, error) { - currentTimeUTC := time.Now().UTC() - difference := qm.CurrentTime.Sub(currentTimeUTC) - differenceInSecs := int(math.Abs(difference.Seconds())) - if qm.Mintime == 0 { - return 0, errors.New("ServiceCallInterval must not be zero in GetIterationsForRelativePlotting()") - } - differenceInSecs -= qm.Mintime / 2 - differenceInSecs -= SdsDelay - result := int(differenceInSecs / int(qm.Mintime)) - if result == 0 { - // FIXME: it's not necessarily true. - result = 1 //We need to invoke the svc at least once. So return 1. - } - return result, nil -} - -func setQueryTimeRange(queryModel *frame.QueryModel, plotAbsoluteReverse ...bool) { - var plotReverse bool - if len(plotAbsoluteReverse) > 0 { - if plotAbsoluteReverse[0] { - plotReverse = true - } - } - - // Set the Query Model's TimeSeriesTimeRangeFrom and TimeSeriesTimeRangeTo properties - if queryModel.AbsoluteTimeSelected { // Absolute time - if queryModel.Mintime == 0 || queryModel.CurrentTime.IsZero() { - fromTime := queryModel.TimeRangeFrom - queryModel.CurrentTime = queryModel.AdjustRealtime(fromTime, queryModel.Mintime) - } else { - if plotReverse { - localPrevTime := queryModel.LocalPrev.Add(-1 * queryModel.TimeOffset) - queryModel.CurrentTime = queryModel.AdjustRealtime(localPrevTime, queryModel.Mintime) - } else { - addedTime := queryModel.CurrentTime.Add(time.Duration(time.Second * time.Duration(queryModel.Mintime))) - queryModel.CurrentTime = queryModel.AdjustRealtime(addedTime, queryModel.Mintime) - } - } - } else { // Relative time - if queryModel.Mintime == 0 || queryModel.CurrentTime.IsZero() { - toTime := queryModel.TimeRangeTo - queryModel.CurrentTime = queryModel.AdjustRealtime(toTime, queryModel.Mintime) - } else { - localNextTime := queryModel.LocalNext.Add(-1 * queryModel.TimeOffset) - queryModel.CurrentTime = queryModel.AdjustRealtime(localNextTime, queryModel.Mintime) - } - } -} - -func latestNotReady(t time.Time, m int) bool { - var now time.Time = time.Now() - return t.Add(time.Second*time.Duration(m/2) + SdsDelay).After(now) -} - -func moveNextPrevious(qm *frame.QueryModel, next bool) { - if next { - qm.CurrentTime = qm.CurrentTime.Add(time.Duration(qm.Mintime) * time.Second) - qm.LocalNext = qm.LocalNext.Add(time.Duration(qm.Mintime) * time.Second) - } else { - qm.CurrentTime = qm.CurrentTime.Add(-1 * time.Duration(qm.Mintime) * time.Second) - qm.LocalPrev = qm.LocalPrev.Add(-1 * time.Duration(qm.Mintime) * time.Second) - } -} diff --git a/grafana/rmf-app/pkg/plugin/dds/client.go b/grafana/rmf-app/pkg/plugin/dds/client.go index 1b17b620..f2c7833c 100644 --- a/grafana/rmf-app/pkg/plugin/dds/client.go +++ b/grafana/rmf-app/pkg/plugin/dds/client.go @@ -1,6 +1,6 @@ /** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -119,9 +119,17 @@ func (c *Client) Close() { }) } -func (c *Client) Get(ctx context.Context, path string, params ...string) (*Response, error) { +func (c *Client) GetByRequest(ctx context.Context, r *Request) (*Response, error) { + path, params, err := r.pathWithParams(c.GetCachedTimeOffset()) + if err != nil { + return nil, err + } + return c.Get(path, params...) +} + +func (c *Client) Get(path string, params ...string) (*Response, error) { var response Response - data, err := c.GetRaw(ctx, path, params...) + data, err := c.GetRaw(path, params...) if err != nil { return nil, err } @@ -131,7 +139,7 @@ func (c *Client) Get(ctx context.Context, path string, params ...string) (*Respo return &response, nil } -func (c *Client) GetRaw(ctx context.Context, path string, params ...string) ([]byte, error) { +func (c *Client) GetRaw(path string, params ...string) ([]byte, error) { logger := log.Logger.With("func", "GetRaw") path = strings.TrimLeft(path, "/") values := url.Values{} @@ -142,7 +150,8 @@ func (c *Client) GetRaw(ctx context.Context, path string, params ...string) ([]b values.Add(params[i], params[i+1]) } fullURL := fmt.Sprintf("%s/%s?%s", c.baseUrl, path, values.Encode()) - req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, http.NoBody) + // nolint:noctx + req, err := http.NewRequest(http.MethodGet, fullURL, http.NoBody) if err != nil { return nil, err } @@ -167,15 +176,15 @@ func (c *Client) GetRaw(ctx context.Context, path string, params ...string) ([]b } func (c *Client) GetRawIndex(ctx context.Context) ([]byte, error) { - return c.GetRaw(ctx, IndexPath) + return c.GetRaw(IndexPath) } func (c *Client) GetRoot(ctx context.Context) (*Response, error) { - return c.Get(ctx, RootPath) + return c.Get(RootPath) } func (c *Client) GetRawContained(ctx context.Context, resource string) ([]byte, error) { - return c.GetRaw(ctx, ContainedPath, "resource", resource) + return c.GetRaw(ContainedPath, "resource", resource) } func (c *Client) GetCachedTimeOffset() time.Duration { @@ -199,7 +208,7 @@ func (c *Client) ensureTimeData() *TimeData { func (c *Client) updateTimeData() *TimeData { logger := log.Logger.With("func", "updateTimeData") result, _, _ := c.single.Do("timeData", func() (any, error) { - response, err := c.Get(context.Background(), PerformPath, "resource", ",,SYSPLEX", "id", "8D0D50") + response, err := c.Get(PerformPath, "resource", ",,SYSPLEX", "id", "8D0D50") if err != nil { logger.Error("unable to fetch DDS time data", "error", err) } @@ -219,10 +228,10 @@ func (c *Client) updateTimeData() *TimeData { return nil } -func (c *Client) GetCachedMintime() int { +func (c *Client) GetCachedMintime() time.Duration { timeData := c.ensureTimeData() if timeData != nil { - return c.timeData.MinTime.Value + return time.Duration(c.timeData.MinTime.Value) * time.Second } return 0 } diff --git a/grafana/rmf-app/pkg/plugin/dds/headers.go b/grafana/rmf-app/pkg/plugin/dds/headers.go index fa016453..106d1778 100644 --- a/grafana/rmf-app/pkg/plugin/dds/headers.go +++ b/grafana/rmf-app/pkg/plugin/dds/headers.go @@ -1,6 +1,6 @@ /** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,6 @@ package dds import ( - "context" "encoding/xml" "regexp" "strings" @@ -78,7 +77,7 @@ func (c *Client) updateHeaders() *HeaderMap { logger := log.Logger.With("func", "GetHeaderMap") result, _, _ := c.single.Do("headers", func() (any, error) { headers := HeaderMap{} - raw, err := c.GetRaw(context.Background(), XslHeadersPath) + raw, err := c.GetRaw(XslHeadersPath) if err != nil { logger.Error("failed to fetch XSL header map", "error", err) return &headers, err @@ -105,14 +104,15 @@ func buildHeaders(res HeaderMap, report string, choose XslChoose) { match := XslConditionRe.FindStringSubmatch(condition) if len(match) > 0 { key, value := match[1], match[2] - if key == "var" { + switch key { + case "var": if _, ok := res[report]; !ok { res[report] = make(map[string]string) } res[report][value] = strings.TrimSpace(when.Text) - } else if key == "report" { + case "report": buildHeaders(res, value, when.Choose) - } else { + default: logger.Error("unexpected condition key in XSL header map", "key", key) } } else { diff --git a/grafana/rmf-app/pkg/plugin/dds/request.go b/grafana/rmf-app/pkg/plugin/dds/request.go new file mode 100644 index 00000000..19288613 --- /dev/null +++ b/grafana/rmf-app/pkg/plugin/dds/request.go @@ -0,0 +1,78 @@ +/** +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + */ + +package dds + +import ( + "fmt" + "net/url" + "strings" + "time" + + "github.com/grafana/grafana-plugin-sdk-go/data" +) + +type Request struct { + Resource string + TimeRange data.TimeRange +} + +func NewRequest(res string, from time.Time, to time.Time, step time.Duration) *Request { + q := Request{Resource: res, TimeRange: data.TimeRange{From: from, To: to}} + q.Align(step) + return &q +} + +func (r *Request) Align(d time.Duration) { + r.TimeRange.From = r.TimeRange.From.Truncate(d) + r.TimeRange.To = r.TimeRange.To.Truncate(d).Add(d) +} + +func (r *Request) Add(d time.Duration) { + r.TimeRange.From = r.TimeRange.From.Add(d) + r.TimeRange.To = r.TimeRange.To.Add(d) +} + +func (r *Request) String() string { + return fmt.Sprintf("%s [%s - %s]", r.Resource, r.TimeRange.From, r.TimeRange.To) +} + +func (r *Request) formatRange(timeOfs time.Duration) string { + from := r.TimeRange.From + to := r.TimeRange.To + return from.Add(timeOfs).Format(DateTimeFormat) + "," + to.Add(timeOfs).Format(DateTimeFormat) +} + +func (r *Request) pathWithParams(timeOfs time.Duration) (string, []string, error) { + path := "" + rawParams, err := url.ParseQuery(r.Resource) + if err != nil { + return "", nil, err + } + params := make([]string, 0, 1) + for key, values := range rawParams { + if key == "report" { + path = FullReportPath + } + params = append(params, key, strings.Join(values, ";")) + } + if path == "" { + path = PerformPath + } + params = append(params, "range", r.formatRange(timeOfs)) + return path, params, nil +} diff --git a/grafana/rmf-app/pkg/plugin/dds/response.go b/grafana/rmf-app/pkg/plugin/dds/response.go index a051ae7c..65d731c6 100644 --- a/grafana/rmf-app/pkg/plugin/dds/response.go +++ b/grafana/rmf-app/pkg/plugin/dds/response.go @@ -98,7 +98,7 @@ func (dt *DateTime) MarshalJSON() ([]byte, error) { if dt == nil { return nil, nil } - return []byte(`"` + dt.Time.Format(DateTimeFormat) + `"`), nil + return []byte(`"` + dt.Format(DateTimeFormat) + `"`), nil } type Message struct { diff --git a/grafana/rmf-app/pkg/plugin/frame/frame.go b/grafana/rmf-app/pkg/plugin/frame/frame.go index 803d87ca..7dbbe1b7 100644 --- a/grafana/rmf-app/pkg/plugin/frame/frame.go +++ b/grafana/rmf-app/pkg/plugin/frame/frame.go @@ -1,6 +1,6 @@ /** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,7 +35,22 @@ const BannerPrefix = "Banner::" const CaptionPrefix = "Caption::" const ReportDateFormat = "01/02/2006 15:04:05" -func Build(ddsResponse *dds.Response, headers *dds.HeaderMap, queryModel *QueryModel) (*data.Frame, error) { +func TaggedFrame(t time.Time, tag string) *data.Frame { + return data.NewFrame( + "", + data.NewField("time", nil, []time.Time{t}), + data.NewField(tag, nil, []*float64{nil}), + ) +} + +func NoDataFrame(t time.Time) *data.Frame { + return data.NewFrame( + "", + data.NewField("time", nil, []time.Time{t}), + ) +} + +func Build(ddsResponse *dds.Response, headers *dds.HeaderMap, wide bool) (*data.Frame, error) { logger := log.Logger.With("func", "Build") reportsNum := len(ddsResponse.Reports) @@ -63,47 +78,28 @@ func Build(ddsResponse *dds.Response, headers *dds.HeaderMap, queryModel *QueryM } format := report.Metric.Format - timeCopy := queryModel.CurrentTime - queryModel.UpdateFromTimeData(report.TimeData) - if !queryModel.CurrentTime.Equal(timeCopy) { - logger.Debug("CurrentTime updated", "before", timeCopy.String(), - "after", queryModel.CurrentTime.String(), - "mintime", queryModel.Mintime, - "start", report.TimeData.LocalStart.Time.String(), - "end", report.TimeData.LocalEnd.Time.String(), - "prev", report.TimeData.LocalPrev.Time.String(), - "next", report.TimeData.LocalNext.Time.String()) - } + frameName := strings.Trim(report.Metric.Description, " ") var newFrame *data.Frame + if format == dds.ReportFormat { - newFrame = buildForReport(&report, headers, queryModel) + newFrame = buildForReport(&report, headers, frameName) + } else if wide { + return buildWideForMetric(&report, frameName), nil } else { - newFrame = buildForMetric(&report, queryModel) + return buildLongForMetric(&report, frameName), nil } return newFrame, nil } -// buildForMetric parses JSON string and create a data frame either for time series or a regular one. -func buildForMetric(report *dds.Report, query *QueryModel) *data.Frame { - queryName := getFrameName(query) - - if query.SelectedVisualisationType == TimeSeriesType { - return buildWideForMetric(report, queryName) - } else { - return buildLongForMetric(report, queryName) - } -} - // buildWideForMetric creates a time series data frame for a metric from pre-parsed DDS response. // Grafana frame format: wide. -func buildWideForMetric(report *dds.Report, queryName string) *data.Frame { - frameName := queryName +func buildWideForMetric(report *dds.Report, frameName string) *data.Frame { timestamp := report.TimeData.UTCEnd.Time metricFormat := report.Metric.Format - labels := getFrameLabels(metricFormat, queryName) + labels := getFrameLabels(metricFormat, frameName) resultFrame := data.NewFrame(frameName, data.NewField("time", nil, []time.Time{timestamp})) - iterateMetricRows(report, queryName, + iterateMetricRows(report, frameName, func(name string, value *float64) { newField := data.NewField(name, labels, []*float64{value}) resultFrame.Fields = append(resultFrame.Fields, newField) @@ -114,7 +110,7 @@ func buildWideForMetric(report *dds.Report, queryName string) *data.Frame { // Solution for single type metric is to send nil values if there's no data. // For list type metrics, we don't have column names to do the same; it has to be fixed differently. if len(resultFrame.Fields) == 1 && metricFormat == "single" { - newField := data.NewField(queryName, labels, []*float64{nil}) + newField := data.NewField(frameName, labels, []*float64{nil}) resultFrame.Fields = append(resultFrame.Fields, newField) } @@ -123,15 +119,15 @@ func buildWideForMetric(report *dds.Report, queryName string) *data.Frame { // buildLongForMetric creates a non time series data frame for a metric from pre-parsed DDS response. // Grafana frame format: long. -func buildLongForMetric(report *dds.Report, queryName string) *data.Frame { +func buildLongForMetric(report *dds.Report, frameName string) *data.Frame { metricFormat := report.Metric.Format nameField := "metric" timestamp := report.TimeData.UTCEnd.Time - valField := queryName + valField := frameName if metricFormat == "list" { - valField, nameField = splitQueryName(queryName) + valField, nameField = splitQueryName(frameName) if nameField == "" { - nameField = queryName + nameField = frameName valField = "value" } } @@ -142,7 +138,7 @@ func buildLongForMetric(report *dds.Report, queryName string) *data.Frame { data.NewField(valField, nil, []*float64{}), ) - iterateMetricRows(report, queryName, + iterateMetricRows(report, frameName, func(name string, value *float64) { resultFrame.Fields[0].Append(timestamp) resultFrame.Fields[1].Append(name) @@ -179,9 +175,9 @@ func iterateMetricRows(report *dds.Report, defaultName string, process func(name } } -func buildForReport(report *dds.Report, headers *dds.HeaderMap, qm *QueryModel) *data.Frame { +func buildForReport(report *dds.Report, headers *dds.HeaderMap, frameName string) *data.Frame { logger := log.Logger.With("func", "buildForReport") - frame := data.NewFrame(getFrameName(qm)) + frame := data.NewFrame(frameName) reportName := report.Metric.Id for i, col := range report.Headers.Cols { diff --git a/grafana/rmf-app/pkg/plugin/frame/frame_test.go b/grafana/rmf-app/pkg/plugin/frame/frame_test.go index e47ffacd..491e2b52 100644 --- a/grafana/rmf-app/pkg/plugin/frame/frame_test.go +++ b/grafana/rmf-app/pkg/plugin/frame/frame_test.go @@ -1,6 +1,6 @@ /** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,7 +33,7 @@ type TestCase struct { Name string Description string Skip bool - QueryModel QueryModel + Wide bool DdsResponse *dds.Response ExpectedFrame json.RawMessage ExpectedError string @@ -64,7 +64,7 @@ func TestFrame(t *testing.T) { var expectedJson bytes.Buffer err := json.Indent(&expectedJson, testCase.ExpectedFrame, "", " ") if assert.NoError(t, err, "failed to indent") { - frame, err := Build(testCase.DdsResponse, nil, &testCase.QueryModel) + frame, err := Build(testCase.DdsResponse, nil, testCase.Wide) if err == nil { actualJson, _ := json.MarshalIndent(frame, "", " ") assert.JSONEq(t, expectedJson.String(), string(actualJson), "frames are not identical") diff --git a/grafana/rmf-app/pkg/plugin/frame/query.go b/grafana/rmf-app/pkg/plugin/frame/query.go deleted file mode 100644 index fe2be068..00000000 --- a/grafana/rmf-app/pkg/plugin/frame/query.go +++ /dev/null @@ -1,214 +0,0 @@ -/** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. - */ - -package frame - -import ( - "encoding/json" - "errors" - "net/url" - "strings" - "time" - - "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/dds" - "github.com/grafana/grafana-plugin-sdk-go/backend" -) - -const TimeSeriesType = "TimeSeries" - -var ErrBlankResource = errors.New("resource is blank") - -type ResponseStatus struct { - TimeOffset time.Duration // The timezone offset value from UTC time - Mintime int - LocalPrev time.Time - LocalNext time.Time - - CurrentTime time.Time -} - -func (rs *ResponseStatus) Update(other *ResponseStatus) { - rs.TimeOffset = other.TimeOffset - rs.Mintime = other.Mintime - rs.LocalPrev = other.LocalPrev - rs.LocalNext = other.LocalNext - rs.CurrentTime = other.CurrentTime -} - -func (rs *ResponseStatus) UpdateFromTimeData(timeData *dds.TimeData) { - rs.TimeOffset = timeData.LocalStart.Sub(timeData.UTCStart.Time) - rs.Mintime = timeData.MinTime.Value - rs.LocalPrev = timeData.LocalPrev.Time - rs.LocalNext = timeData.LocalNext.Time - //ensure CurrentTime inside interval - //currentMiddle = S+(E-S)/2 - currentMiddle := timeData.LocalStart.Time.Add( - time.Duration( - timeData.LocalEnd.Time.Sub(timeData.LocalStart.Time).Nanoseconds() / 2, - ), - ) - currentMiddle = currentMiddle.Add(-1 * rs.TimeOffset) - rs.CurrentTime = currentMiddle - duration := timeData.LocalEnd.Time.Sub(timeData.LocalStart.Time) - if int(duration.Seconds()) != rs.Mintime { - rs.AdjustCurrentTime() - } -} - -func (rs *ResponseStatus) AdjustCurrentTime() { - rs.CurrentTime = rs.AdjustRealtime(rs.CurrentTime, rs.Mintime) -} - -func (rs *ResponseStatus) AdjustRealtime(realtime time.Time, mintime int) time.Time { - if mintime == 0 { - return realtime - } - - y := realtime.Year() - M := realtime.Month() - d := realtime.Day() - h := realtime.Hour() - m := realtime.Minute() - s := realtime.Second() - - sec0 := m*60 + s - intnum := sec0 / int(mintime) - m = intnum * int(mintime) / 60 - s = intnum * int(mintime) % 60 - half := mintime / 2 - - t := time.Date( - y, - time.Month(M), - int(d), - int(h), - int(m), - int(s), - 0, realtime.Location()). - Add(time.Duration(time.Duration(half) * time.Second)) - return t -} - -type QueryModel struct { - SelectedQuery string `json:"selectedQuery"` - // FIXME: it contains also metric ID and needs to be re-parsed, e.g. id=8D21B0&resource=,,SYSPLEX - SelectedResource SelectedResource `json:"selectedResource"` - RefreshRequired bool `json:"refreshRequired"` - AbsoluteTimeSelected bool `json:"absoluteTimeSelected"` - DashboardUid string `json:"dashboardUid"` - SelectedVisualisationType string `json:"selectedVisualisationType"` - RMFPanelId string `json:"rmfPanelGuid"` - TimeRangeFrom time.Time // 'From' time converted to UTC - TimeRangeTo time.Time // 'To' time converted to UTC - SeriesFields SeriesFields // If it's a time series, we have to maintain field map - - ResponseStatus - LastTime time.Time -} - -func NewQueryModel(query backend.DataQuery) (*QueryModel, error) { - var qm QueryModel - if err := json.Unmarshal(query.JSON, &qm); err != nil { - return nil, err - } - if qm.SelectedQuery == "" { - return nil, ErrBlankResource - } - qm.TimeRangeFrom, qm.TimeRangeTo = query.TimeRange.From.UTC(), query.TimeRange.To.UTC() - return &qm, nil -} - -func (q *QueryModel) Copy() *QueryModel { - copy := *q - return © -} - -func (qm *QueryModel) getQueryType() string { - var resultQueryType string - if strings.Trim(qm.SelectedQuery, "") != "" { - splitStringSlice := strings.SplitAfter(qm.SelectedQuery, ".") - if len(splitStringSlice) > 1 { - vt := splitStringSlice[1] - if strings.ToLower(vt) == "report." { - resultQueryType = "report" - } else { - resultQueryType = "gauge" - } - } - } - return resultQueryType -} - -func (qm *QueryModel) getTime() string { - var time time.Time - if qm.SelectedVisualisationType == TimeSeriesType { - time = qm.CurrentTime.Add(qm.TimeOffset) - } else { - time = qm.TimeRangeFrom.Add(qm.TimeOffset) - } - return time.Format(dds.DateTimeFormat) -} - -func (qm *QueryModel) getTimeRange() string { - var ( - serverFromTime, serverToTime time.Time - ) - if qm.SelectedVisualisationType == TimeSeriesType { - serverFromTime = qm.CurrentTime.Add(qm.TimeOffset) - serverToTime = qm.CurrentTime.Add(qm.TimeOffset) - } else { - serverFromTime = qm.TimeRangeFrom.Add(qm.TimeOffset) - serverToTime = qm.TimeRangeTo.Add(qm.TimeOffset) - } - return serverFromTime.Format(dds.DateTimeFormat) + "," + serverToTime.Format(dds.DateTimeFormat) -} - -func (qm *QueryModel) GetPathWithParams() (string, []string) { - var path string - if qm.getQueryType() == "report" { - path = dds.FullReportPath - } else { - path = dds.PerformPath - } - paramList := make([]string, 0, 1) - if qm.SelectedVisualisationType == TimeSeriesType { - paramList = append(paramList, "time", qm.getTime()) - } else { - paramList = append(paramList, "range", qm.getTimeRange()) - } - // FIXME: process errors - params, _ := url.ParseQuery(qm.SelectedResource.Value) - for key, values := range params { - paramList = append(paramList, key, strings.Join(values, ";")) - } - return path, paramList -} - -func (q *QueryModel) CacheKey() []byte { - return []byte(q.SelectedResource.Value + " " + q.CurrentTime.String()) -} - -func (q *QueryModel) TimeRangeExceeded() bool { - return q.CurrentTime.Before(q.TimeRangeFrom. - Add(-1*time.Duration(time.Second*time.Duration(q.Mintime/2)))) || - q.CurrentTime.After(q.TimeRangeTo) -} - -type SelectedResource struct { - Label string `json:"label"` - Value string `json:"value"` -} diff --git a/grafana/rmf-app/pkg/plugin/frame/testdata/frames.json b/grafana/rmf-app/pkg/plugin/frame/testdata/frames.json index e87a04d9..d2667df7 100644 --- a/grafana/rmf-app/pkg/plugin/frame/testdata/frames.json +++ b/grafana/rmf-app/pkg/plugin/frame/testdata/frames.json @@ -3,133 +3,82 @@ "name": "OutOfRange", "description": "DDS returns interval different from what we requested for time series", "skip": true, + "wide": true, "ddsResponse": { "report": [ { "metric": { - "format": "single" + "format": "single", + "description": "MetricName" }, "row": [ { - "col": [ - "*NoData*", - "NaN" - ] + "col": ["*NoData*", "NaN"] } ] } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T02:30:00Z", - "timeRangeTo": "2024-01-01T02:30:00Z", - "selectedQuery": "Resource.MetricName", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - }, - "selectedVisualisationType": "TimeSeries" - }, "expectedFrame": {}, "expectedError": "unexpected data in MetricFrameFromJson(): Error = requested time range is out of received interval" }, { "name": "NoReportSections", "description": "No reports in DDS response", + "wide": true, "ddsResponse": {}, - "queryModel": { - "selectedVisualisationType": "TimeSeries" - }, "expectedFrame": {}, "expectedError": "no reports in DDS response" }, { "name": "PositiveTimeSeriesList", "description": "Positive time series scenario for list format metric", + "wide": true, "ddsResponse": { "report": [ { "metric": { - "format": "list" + "format": "list", + "description": "MetricName by XYZ " }, "timeData": { "utcEnd": "20240101013000" }, "row": [ { - "col": [ - "ResourceName0", - "0" - ] + "col": ["ResourceName0", "0"] }, { - "col": [ - "ResourceName1", - "0.0" - ] + "col": ["ResourceName1", "0.0"] }, { - "col": [ - "ResourceName2", - "-0.0" - ] + "col": ["ResourceName2", "-0.0"] }, { - "col": [ - "ResourceName3", - "10.3" - ] + "col": ["ResourceName3", "10.3"] }, { - "col": [ - "ResourceName4", - "-10" - ] + "col": ["ResourceName4", "-10"] }, { - "col": [ - "ResourceName5", - "NaN" - ] + "col": ["ResourceName5", "NaN"] }, { - "col": [ - "ResourceName6", - "Deact" - ] + "col": ["ResourceName6", "Deact"] }, { - "col": [ - "ResourceName7", - "" - ] + "col": ["ResourceName7", ""] }, { - "col": [ - "*NoData*", - "NaN" - ] + "col": ["*NoData*", "NaN"] }, { - "col": [ - "*NoData*", - "0.0" - ] + "col": ["*NoData*", "0.0"] } ] } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T01:30:00Z", - "timeRangeTo": "2024-01-01T01:30:00Z", - "selectedQuery": "Resource.MetricName by XYZ ", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - }, - "selectedVisualisationType": "TimeSeries" - }, "expectedFrame": { "schema": { "name": "MetricName by XYZ", @@ -232,56 +181,27 @@ ] }, "data": { - "values": [ - [ - 1704072600000 - ], - [ - 0 - ], - [ - 0 - ], - [ - -0 - ], - [ - 10.3 - ], - [ - -10 - ], - [ - null - ], - [ - null - ], - [ - null - ] - ] + "values": [[1704072600000], [0], [0], [-0], [10.3], [-10], [null], [null], [null]] } } }, { "name": "PositiveTimeSeriesSingle", "description": "Positive time series scenario for single format metric", + "wide": true, "ddsResponse": { "report": [ { "metric": { - "format": "single" + "format": "single", + "description": "MetricName" }, "timeData": { "utcEnd": "20240101013000" }, "row": [ { - "col": [ - "", - "42" - ] + "col": ["", "42"] } ] } @@ -320,25 +240,20 @@ ] }, "data": { - "values": [ - [ - 1704072600000 - ], - [ - 42 - ] - ] + "values": [[1704072600000], [42]] } } }, { "name": "NoRowsTimeSeriesList", "description": "No rows returned for time series list format frame", + "wide": true, "ddsResponse": { "report": [ { "metric": { - "format": "list" + "format": "list", + "description": "MetricName" }, "timeData": { "utcEnd": "20240101013000" @@ -347,16 +262,6 @@ } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T01:30:00Z", - "timeRangeTo": "2024-01-01T01:30:00Z", - "selectedQuery": "Resource.MetricName", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - }, - "selectedVisualisationType": "TimeSeries" - }, "expectedFrame": { "schema": { "name": "MetricName", @@ -371,47 +276,32 @@ ] }, "data": { - "values": [ - [ - 1704072600000 - ] - ] + "values": [[1704072600000]] } } }, { "name": "NoDataTimeSeriesSingle", "description": "No data returned for time series single format frame", + "wide": true, "ddsResponse": { "report": [ { "metric": { - "format": "single" + "format": "single", + "description": "MetricName" }, "timeData": { "utcEnd": "20240101013000" }, "row": [ { - "col": [ - "*NoData*", - "NaN" - ] + "col": ["*NoData*", "NaN"] } ] } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T01:30:00Z", - "timeRangeTo": "2024-01-01T01:30:00Z", - "selectedQuery": "Resource.MetricName", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - }, - "selectedVisualisationType": "TimeSeries" - }, "expectedFrame": { "schema": { "name": "MetricName", @@ -435,14 +325,7 @@ ] }, "data": { - "values": [ - [ - 1704072600000 - ], - [ - null - ] - ] + "values": [[1704072600000], [null]] } } }, @@ -453,85 +336,47 @@ "report": [ { "metric": { - "format": "list" + "format": "list", + "description": "MetricName by XYZ " }, "timeData": { "utcEnd": "20240101013000" }, "row": [ { - "col": [ - "ResourceName0", - "0" - ] + "col": ["ResourceName0", "0"] }, { - "col": [ - "ResourceName1", - "0.0" - ] + "col": ["ResourceName1", "0.0"] }, { - "col": [ - "ResourceName2", - "-0.0" - ] + "col": ["ResourceName2", "-0.0"] }, { - "col": [ - "ResourceName3", - "10.3" - ] + "col": ["ResourceName3", "10.3"] }, { - "col": [ - "ResourceName4", - "-10" - ] + "col": ["ResourceName4", "-10"] }, { - "col": [ - "ResourceName5", - "NaN" - ] + "col": ["ResourceName5", "NaN"] }, { - "col": [ - "ResourceName6", - "Deact" - ] + "col": ["ResourceName6", "Deact"] }, { - "col": [ - "ResourceName7", - "" - ] + "col": ["ResourceName7", ""] }, { - "col": [ - "*NoData*", - "NaN" - ] + "col": ["*NoData*", "NaN"] }, { - "col": [ - "*NoData*", - "0.0" - ] + "col": ["*NoData*", "0.0"] } ] } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T01:30:00Z", - "timeRangeTo": "2024-01-01T01:30:00Z", - "selectedQuery": "Resource.MetricName by XYZ ", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - } - }, "expectedFrame": { "schema": { "fields": [ @@ -562,13 +407,7 @@ "data": { "values": [ [ - 1704072600000, - 1704072600000, - 1704072600000, - 1704072600000, - 1704072600000, - 1704072600000, - 1704072600000, + 1704072600000, 1704072600000, 1704072600000, 1704072600000, 1704072600000, 1704072600000, 1704072600000, 1704072600000 ], [ @@ -581,16 +420,7 @@ "ResourceName6", "ResourceName7" ], - [ - 0, - 0, - -0, - 10.3, - -10, - null, - null, - null - ] + [0, 0, -0, 10.3, -10, null, null, null] ] } } @@ -602,31 +432,20 @@ "report": [ { "metric": { - "format": "single" + "format": "single", + "description": "MetricName" }, "timeData": { "utcEnd": "20240101013000" }, "row": [ { - "col": [ - "", - "42" - ] + "col": ["", "42"] } ] } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T01:30:00Z", - "timeRangeTo": "2024-01-01T01:30:00Z", - "selectedQuery": "Resource.MetricName", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - } - }, "expectedFrame": { "schema": { "fields": [ @@ -655,17 +474,7 @@ ] }, "data": { - "values": [ - [ - 1704072600000 - ], - [ - "MetricName" - ], - [ - 42 - ] - ] + "values": [[1704072600000], ["MetricName"], [42]] } } }, @@ -676,22 +485,14 @@ "report": [ { "metric": { - "format": "list" + "format": "list", + "description": "MetricName by XYZ " }, "timeData": {}, "row": [] } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T01:30:00Z", - "timeRangeTo": "2024-01-01T01:30:00Z", - "selectedQuery": "Resource.MetricName by XYZ ", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - } - }, "expectedFrame": { "schema": { "fields": [ @@ -720,11 +521,7 @@ ] }, "data": { - "values": [ - [], - [], - [] - ] + "values": [[], [], []] } } }, @@ -735,29 +532,18 @@ "report": [ { "metric": { - "format": "single" + "format": "single", + "description": "MetricName " }, "timeData": {}, "row": [ { - "col": [ - "*NoData*", - "NaN" - ] + "col": ["*NoData*", "NaN"] } ] } ] }, - "queryModel": { - "timeRangeFrom": "2024-01-01T01:30:00Z", - "timeRangeTo": "2024-01-01T01:30:00Z", - "selectedQuery": "Resource.MetricName ", - "ServerTimeData": { - "localStartTime": "2024-01-01T01:00:00Z", - "localEndTime": "2024-01-01T02:00:00Z" - } - }, "expectedFrame": { "schema": { "fields": [ @@ -786,11 +572,7 @@ ] }, "data": { - "values": [ - [], - [], - [] - ] + "values": [[], [], []] } } } diff --git a/grafana/rmf-app/pkg/plugin/frame/utils.go b/grafana/rmf-app/pkg/plugin/frame/utils.go index edd62009..fd764904 100644 --- a/grafana/rmf-app/pkg/plugin/frame/utils.go +++ b/grafana/rmf-app/pkg/plugin/frame/utils.go @@ -1,6 +1,6 @@ /** -* (C) Copyright IBM Corp. 2023, 2024. -* (C) Copyright Rocket Software, Inc. 2023-2024. +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,26 +24,6 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/data" ) -func getFrameName(qm *QueryModel) string { - var resultFrameName string - if strings.Trim(qm.SelectedQuery, " ") != "" { - splitStringSlice := strings.SplitAfter(qm.SelectedQuery, ".") - if len(splitStringSlice) > 1 { - vt := splitStringSlice[1] - if strings.ToLower(vt) == "report." { - resultFrameName = splitStringSlice[1] + splitStringSlice[2] - } else { - if strings.Contains(vt, "{") { - resultFrameName = vt[:strings.Index(vt, "{")] - } else { - resultFrameName = vt - } - } - } - } - return strings.Trim(resultFrameName, " ") -} - // getFrameLabels builds labels based on DDS metric name and type func getFrameLabels(metricType string, queryName string) data.Labels { labels := data.Labels{} diff --git a/grafana/rmf-app/yarn.lock b/grafana/rmf-app/yarn.lock index 9991ce7e..ca818b17 100644 --- a/grafana/rmf-app/yarn.lock +++ b/grafana/rmf-app/yarn.lock @@ -32,13 +32,14 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/code-frame@npm:7.25.9" +"@babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" dependencies: - "@babel/highlight": "npm:^7.25.9" - picocolors: "npm:^1.0.0" - checksum: 10c0/88562eba0eeb5960b7004e108790aa00183d90cbbe70ce10dad01c2c48141d2ef54d6dcd0c678cc1e456de770ffeb68e28559f4d222c01a110c79aea8733074b + "@babel/helper-validator-identifier": "npm:^7.27.1" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 languageName: node linkType: hard @@ -49,10 +50,10 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/compat-data@npm:7.25.9" - checksum: 10c0/8d9fc2074311ce61aaf5bccf740a808644d19d4859caf5fa46d8a7186a1ee0b0d8cbbc23f9371f8b397e84a885bdeab58d5f22d6799ddde55973252aac351a27 +"@babel/compat-data@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/compat-data@npm:7.27.2" + checksum: 10c0/077c9e01af3b90decee384a6a44dcf353898e980cee22ec7941f9074655dbbe97ec317345536cdc7ef7391521e1497930c522a3816af473076dd524be7fccd32 languageName: node linkType: hard @@ -79,26 +80,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/core@npm:7.25.9" +"@babel/core@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/core@npm:7.27.1" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-module-transforms": "npm:^7.25.9" - "@babel/helpers": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" - "@babel/template": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.1" + "@babel/helper-compilation-targets": "npm:^7.27.1" + "@babel/helper-module-transforms": "npm:^7.27.1" + "@babel/helpers": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.1" + "@babel/template": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/40d3064ebe906f65ed4153a0f4d75c679a19e4d71e425035b7bbe2d292a9167274f1a0d908d4d6c8f484fcddeb10bd91e0c7878fdb3dfad1bb00f6a319ce431d + checksum: 10c0/0fc31f87f5401ac5d375528cb009f4ea5527fc8c5bb5b64b5b22c033b60fd0ad723388933a5f3f5db14e1edd13c958e9dd7e5c68f9b68c767aeb496199c8a4bb languageName: node linkType: hard @@ -114,15 +115,16 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/generator@npm:7.25.9" +"@babel/generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/generator@npm:7.27.1" dependencies: - "@babel/types": "npm:^7.25.9" + "@babel/parser": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/fca49a1440ac550bb835a73c0e8314849cd493a468a5431ca7f9dbb3d3443e3a1a6dcba2426752e8a97cc2feed4a3b7a0c639e1c45871c4a9dd0c994f08dd25a + checksum: 10c0/c4156434b21818f558ebd93ce45f027c53ee570ce55a84fd2d9ba45a79ad204c17e0bff753c886fb6c07df3385445a9e34dc7ccb070d0ac7e80bb91c8b57f423 languageName: node linkType: hard @@ -139,16 +141,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-compilation-targets@npm:7.25.9" +"@babel/helper-compilation-targets@npm:^7.27.1": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" dependencies: - "@babel/compat-data": "npm:^7.25.9" - "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.27.2" + "@babel/helper-validator-option": "npm:^7.27.1" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa + checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 languageName: node linkType: hard @@ -162,13 +164,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-module-imports@npm:7.25.9" +"@babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 languageName: node linkType: hard @@ -186,17 +188,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-module-transforms@npm:7.25.9" +"@babel/helper-module-transforms@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-transforms@npm:7.27.1" dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-simple-access": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/cd005e7585806845d79c5c0ca9e8926f186b430b0a558dad08a3611365eaad3ac587672b0d903530117dec454f48b6bdc3d164b19ea1b71ca1b4eb3be7b452ef + checksum: 10c0/196ab29635fe6eb5ba6ead2972d41b1c0d40f400f99bd8fc109cef21440de24c26c972fabf932585e618694d590379ab8d22def8da65a54459d38ec46112ead7 languageName: node linkType: hard @@ -217,16 +218,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-simple-access@npm:7.25.9" - dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/3f1bcdb88ee3883ccf86959869a867f6bbf8c4737cd44fb9f799c38e54f67474590bc66802500ae9fe18161792875b2cfb7ec15673f48ed6c8663f6d09686ca8 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.24.8": version: 7.24.8 resolution: "@babel/helper-string-parser@npm:7.24.8" @@ -234,10 +225,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-string-parser@npm:7.25.9" - checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 languageName: node linkType: hard @@ -248,10 +239,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-identifier@npm:7.25.9" - checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 languageName: node linkType: hard @@ -262,10 +253,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-option@npm:7.25.9" - checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 languageName: node linkType: hard @@ -279,13 +270,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helpers@npm:7.25.9" +"@babel/helpers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helpers@npm:7.27.1" dependencies: - "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/4354fbf050291937d0f127f6f927a0c471b604524e0767516fefb91dc36427f25904dd0d2b2b3bbc66bce1894c680cc37eac9ab46970d70f24bf3e53375612de + "@babel/template": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/e078257b9342dae2c041ac050276c5a28701434ad09478e6dc6976abd99f721a5a92e4bebddcbca6b1c3a7e8acace56a946340c701aad5e7507d2c87446459ba languageName: node linkType: hard @@ -301,18 +292,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/highlight@npm:7.25.9" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.9" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/ae0ed93c151b85a07df42936117fa593ce91563a22dfc8944a90ae7088c9679645c33e00dcd20b081c1979665d65f986241172dae1fc9e5922692fc3ff685a49 - languageName: node - linkType: hard - "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": version: 7.25.6 resolution: "@babel/parser@npm:7.25.6" @@ -324,14 +303,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/parser@npm:7.25.9" +"@babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/parser@npm:7.27.2" dependencies: - "@babel/types": "npm:^7.25.9" + "@babel/types": "npm:^7.27.1" bin: parser: ./bin/babel-parser.js - checksum: 10c0/143faff8a72331be5ed94080e0f4645cbeea814fb488cd9210154083735f67cb66fde32f6a4a80efd6c4cdf12c6f8b50995a465846093c7f65c5da8d7829627c + checksum: 10c0/3c06692768885c2f58207fc8c2cbdb4a44df46b7d93135a083f6eaa49310f7ced490ce76043a2a7606cdcc13f27e3d835e141b692f2f6337a2e7f43c1dbb04b4 languageName: node linkType: hard @@ -522,7 +501,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": version: 7.25.6 resolution: "@babel/runtime@npm:7.25.6" dependencies: @@ -531,7 +510,14 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.24.5": +"@babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.25.0, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.26.10": + version: 7.27.1 + resolution: "@babel/runtime@npm:7.27.1" + checksum: 10c0/530a7332f86ac5a7442250456823a930906911d895c0b743bf1852efc88a20a016ed4cd26d442d0ca40ae6d5448111e02a08dd638a4f1064b47d080e2875dc05 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.24.5": version: 7.25.7 resolution: "@babel/runtime@npm:7.25.7" dependencies: @@ -560,14 +546,14 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/template@npm:7.25.9" +"@babel/template@npm:^7.27.1": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" dependencies: - "@babel/code-frame": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab + "@babel/code-frame": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.2" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 languageName: node linkType: hard @@ -586,18 +572,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/traverse@npm:7.25.9" +"@babel/traverse@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/traverse@npm:7.27.1" dependencies: - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" - "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.1" + "@babel/template": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 + checksum: 10c0/d912110037b03b1d70a2436cfd51316d930366a5f54252da2bced1ba38642f644f848240a951e5caf12f1ef6c40d3d96baa92ea6e84800f2e891c15e97b25d50 languageName: node linkType: hard @@ -612,13 +598,13 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/types@npm:7.25.9" +"@babel/types@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/types@npm:7.27.1" dependencies: - "@babel/helper-string-parser": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - checksum: 10c0/33890d08bcb06b26a3a60e4c6c996cbdf2b8d8a3c212664de659c2775f80b002c5f2bceedaa309c384ff5e99bd579794fe6a7e41de07df70246f43c55016d349 + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + checksum: 10c0/ed736f14db2fdf0d36c539c8e06b6bb5e8f9649a12b5c0e1c516fed827f27ef35085abe08bf4d1302a4e20c9a254e762eed453bce659786d4a6e01ba26a91377 languageName: node linkType: hard @@ -645,10 +631,10 @@ __metadata: languageName: node linkType: hard -"@discoveryjs/json-ext@npm:^0.5.0": - version: 0.5.7 - resolution: "@discoveryjs/json-ext@npm:0.5.7" - checksum: 10c0/e10f1b02b78e4812646ddf289b7d9f2cb567d336c363b266bd50cd223cf3de7c2c74018d91cd2613041568397ef3a4a2b500aba588c6e5bd78c38374ba68f38c +"@discoveryjs/json-ext@npm:^0.6.1": + version: 0.6.3 + resolution: "@discoveryjs/json-ext@npm:0.6.3" + checksum: 10c0/778a9f9d5c3696da3c1f9fa4186613db95a1090abbfb6c2601430645c0d0158cd5e4ba4f32c05904e2dd2747d57710f6aab22bd2f8aa3c4e8feab9b247c65d85 languageName: node linkType: hard @@ -671,6 +657,25 @@ __metadata: languageName: node linkType: hard +"@emotion/babel-plugin@npm:^11.13.5": + version: 11.13.5 + resolution: "@emotion/babel-plugin@npm:11.13.5" + dependencies: + "@babel/helper-module-imports": "npm:^7.16.7" + "@babel/runtime": "npm:^7.18.3" + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/serialize": "npm:^1.3.3" + babel-plugin-macros: "npm:^3.1.0" + convert-source-map: "npm:^1.5.0" + escape-string-regexp: "npm:^4.0.0" + find-root: "npm:^1.1.0" + source-map: "npm:^0.5.7" + stylis: "npm:4.2.0" + checksum: 10c0/8ccbfec7defd0e513cb8a1568fa179eac1e20c35fda18aed767f6c59ea7314363ebf2de3e9d2df66c8ad78928dc3dceeded84e6fa8059087cae5c280090aeeeb + languageName: node + linkType: hard + "@emotion/cache@npm:^11.13.0, @emotion/cache@npm:^11.4.0": version: 11.13.1 resolution: "@emotion/cache@npm:11.13.1" @@ -684,16 +689,29 @@ __metadata: languageName: node linkType: hard -"@emotion/css@npm:11.13.4, @emotion/css@npm:^11.13.4": - version: 11.13.4 - resolution: "@emotion/css@npm:11.13.4" +"@emotion/cache@npm:^11.13.5, @emotion/cache@npm:^11.14.0": + version: 11.14.0 + resolution: "@emotion/cache@npm:11.14.0" dependencies: - "@emotion/babel-plugin": "npm:^11.12.0" - "@emotion/cache": "npm:^11.13.0" - "@emotion/serialize": "npm:^1.3.0" + "@emotion/memoize": "npm:^0.9.0" "@emotion/sheet": "npm:^1.4.0" - "@emotion/utils": "npm:^1.4.0" - checksum: 10c0/57971732b983f43e642e30496257168d5ecdd05be4d4a3cd7ff778f9e402a71fd8679272cb797abd61eab65724dad26af04c418a41219a062b8faa9cc01d3848 + "@emotion/utils": "npm:^1.4.2" + "@emotion/weak-memoize": "npm:^0.4.0" + stylis: "npm:4.2.0" + checksum: 10c0/3fa3e7a431ab6f8a47c67132a00ac8358f428c1b6c8421d4b20de9df7c18e95eec04a5a6ff5a68908f98d3280044f247b4965ac63df8302d2c94dba718769724 + languageName: node + linkType: hard + +"@emotion/css@npm:11.13.5, @emotion/css@npm:^11.13.5": + version: 11.13.5 + resolution: "@emotion/css@npm:11.13.5" + dependencies: + "@emotion/babel-plugin": "npm:^11.13.5" + "@emotion/cache": "npm:^11.13.5" + "@emotion/serialize": "npm:^1.3.3" + "@emotion/sheet": "npm:^1.4.0" + "@emotion/utils": "npm:^1.4.2" + checksum: 10c0/45d444b08c1a9776046786f1ad8b93297d9e0fb79e6a40b73e9f9c5c20a071f83bae2408e7b98fe526fc123774a18b12ae3c8dc5b5883b8169685ee7b8df9463 languageName: node linkType: hard @@ -711,7 +729,28 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:11.13.3, @emotion/react@npm:^11.8.1": +"@emotion/react@npm:11.14.0": + version: 11.14.0 + resolution: "@emotion/react@npm:11.14.0" + dependencies: + "@babel/runtime": "npm:^7.18.3" + "@emotion/babel-plugin": "npm:^11.13.5" + "@emotion/cache": "npm:^11.14.0" + "@emotion/serialize": "npm:^1.3.3" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" + "@emotion/utils": "npm:^1.4.2" + "@emotion/weak-memoize": "npm:^0.4.0" + hoist-non-react-statics: "npm:^3.3.1" + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/d0864f571a9f99ec643420ef31fde09e2006d3943a6aba079980e4d5f6e9f9fecbcc54b8f617fe003c00092ff9d5241179149ffff2810cb05cf72b4620cfc031 + languageName: node + linkType: hard + +"@emotion/react@npm:^11.8.1": version: 11.13.3 resolution: "@emotion/react@npm:11.13.3" dependencies: @@ -732,20 +771,20 @@ __metadata: languageName: node linkType: hard -"@emotion/serialize@npm:1.3.2": - version: 1.3.2 - resolution: "@emotion/serialize@npm:1.3.2" +"@emotion/serialize@npm:1.3.3, @emotion/serialize@npm:^1.3.3": + version: 1.3.3 + resolution: "@emotion/serialize@npm:1.3.3" dependencies: "@emotion/hash": "npm:^0.9.2" "@emotion/memoize": "npm:^0.9.0" "@emotion/unitless": "npm:^0.10.0" - "@emotion/utils": "npm:^1.4.1" + "@emotion/utils": "npm:^1.4.2" csstype: "npm:^3.0.2" - checksum: 10c0/b4873b643721d28b4450f9d77b71e6c8d0109e6825c54fc79e649d2fa438fe4080d2fa696ec8fda421b8e713fcd42306d6197b6121ddd2486ffab8e4b6311ce0 + checksum: 10c0/b28cb7de59de382021de2b26c0c94ebbfb16967a1b969a56fdb6408465a8993df243bfbd66430badaa6800e1834724e84895f5a6a9d97d0d224de3d77852acb4 languageName: node linkType: hard -"@emotion/serialize@npm:^1.2.0, @emotion/serialize@npm:^1.3.0, @emotion/serialize@npm:^1.3.1": +"@emotion/serialize@npm:^1.2.0, @emotion/serialize@npm:^1.3.1": version: 1.3.1 resolution: "@emotion/serialize@npm:1.3.1" dependencies: @@ -781,6 +820,15 @@ __metadata: languageName: node linkType: hard +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.2.0": + version: 1.2.0 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.2.0" + peerDependencies: + react: ">=16.8.0" + checksum: 10c0/074dbc92b96bdc09209871070076e3b0351b6b47efefa849a7d9c37ab142130767609ca1831da0055988974e3b895c1de7606e4c421fecaa27c3e56a2afd3b08 + languageName: node + linkType: hard + "@emotion/utils@npm:^1.4.0": version: 1.4.0 resolution: "@emotion/utils@npm:1.4.0" @@ -788,10 +836,10 @@ __metadata: languageName: node linkType: hard -"@emotion/utils@npm:^1.4.1": - version: 1.4.1 - resolution: "@emotion/utils@npm:1.4.1" - checksum: 10c0/f4704e0bdf48062fd6eb9c64771c88f521aab1e108a48cb23d65b6438597c63a6945301cef4c43611e79e0e76a304ec5481c31025ea8f573d7ad5423d747602c +"@emotion/utils@npm:^1.4.2": + version: 1.4.2 + resolution: "@emotion/utils@npm:1.4.2" + checksum: 10c0/7d0010bf60a2a8c1a033b6431469de4c80e47aeb8fd856a17c1d1f76bbc3a03161a34aeaa78803566e29681ca551e7bf9994b68e9c5f5c796159923e44f78d9a languageName: node linkType: hard @@ -844,17 +892,17 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react@npm:0.26.24": - version: 0.26.24 - resolution: "@floating-ui/react@npm:0.26.24" +"@floating-ui/react@npm:0.27.7": + version: 0.27.7 + resolution: "@floating-ui/react@npm:0.27.7" dependencies: "@floating-ui/react-dom": "npm:^2.1.2" - "@floating-ui/utils": "npm:^0.2.8" + "@floating-ui/utils": "npm:^0.2.9" tabbable: "npm:^6.0.0" peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: 10c0/c5c3ac265802087673a69b0e08b3bea1ee02de9da4cdbc40bb1c9e06823be72628a82f1655b40d56a4383715b4ab3b6deddff4e69146f513970ee592e1dd8f92 + react: ">=17.0.0" + react-dom: ">=17.0.0" + checksum: 10c0/bb79c89a63dfb44917f1583548905437adb7ba3fc9ece27c45b12532a60423425f8ae9fde8a54b10711e6449585ffde0951aa70a4f13f99eaeacd5006d7d69e5 languageName: node linkType: hard @@ -865,10 +913,10 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.8": - version: 0.2.8 - resolution: "@floating-ui/utils@npm:0.2.8" - checksum: 10c0/a8cee5f17406c900e1c3ef63e3ca89b35e7a2ed645418459a73627b93b7377477fc888081011c6cd177cac45ec2b92a6cab018c14ea140519465498dddd2d3f9 +"@floating-ui/utils@npm:^0.2.9": + version: 0.2.9 + resolution: "@floating-ui/utils@npm:0.2.9" + checksum: 10c0/48bbed10f91cb7863a796cc0d0e917c78d11aeb89f98d03fc38d79e7eb792224a79f538ed8a2d5d5584511d4ca6354ef35f1712659fd569868e342df4398ad6f languageName: node linkType: hard @@ -921,49 +969,51 @@ __metadata: languageName: node linkType: hard -"@grafana/data@npm:11.3.0, @grafana/data@npm:^11.3.0": - version: 11.3.0 - resolution: "@grafana/data@npm:11.3.0" +"@grafana/data@npm:12.0.0, @grafana/data@npm:^12.0.0": + version: 12.0.0 + resolution: "@grafana/data@npm:12.0.0" dependencies: "@braintree/sanitize-url": "npm:7.0.1" - "@grafana/schema": "npm:11.3.0" + "@grafana/schema": "npm:12.0.0" "@types/d3-interpolate": "npm:^3.0.0" "@types/string-hash": "npm:1.1.3" + "@types/systemjs": "npm:6.15.1" d3-interpolate: "npm:3.0.1" - date-fns: "npm:3.6.0" - dompurify: "npm:^3.0.0" + date-fns: "npm:4.1.0" + dompurify: "npm:3.2.5" eventemitter3: "npm:5.0.1" fast_array_intersect: "npm:1.1.0" history: "npm:4.10.1" lodash: "npm:4.17.21" - marked: "npm:12.0.2" - marked-mangle: "npm:1.1.9" + marked: "npm:15.0.6" + marked-mangle: "npm:1.1.10" moment: "npm:2.30.1" - moment-timezone: "npm:0.5.46" + moment-timezone: "npm:0.5.47" ol: "npm:7.4.0" - papaparse: "npm:5.4.1" - react-use: "npm:17.5.1" + papaparse: "npm:5.5.2" + react-use: "npm:17.6.0" rxjs: "npm:7.8.1" string-hash: "npm:^1.1.3" tinycolor2: "npm:1.6.0" - tslib: "npm:2.7.0" - uplot: "npm:1.6.31" + tslib: "npm:2.8.1" + uplot: "npm:1.6.32" xss: "npm:^1.0.14" peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 10c0/6e09e3fc109259b2efd4ba3fe182b7ee3eb6c7c997f2a2befd38e75cf09a0cbfb47511f8b14fbca15fa38a9ff73a52d953ad8b07043e94bbe4bb983fb7bb2851 + checksum: 10c0/3cbb001e3871c81cdbb830499f81b31aa02c7add43a1f694dc6fc0559db4c8b911b266a20ba37f7e5503bdd8decd8ff0d3a9feca462ff5dc662c3fa7a81b93ee languageName: node linkType: hard -"@grafana/e2e-selectors@npm:11.3.0": - version: 11.3.0 - resolution: "@grafana/e2e-selectors@npm:11.3.0" +"@grafana/e2e-selectors@npm:12.0.0": + version: 12.0.0 + resolution: "@grafana/e2e-selectors@npm:12.0.0" dependencies: "@grafana/tsconfig": "npm:^2.0.0" - tslib: "npm:2.7.0" - typescript: "npm:5.5.4" - checksum: 10c0/6b6fec3e00e173d5bece9744e6531dd8f6c44ee09d909a47df9dcec3ee8206911db2a6fead9e52078bec1e9415f0bf4698b421b751016bc9efedbd9f239c9e0e + semver: "npm:^7.7.0" + tslib: "npm:2.8.1" + typescript: "npm:5.7.3" + checksum: 10c0/b3b0f3c27f187270b39556c0f321c52b9bd1947cf9187e95601eeb3aedc1dfe0315ec9c8da8e2fa47f060625f329b2ee10f376027464e1631cad016d4e57b97a languageName: node linkType: hard @@ -984,53 +1034,56 @@ __metadata: languageName: node linkType: hard -"@grafana/faro-core@npm:^1.10.0": - version: 1.10.0 - resolution: "@grafana/faro-core@npm:1.10.0" +"@grafana/faro-core@npm:^1.18.1": + version: 1.18.1 + resolution: "@grafana/faro-core@npm:1.18.1" dependencies: "@opentelemetry/api": "npm:^1.9.0" - "@opentelemetry/otlp-transformer": "npm:^0.53.0" - checksum: 10c0/c61a68e0a0354b8223a72e36bfa3bf264321153601192d62c836d703837a845af22ac2bb8da060981fa755aeba47469b00917e4bf28a440e765b504e3e446238 + "@opentelemetry/otlp-transformer": "npm:^0.200.0" + checksum: 10c0/0fd3eeba7f33bfac7cdb6be8a0de52c831994c78388b3a5510ad6feded3bbd86390336ff8b4119e22c9827092a34338ad0eb7fd750ae7950dede8269268555fa languageName: node linkType: hard -"@grafana/faro-web-sdk@npm:^1.3.6": - version: 1.10.0 - resolution: "@grafana/faro-web-sdk@npm:1.10.0" +"@grafana/faro-web-sdk@npm:^1.13.2": + version: 1.18.1 + resolution: "@grafana/faro-web-sdk@npm:1.18.1" dependencies: - "@grafana/faro-core": "npm:^1.10.0" + "@grafana/faro-core": "npm:^1.18.1" ua-parser-js: "npm:^1.0.32" web-vitals: "npm:^4.0.1" - checksum: 10c0/cebdf0be3fe3fa892e8d8656b51044f7a58f88c7f7d4950e30902a2b51e610b6634c12534467b68ba1c2bd1b18fe8c7cb959e50feae30829dfc7d391950072af + checksum: 10c0/c54357bfdaae21b77fade72f9440d76fd4064ff30dd918368f30ed943c03e87008d0d95a7f3d63ae830ecf52ebd6d37c7f97281c04deb8124badf6cfe0e80483 languageName: node linkType: hard -"@grafana/runtime@npm:^11.3.0": - version: 11.3.0 - resolution: "@grafana/runtime@npm:11.3.0" +"@grafana/runtime@npm:^12.0.0": + version: 12.0.0 + resolution: "@grafana/runtime@npm:12.0.0" dependencies: - "@grafana/data": "npm:11.3.0" - "@grafana/e2e-selectors": "npm:11.3.0" - "@grafana/faro-web-sdk": "npm:^1.3.6" - "@grafana/schema": "npm:11.3.0" - "@grafana/ui": "npm:11.3.0" + "@grafana/data": "npm:12.0.0" + "@grafana/e2e-selectors": "npm:12.0.0" + "@grafana/faro-web-sdk": "npm:^1.13.2" + "@grafana/schema": "npm:12.0.0" + "@grafana/ui": "npm:12.0.0" + "@types/systemjs": "npm:6.15.1" history: "npm:4.10.1" lodash: "npm:4.17.21" + react-loading-skeleton: "npm:3.5.0" + react-use: "npm:17.6.0" rxjs: "npm:7.8.1" - tslib: "npm:2.7.0" + tslib: "npm:2.8.1" peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 10c0/aa8f4d75fed10d25761276f0d45f1101760125e21a15d05ddc4b0cfb2adbc71612455df416beb1410174b0772beb0dade0efc637a2e3cb70b28bb1c7917a5b53 + checksum: 10c0/6c5c78dff9198ce38a2a5d7946c80e7df622c4b530464a9ed7a495c37f06cc2b9b230339171207098f7c77b25201ed46250f5ea0f967c2804a88c8e1709f5675 languageName: node linkType: hard -"@grafana/schema@npm:11.3.0, @grafana/schema@npm:^11.3.0": - version: 11.3.0 - resolution: "@grafana/schema@npm:11.3.0" +"@grafana/schema@npm:12.0.0, @grafana/schema@npm:^12.0.0": + version: 12.0.0 + resolution: "@grafana/schema@npm:12.0.0" dependencies: - tslib: "npm:2.7.0" - checksum: 10c0/27863a97e1084c6a04655987361c7c8e0870a66e459a0e867efb42de0a0b39beb22f921c6de2dafcc3ffcd3146278021048465def1e7e23bbb52d634c295ee33 + tslib: "npm:2.8.1" + checksum: 10c0/cbf5c1bd8267ca2a48d9b609840f481cd5bc6b81e363bf11c961e82a16d0266646ce9db52ce3d2f2838eb4790a6b3a293781a3fdc22d1e110a79f808fc940143 languageName: node linkType: hard @@ -1041,40 +1094,39 @@ __metadata: languageName: node linkType: hard -"@grafana/ui@npm:11.3.0, @grafana/ui@npm:^11.3.0": - version: 11.3.0 - resolution: "@grafana/ui@npm:11.3.0" +"@grafana/ui@npm:12.0.0, @grafana/ui@npm:^12.0.0": + version: 12.0.0 + resolution: "@grafana/ui@npm:12.0.0" dependencies: - "@emotion/css": "npm:11.13.4" - "@emotion/react": "npm:11.13.3" - "@emotion/serialize": "npm:1.3.2" - "@floating-ui/react": "npm:0.26.24" - "@grafana/data": "npm:11.3.0" - "@grafana/e2e-selectors": "npm:11.3.0" - "@grafana/faro-web-sdk": "npm:^1.3.6" - "@grafana/schema": "npm:11.3.0" - "@hello-pangea/dnd": "npm:16.6.0" - "@leeoniya/ufuzzy": "npm:1.0.14" + "@emotion/css": "npm:11.13.5" + "@emotion/react": "npm:11.14.0" + "@emotion/serialize": "npm:1.3.3" + "@floating-ui/react": "npm:0.27.7" + "@grafana/data": "npm:12.0.0" + "@grafana/e2e-selectors": "npm:12.0.0" + "@grafana/faro-web-sdk": "npm:^1.13.2" + "@grafana/schema": "npm:12.0.0" + "@hello-pangea/dnd": "npm:17.0.0" + "@leeoniya/ufuzzy": "npm:1.0.18" "@monaco-editor/react": "npm:4.6.0" "@popperjs/core": "npm:2.11.8" - "@react-aria/dialog": "npm:3.5.18" - "@react-aria/focus": "npm:3.18.3" - "@react-aria/overlays": "npm:3.23.3" - "@react-aria/utils": "npm:3.25.3" + "@react-aria/dialog": "npm:3.5.23" + "@react-aria/focus": "npm:3.20.1" + "@react-aria/overlays": "npm:3.26.1" + "@react-aria/utils": "npm:3.28.1" "@tanstack/react-virtual": "npm:^3.5.1" - "@types/jquery": "npm:3.5.31" - "@types/lodash": "npm:4.17.10" + "@types/jquery": "npm:3.5.32" + "@types/lodash": "npm:4.17.15" "@types/react-table": "npm:7.7.20" - ansicolor: "npm:1.1.100" calculate-size: "npm:1.1.1" classnames: "npm:2.5.1" d3: "npm:7.9.0" - date-fns: "npm:3.6.0" + date-fns: "npm:4.1.0" downshift: "npm:^9.0.6" hoist-non-react-statics: "npm:3.3.2" - i18next: "npm:^23.0.0" - i18next-browser-languagedetector: "npm:^7.0.2" - immutable: "npm:4.3.7" + i18next: "npm:^24.0.0" + i18next-browser-languagedetector: "npm:^8.0.0" + immutable: "npm:5.0.3" is-hotkey: "npm:0.2.0" jquery: "npm:3.7.1" lodash: "npm:4.17.21" @@ -1082,94 +1134,97 @@ __metadata: moment: "npm:2.30.1" monaco-editor: "npm:0.34.1" ol: "npm:7.4.0" - prismjs: "npm:1.29.0" - rc-cascader: "npm:3.28.1" + prismjs: "npm:1.30.0" + rc-cascader: "npm:3.33.0" rc-drawer: "npm:7.2.0" - rc-slider: "npm:11.1.7" - rc-time-picker: "npm:^3.7.3" - rc-tooltip: "npm:6.2.1" - react-calendar: "npm:5.0.0" + rc-picker: "npm:4.9.2" + rc-slider: "npm:11.1.8" + rc-tooltip: "npm:6.4.0" + react-calendar: "npm:^5.1.0" react-colorful: "npm:5.6.1" react-custom-scrollbars-2: "npm:4.5.0" - react-dropzone: "npm:14.2.9" - react-highlight-words: "npm:0.20.0" + react-data-grid: "npm:7.0.0-beta.46" + react-dropzone: "npm:14.3.5" + react-highlight-words: "npm:0.21.0" react-hook-form: "npm:^7.49.2" - react-i18next: "npm:^14.0.0" - react-inlinesvg: "npm:3.0.2" + react-i18next: "npm:^15.0.0" + react-inlinesvg: "npm:4.2.0" react-loading-skeleton: "npm:3.5.0" + react-router-dom: "npm:5.3.4" react-router-dom-v5-compat: "npm:^6.26.1" - react-select: "npm:5.8.1" + react-select: "npm:5.10.0" react-table: "npm:7.8.0" react-transition-group: "npm:4.4.5" - react-use: "npm:17.5.1" - react-window: "npm:1.8.10" + react-use: "npm:17.6.0" + react-window: "npm:1.8.11" rxjs: "npm:7.8.1" slate: "npm:0.47.9" slate-plain-serializer: "npm:0.7.13" slate-react: "npm:0.22.10" tinycolor2: "npm:1.6.0" - tslib: "npm:2.7.0" - uplot: "npm:1.6.31" - uuid: "npm:9.0.1" + tslib: "npm:2.8.1" + uplot: "npm:1.6.32" + uuid: "npm:11.0.5" + uwrap: "npm:0.1.1" peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 10c0/dc0dc9a8bae9ece475596a9f743d375ea1bb997627efccb6da76a4c2bb0a14105f81fb79208f4e3d10702638797265c0ca8cb239e6f69b9d442853180034739b + checksum: 10c0/e3cde603de6dbca2bac7d40f9869f072bb349a4536c89130b36eb389fa84bb5c738fb4e957c9fb1a5a9fabcd5045f7751f5b3123c9b8491db74f4cdd0f8c8951 languageName: node linkType: hard -"@hello-pangea/dnd@npm:16.6.0": - version: 16.6.0 - resolution: "@hello-pangea/dnd@npm:16.6.0" +"@hello-pangea/dnd@npm:17.0.0": + version: 17.0.0 + resolution: "@hello-pangea/dnd@npm:17.0.0" dependencies: - "@babel/runtime": "npm:^7.24.1" + "@babel/runtime": "npm:^7.25.6" css-box-model: "npm:^1.2.1" memoize-one: "npm:^6.0.0" raf-schd: "npm:^4.0.3" - react-redux: "npm:^8.1.3" - redux: "npm:^4.2.1" + react-redux: "npm:^9.1.2" + redux: "npm:^5.0.1" use-memo-one: "npm:^1.1.3" peerDependencies: - react: ^16.8.5 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0 - checksum: 10c0/ef43ba21f063f6497f399b457452d45be456b1f28405b148d9683d2ca65e5f77e2685a0b7e9998aaca4f8676b1642ba2c277fc78643ea59fd6b9f71a56ffc5e0 + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 10c0/93417c055267f6f12a37a1cdb08d9db85ab021b102315e1e5a70a79d7de6c2ffaeff211e3ec40441c110f39e60688cfcea85ab86c21820041d974415c1ca715e languageName: node linkType: hard -"@internationalized/date@npm:^3.5.6": - version: 3.5.6 - resolution: "@internationalized/date@npm:3.5.6" +"@internationalized/date@npm:^3.8.0": + version: 3.8.0 + resolution: "@internationalized/date@npm:3.8.0" dependencies: "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/25d3150247175892705aeaf8e1a78295717d420c37cb3065a766c4058a1aed460a69dc5362f7073425c95095c27036c7ed65f0ce5fbb32b20f917132e8dc543f + checksum: 10c0/7ac0cae2f1832fe2f2950e22208812ed8bf2845dd903ec93bd3aa024ca020124e137638b11bb5817b92abde1daa3f881cc81d62db0b20f5db2d9e07ab0cd9e01 languageName: node linkType: hard -"@internationalized/message@npm:^3.1.5": - version: 3.1.5 - resolution: "@internationalized/message@npm:3.1.5" +"@internationalized/message@npm:^3.1.7": + version: 3.1.7 + resolution: "@internationalized/message@npm:3.1.7" dependencies: "@swc/helpers": "npm:^0.5.0" intl-messageformat: "npm:^10.1.0" - checksum: 10c0/81a2ef21154d0b00796fd2ecfb5365248fe50f64a7ad1616dbe4e491555e7e018557b061df145d0ab5b68cb1e757ac203d3892c42f791f169360b98d77fa5091 + checksum: 10c0/0e3d46c97e790e34074f2589cbbe220bac8da453bf6d5d5da5d545b8a3989d37dc02d5209296f3cb900cea5a1220658821c7fe04fd00b2a27c446fcc6f062b1a languageName: node linkType: hard -"@internationalized/number@npm:^3.5.4": - version: 3.5.4 - resolution: "@internationalized/number@npm:3.5.4" +"@internationalized/number@npm:^3.6.1": + version: 3.6.1 + resolution: "@internationalized/number@npm:3.6.1" dependencies: "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/d01a1845ad9815756ceb59eeb75792ee89105d073ce232350c0644453a3470e3ebaffc2b00ebd2dd8238957b0ae12d1551633308897fa9c332dda82f2af8c5cf + checksum: 10c0/2605245bec05c5ff2e100d0cf5541b1f08e9038d76c18f11ce9142f538a5a06f1f5459506e7ef6d1b162b4bcc34bf2d8eebb39fe235048cb41eebd00ec04fd65 languageName: node linkType: hard -"@internationalized/string@npm:^3.2.4": - version: 3.2.4 - resolution: "@internationalized/string@npm:3.2.4" +"@internationalized/string@npm:^3.2.6": + version: 3.2.6 + resolution: "@internationalized/string@npm:3.2.6" dependencies: "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/5a03ff3d7bea1eb0e7ef8f7b00d148b6b8afa90600434db61389e6a8a83e3ca89e469c730eb02ef6284e7b559ce4be8f46cb446387e137931bc47acb8cbcd841 + checksum: 10c0/8ed556697fee4aa2a115ea9d44075e8be8a7f80c76ebfcc6a4f14681175c4e59438f7ba049748d9c9cd0b46c7927b731d7c1f7fa53aaaf58b4c46dbd9f471b61 languageName: node linkType: hard @@ -1498,7 +1553,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -1508,10 +1563,10 @@ __metadata: languageName: node linkType: hard -"@leeoniya/ufuzzy@npm:1.0.14": - version: 1.0.14 - resolution: "@leeoniya/ufuzzy@npm:1.0.14" - checksum: 10c0/d66b409e49366d2c77cb8f750dd19cceeb49a232ce3d1a44315664dcf72e4e023d006c2b4f35f04588c17e660283ff7be6f419f14f5b910ba1726b1d8a4a128d +"@leeoniya/ufuzzy@npm:1.0.18": + version: 1.0.18 + resolution: "@leeoniya/ufuzzy@npm:1.0.18" + checksum: 10c0/d8fa13373f5de666b5a65585a8d2e8f99ba24e5d2f695099194560f02c9184dbceaa0490e712fa4851f972a5dbbcdcc71569e0091afbd2e6e772d716065b200a languageName: node linkType: hard @@ -1630,104 +1685,104 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/api-logs@npm:0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/api-logs@npm:0.53.0" +"@opentelemetry/api-logs@npm:0.200.0": + version: 0.200.0 + resolution: "@opentelemetry/api-logs@npm:0.200.0" dependencies: - "@opentelemetry/api": "npm:^1.0.0" - checksum: 10c0/969ad3bbb74e3de6fdfe8eb9b3ab86d3dc284ca7bffd0ca67eef64efd08c97a4305696afe0b7b03e5d356f15d0a1a67ac517e5fa7d1ddee6fdc249eef2209fcb + "@opentelemetry/api": "npm:^1.3.0" + checksum: 10c0/c6bc3cfba35c69411f294519d93d0ff9f603517030d1162839ee42ac22ed1b0235edaf71d00cabc40125f813d8b4dc830d14315afcebcef138c1df560eaa5c91 languageName: node linkType: hard -"@opentelemetry/api@npm:^1.0.0, @opentelemetry/api@npm:^1.9.0": +"@opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.9.0": version: 1.9.0 resolution: "@opentelemetry/api@npm:1.9.0" checksum: 10c0/9aae2fe6e8a3a3eeb6c1fdef78e1939cf05a0f37f8a4fae4d6bf2e09eb1e06f966ece85805626e01ba5fab48072b94f19b835449e58b6d26720ee19a58298add languageName: node linkType: hard -"@opentelemetry/core@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/core@npm:1.26.0" +"@opentelemetry/core@npm:2.0.0": + version: 2.0.0 + resolution: "@opentelemetry/core@npm:2.0.0" dependencies: - "@opentelemetry/semantic-conventions": "npm:1.27.0" + "@opentelemetry/semantic-conventions": "npm:^1.29.0" peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 10c0/8038a3b9124a0b3b48dceb3949f88726c6853eac33b79fc049856f78dcf4b7ee453db1e6f4d5205a79b315caba809cb7d2f853946cf14773e50ce6a87fd5260e + checksum: 10c0/d2cc6d8a955305b9de15cc36135e5d5b0f0405fead8bbd4de51433f2d05369af0a3bcb2c6fe7fe6d9e61b0db782511bcadc5d93ed906027d4c00d5c2e3575a24 languageName: node linkType: hard -"@opentelemetry/otlp-transformer@npm:^0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/otlp-transformer@npm:0.53.0" +"@opentelemetry/otlp-transformer@npm:^0.200.0": + version: 0.200.0 + resolution: "@opentelemetry/otlp-transformer@npm:0.200.0" dependencies: - "@opentelemetry/api-logs": "npm:0.53.0" - "@opentelemetry/core": "npm:1.26.0" - "@opentelemetry/resources": "npm:1.26.0" - "@opentelemetry/sdk-logs": "npm:0.53.0" - "@opentelemetry/sdk-metrics": "npm:1.26.0" - "@opentelemetry/sdk-trace-base": "npm:1.26.0" + "@opentelemetry/api-logs": "npm:0.200.0" + "@opentelemetry/core": "npm:2.0.0" + "@opentelemetry/resources": "npm:2.0.0" + "@opentelemetry/sdk-logs": "npm:0.200.0" + "@opentelemetry/sdk-metrics": "npm:2.0.0" + "@opentelemetry/sdk-trace-base": "npm:2.0.0" protobufjs: "npm:^7.3.0" peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 10c0/d9a43bb00ce5386aeb477cd95e72cd86114ed01b2e11e8f39c3988aa2bb56cbda16b533ffd55396ed374961c32e1cc76face565e21b6cedcc85e844776912666 + checksum: 10c0/4f5383fad48c62e17824df91f6944b0376cb17f7b132b11d62fa5cf46747f224c980960209c85669b6e341a131f94586c6ad52bc1a6d2fb8d5295e23b460600c languageName: node linkType: hard -"@opentelemetry/resources@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/resources@npm:1.26.0" +"@opentelemetry/resources@npm:2.0.0": + version: 2.0.0 + resolution: "@opentelemetry/resources@npm:2.0.0" dependencies: - "@opentelemetry/core": "npm:1.26.0" - "@opentelemetry/semantic-conventions": "npm:1.27.0" + "@opentelemetry/core": "npm:2.0.0" + "@opentelemetry/semantic-conventions": "npm:^1.29.0" peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 10c0/62ffbf7edee8676055661cf608b32a52bfa46fedb1a88830b4d4d0faf6664edbcbf7922034d3690d11fe9ebef9d9f5ffcb05645e8c7b27c707bf57d5289617e9 + "@opentelemetry/api": ">=1.3.0 <1.10.0" + checksum: 10c0/2f331ff8268ef7168e8f24312fd7505900693c0ea302f6025937e94c157b8173ee54f5d5a737c06b956da721aa63443ac520f530cade880ef3cd40a2a25c702c languageName: node linkType: hard -"@opentelemetry/sdk-logs@npm:0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/sdk-logs@npm:0.53.0" +"@opentelemetry/sdk-logs@npm:0.200.0": + version: 0.200.0 + resolution: "@opentelemetry/sdk-logs@npm:0.200.0" dependencies: - "@opentelemetry/api-logs": "npm:0.53.0" - "@opentelemetry/core": "npm:1.26.0" - "@opentelemetry/resources": "npm:1.26.0" + "@opentelemetry/api-logs": "npm:0.200.0" + "@opentelemetry/core": "npm:2.0.0" + "@opentelemetry/resources": "npm:2.0.0" peerDependencies: "@opentelemetry/api": ">=1.4.0 <1.10.0" - checksum: 10c0/bd47e9a70966c53ac7b394ba0f27a4400b4fdebfbe781027f53457954b79b1c821301936bc87f5fe09a462af579c02c4fa27f353b6d9a1dca0b760cc284ec068 + checksum: 10c0/031dc40dd012fad102e5c8c0c9bdbbce051dbc7fcc2e05e003f959aeb34d252dc3595b353ea2a9f900ff40f45d19cb4c8f7ab95a9faa01391f6b415c7780c786 languageName: node linkType: hard -"@opentelemetry/sdk-metrics@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/sdk-metrics@npm:1.26.0" +"@opentelemetry/sdk-metrics@npm:2.0.0": + version: 2.0.0 + resolution: "@opentelemetry/sdk-metrics@npm:2.0.0" dependencies: - "@opentelemetry/core": "npm:1.26.0" - "@opentelemetry/resources": "npm:1.26.0" + "@opentelemetry/core": "npm:2.0.0" + "@opentelemetry/resources": "npm:2.0.0" peerDependencies: - "@opentelemetry/api": ">=1.3.0 <1.10.0" - checksum: 10c0/640a0dcfa4af73a029ef57b51f8ecc1d08dfb0c3a5242552876fab36c7f9ae7c410fa52dbc5202a2d8675fcfe61df3c49205079963f1c11acfe42981d1d01a76 + "@opentelemetry/api": ">=1.9.0 <1.10.0" + checksum: 10c0/9a3c87738671f29a496a39d65b3ab0829b52d0f31c0be662ea575a8f77bc5444044fd01513c891abdff6bf6344a08730e18f79253a85e68962669f3e1fa12e72 languageName: node linkType: hard -"@opentelemetry/sdk-trace-base@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/sdk-trace-base@npm:1.26.0" +"@opentelemetry/sdk-trace-base@npm:2.0.0": + version: 2.0.0 + resolution: "@opentelemetry/sdk-trace-base@npm:2.0.0" dependencies: - "@opentelemetry/core": "npm:1.26.0" - "@opentelemetry/resources": "npm:1.26.0" - "@opentelemetry/semantic-conventions": "npm:1.27.0" + "@opentelemetry/core": "npm:2.0.0" + "@opentelemetry/resources": "npm:2.0.0" + "@opentelemetry/semantic-conventions": "npm:^1.29.0" peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 10c0/0d5fc19179375f1599edae91b7232f432faf8631746835a10d0cd0c4907d0ca3ed156cc8087d4e78efdfbd9ba5ba414cc9e1399172c2aa68d7e0cd5190394d87 + "@opentelemetry/api": ">=1.3.0 <1.10.0" + checksum: 10c0/c63cc052741e4cc01d084c883e24a1c0792f081a242e14e5cf526d5a3d96bac5974006fa0d8f902bd04f34ed9ce95a0d0f01b7fdb37fcc813cea9f818f2b8f43 languageName: node linkType: hard -"@opentelemetry/semantic-conventions@npm:1.27.0": - version: 1.27.0 - resolution: "@opentelemetry/semantic-conventions@npm:1.27.0" - checksum: 10c0/b859773ba06b7e53dd9c6b45a171bf3000e405733adbf462ae91004ed011bc80edb5beecb817fb344a085adfd06045ab5b729c9bd0f1479650ad377134fb798c +"@opentelemetry/semantic-conventions@npm:^1.29.0": + version: 1.33.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.33.0" + checksum: 10c0/b2d9d5e7e828140f00fec034462fcca190ace989937d6f7d8e9671e8313c70506a4e1d77d9e88e8e6032d24ba713a97672d99882a050ce6096a18fa9864624c5 languageName: node linkType: hard @@ -1879,14 +1934,14 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:^1.48.1": - version: 1.48.1 - resolution: "@playwright/test@npm:1.48.1" +"@playwright/test@npm:^1.52.0": + version: 1.52.0 + resolution: "@playwright/test@npm:1.52.0" dependencies: - playwright: "npm:1.48.1" + playwright: "npm:1.52.0" bin: playwright: cli.js - checksum: 10c0/32cedc3b2d375cb8f4a830bc820d7726b0235be7a6202e1d6ee46e739b83666271c47c100c11311cf5a916468c18e6a4dc526accf9ef090786e7614c2633b2b8 + checksum: 10c0/1c428b421593eb4f79b7c99783a389c3ab3526c9051ec772749f4fca61414dfa9f2344eba846faac5f238084aa96c836364a91d81d3034ac54924f239a93e247 languageName: node linkType: hard @@ -2001,261 +2056,267 @@ __metadata: languageName: node linkType: hard -"@react-aria/dialog@npm:3.5.18": - version: 3.5.18 - resolution: "@react-aria/dialog@npm:3.5.18" +"@react-aria/dialog@npm:3.5.23": + version: 3.5.23 + resolution: "@react-aria/dialog@npm:3.5.23" dependencies: - "@react-aria/focus": "npm:^3.18.3" - "@react-aria/overlays": "npm:^3.23.3" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/dialog": "npm:^3.5.13" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/interactions": "npm:^3.24.1" + "@react-aria/overlays": "npm:^3.26.1" + "@react-aria/utils": "npm:^3.28.1" + "@react-types/dialog": "npm:^3.5.16" + "@react-types/shared": "npm:^3.28.0" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/9c2fd70b9c704813608da24edb658139549eec19df421e235cf231218f9350a938edeffc30c19b08ab5af65f66120f427cfc6fde3d543951574d9fbaa0b85b60 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/6501509895665674c85ccef569fa5102f15c495c9809c499eb6633ab017491ed526a82b837de6eb903e1f6a1e207c9622d241ca455081f82166d8e9ab44b213d languageName: node linkType: hard -"@react-aria/focus@npm:3.18.3, @react-aria/focus@npm:^3.18.3": - version: 3.18.3 - resolution: "@react-aria/focus@npm:3.18.3" +"@react-aria/focus@npm:3.20.1": + version: 3.20.1 + resolution: "@react-aria/focus@npm:3.20.1" dependencies: - "@react-aria/interactions": "npm:^3.22.3" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/interactions": "npm:^3.24.1" + "@react-aria/utils": "npm:^3.28.1" + "@react-types/shared": "npm:^3.28.0" "@swc/helpers": "npm:^0.5.0" clsx: "npm:^2.0.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/b7a3e469ab646203ae3c70128ec21be10eb174f038e029e40e4e62fdd963ac5de7bf481a4a48be8a197834393d871d6ebbf1bcd6dcec6b7b93e4a10fe7c9e5ee + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/be982f6cff4531d12894f35b99c326835315d723bf736e36d044cbbffab3b35307620bdbcbd92454010f94a35d851e5976fa9318b4b38ad8d15b1dee447710d6 languageName: node linkType: hard -"@react-aria/focus@npm:^3.18.4": - version: 3.18.4 - resolution: "@react-aria/focus@npm:3.18.4" +"@react-aria/focus@npm:^3.20.1, @react-aria/focus@npm:^3.20.2": + version: 3.20.2 + resolution: "@react-aria/focus@npm:3.20.2" dependencies: - "@react-aria/interactions": "npm:^3.22.4" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/interactions": "npm:^3.25.0" + "@react-aria/utils": "npm:^3.28.2" + "@react-types/shared": "npm:^3.29.0" "@swc/helpers": "npm:^0.5.0" clsx: "npm:^2.0.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/141f8ef80060c5b58384af4af9446c0792618671e9f963942c3edc29bb15b7eb0ebb62cbe118135c7379c2732e86071aa7d7c890903a0ae411be07f2ec854e6a + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/83c7ce227affed990833664b75c99601390ea9c879a44032541447268da22508712c512f5a943f702aef07bfe1e0ea51f554f49db132f17d80b2da9cb71ec687 languageName: node linkType: hard -"@react-aria/i18n@npm:^3.12.3": - version: 3.12.3 - resolution: "@react-aria/i18n@npm:3.12.3" +"@react-aria/i18n@npm:^3.12.7, @react-aria/i18n@npm:^3.12.8": + version: 3.12.8 + resolution: "@react-aria/i18n@npm:3.12.8" dependencies: - "@internationalized/date": "npm:^3.5.6" - "@internationalized/message": "npm:^3.1.5" - "@internationalized/number": "npm:^3.5.4" - "@internationalized/string": "npm:^3.2.4" - "@react-aria/ssr": "npm:^3.9.6" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/shared": "npm:^3.25.0" + "@internationalized/date": "npm:^3.8.0" + "@internationalized/message": "npm:^3.1.7" + "@internationalized/number": "npm:^3.6.1" + "@internationalized/string": "npm:^3.2.6" + "@react-aria/ssr": "npm:^3.9.8" + "@react-aria/utils": "npm:^3.28.2" + "@react-types/shared": "npm:^3.29.0" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/98210abb15d598a6e4a35eae6df1d70ae6376ef9a5e1c3d298e03f4cc006df696785006323fa97ac57ce14c5b5c8d108690a5c2b187624cad5956778ffc25ca9 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/fc6ccd3a44b084a9ad4001f8adfd086598ed4be229b51c3702b3d289003a67cf0ffd1d93174c16e51bb1745930571ba277d3132a25e6f8d4cc610ef273da7bdb languageName: node linkType: hard -"@react-aria/interactions@npm:^3.22.3": - version: 3.22.3 - resolution: "@react-aria/interactions@npm:3.22.3" +"@react-aria/interactions@npm:^3.24.1, @react-aria/interactions@npm:^3.25.0": + version: 3.25.0 + resolution: "@react-aria/interactions@npm:3.25.0" dependencies: - "@react-aria/ssr": "npm:^3.9.6" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/ssr": "npm:^3.9.8" + "@react-aria/utils": "npm:^3.28.2" + "@react-stately/flags": "npm:^3.1.1" + "@react-types/shared": "npm:^3.29.0" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/3b683e97c9d41eb3540c0347314d43499a162cba05875ab717a5d92eb67f60e0f319844f4123fb54c2889ee65cceb86bf9708f1a9010f7df540d6f9dc2c1624a + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/091c7b7b2f94b2fefed440b97a986eff0320d5ba5e1a43c195a912e035aa8ce4d4be15f1852b2dffdbcc6a70190a74f0809e4d4cf3d7646b70c9f9b0fca829f5 languageName: node linkType: hard -"@react-aria/interactions@npm:^3.22.4": - version: 3.22.4 - resolution: "@react-aria/interactions@npm:3.22.4" +"@react-aria/overlays@npm:3.26.1": + version: 3.26.1 + resolution: "@react-aria/overlays@npm:3.26.1" dependencies: - "@react-aria/ssr": "npm:^3.9.6" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/focus": "npm:^3.20.1" + "@react-aria/i18n": "npm:^3.12.7" + "@react-aria/interactions": "npm:^3.24.1" + "@react-aria/ssr": "npm:^3.9.7" + "@react-aria/utils": "npm:^3.28.1" + "@react-aria/visually-hidden": "npm:^3.8.21" + "@react-stately/overlays": "npm:^3.6.14" + "@react-types/button": "npm:^3.11.0" + "@react-types/overlays": "npm:^3.8.13" + "@react-types/shared": "npm:^3.28.0" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/8455a68540a4085b71ed034cad5c349a7e756e44cd30d69d340d7f7a66ce1886882021fbcc8049a5d8aeba54b47cd2ca49a7bc4e6910aab2d13b41703d55c7a5 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/6dfb5de858643d87103261c9663fbf155f5d988c03d42fa601233906425cc0fa4d09c519b8b02e9addd48a44afb69a8eb1ee666fe2f2ec1a0dcc137f5a2c8bb4 languageName: node linkType: hard -"@react-aria/overlays@npm:3.23.3": - version: 3.23.3 - resolution: "@react-aria/overlays@npm:3.23.3" +"@react-aria/overlays@npm:^3.26.1": + version: 3.27.0 + resolution: "@react-aria/overlays@npm:3.27.0" dependencies: - "@react-aria/focus": "npm:^3.18.3" - "@react-aria/i18n": "npm:^3.12.3" - "@react-aria/interactions": "npm:^3.22.3" - "@react-aria/ssr": "npm:^3.9.6" - "@react-aria/utils": "npm:^3.25.3" - "@react-aria/visually-hidden": "npm:^3.8.16" - "@react-stately/overlays": "npm:^3.6.11" - "@react-types/button": "npm:^3.10.0" - "@react-types/overlays": "npm:^3.8.10" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/focus": "npm:^3.20.2" + "@react-aria/i18n": "npm:^3.12.8" + "@react-aria/interactions": "npm:^3.25.0" + "@react-aria/ssr": "npm:^3.9.8" + "@react-aria/utils": "npm:^3.28.2" + "@react-aria/visually-hidden": "npm:^3.8.22" + "@react-stately/overlays": "npm:^3.6.15" + "@react-types/button": "npm:^3.12.0" + "@react-types/overlays": "npm:^3.8.14" + "@react-types/shared": "npm:^3.29.0" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/ef3633acb5d1386852de7585b7de666d05f2d8d439bb2d7f17100ce960cdba2d117b46c56f1cc24f5b53a9fb842cdf98389097800251466ec667082b7f1a78e0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/2835dba32a055160341b0c04c8922c4cfb905d2c630508f9b6fc94844131e5359fd27e72f44b7d313339519285465cc6b08c720f2deb8511185d1bdd6c7b10f3 languageName: node linkType: hard -"@react-aria/overlays@npm:^3.23.3": - version: 3.23.4 - resolution: "@react-aria/overlays@npm:3.23.4" +"@react-aria/ssr@npm:^3.9.7, @react-aria/ssr@npm:^3.9.8": + version: 3.9.8 + resolution: "@react-aria/ssr@npm:3.9.8" dependencies: - "@react-aria/focus": "npm:^3.18.4" - "@react-aria/i18n": "npm:^3.12.3" - "@react-aria/interactions": "npm:^3.22.4" - "@react-aria/ssr": "npm:^3.9.6" - "@react-aria/utils": "npm:^3.25.3" - "@react-aria/visually-hidden": "npm:^3.8.17" - "@react-stately/overlays": "npm:^3.6.11" - "@react-types/button": "npm:^3.10.0" - "@react-types/overlays": "npm:^3.8.10" - "@react-types/shared": "npm:^3.25.0" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/174c8ef7d52123e8d979044dd36373314328086b2dc37a8b4f1fab8344be74c77925595dca86f720fd661eeffd5b632261f9a57e813d0f91460d1f08a090504e + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/848cac34f8584477ab6c91686ab447c7f7eee997e0b1771cc71298d15a4dd0400ce7b899ad8c1603a72d59a72f24a390964133693a3ba602828801d4dacc3f45 languageName: node linkType: hard -"@react-aria/ssr@npm:^3.9.6": - version: 3.9.6 - resolution: "@react-aria/ssr@npm:3.9.6" +"@react-aria/utils@npm:3.28.1": + version: 3.28.1 + resolution: "@react-aria/utils@npm:3.28.1" dependencies: + "@react-aria/ssr": "npm:^3.9.7" + "@react-stately/flags": "npm:^3.1.0" + "@react-stately/utils": "npm:^3.10.5" + "@react-types/shared": "npm:^3.28.0" "@swc/helpers": "npm:^0.5.0" + clsx: "npm:^2.0.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/be52f2909035e093d3f72cccde15b66b4eef2dc30c71dac46a1ea43d3847dace1a709114640bfa3e9aa72ba716749635fb72116f4da16f7d80248ca348146456 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/dcda0e238b3bbd9cd6a59563a0491320cf68f27b0b1e2bd4ee540ab4d7aaa7483cf20d96bbcd0041b5746598f4990239d1a697a6d57348607ac4cc452f69a147 languageName: node linkType: hard -"@react-aria/utils@npm:3.25.3, @react-aria/utils@npm:^3.25.3": - version: 3.25.3 - resolution: "@react-aria/utils@npm:3.25.3" +"@react-aria/utils@npm:^3.28.1, @react-aria/utils@npm:^3.28.2": + version: 3.28.2 + resolution: "@react-aria/utils@npm:3.28.2" dependencies: - "@react-aria/ssr": "npm:^3.9.6" - "@react-stately/utils": "npm:^3.10.4" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/ssr": "npm:^3.9.8" + "@react-stately/flags": "npm:^3.1.1" + "@react-stately/utils": "npm:^3.10.6" + "@react-types/shared": "npm:^3.29.0" "@swc/helpers": "npm:^0.5.0" clsx: "npm:^2.0.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/dc86ea48c24232f5c51d0b5317d947c4ccf01a8afb3bdc89cb880a7b0a695a04c8a7c615fb190664f4f3c7da8669ab2bd2f7cdfb2861339f5816cbd600249a84 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/69fc00d5dbd0fae9349a06cc3bcf327aa1edcb9049a491d0949b4de30c1b7669edc7150cc6885aa362af74a21b68c400b2965c3e117871264c47c379f4a98695 languageName: node linkType: hard -"@react-aria/visually-hidden@npm:^3.8.16": - version: 3.8.16 - resolution: "@react-aria/visually-hidden@npm:3.8.16" +"@react-aria/visually-hidden@npm:^3.8.21, @react-aria/visually-hidden@npm:^3.8.22": + version: 3.8.22 + resolution: "@react-aria/visually-hidden@npm:3.8.22" dependencies: - "@react-aria/interactions": "npm:^3.22.3" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/shared": "npm:^3.25.0" + "@react-aria/interactions": "npm:^3.25.0" + "@react-aria/utils": "npm:^3.28.2" + "@react-types/shared": "npm:^3.29.0" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/a33e262d7dbc33386e44ef5a26aab44da1856089d60b205c0b5d61995cb0b34efb543324ec008000004661541436dc2e2e79eda56c8d0a8222eebff4de2bfdc9 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/fbf527b526250865731737d3d421d796ab0a2a2bb0dbd2532a506693fe8902fa2a53b0afbb7ee4d295028621bdcbe8e50583d3d6d0f87d5ae014eb97953e0a2a languageName: node linkType: hard -"@react-aria/visually-hidden@npm:^3.8.17": - version: 3.8.17 - resolution: "@react-aria/visually-hidden@npm:3.8.17" +"@react-stately/flags@npm:^3.1.0, @react-stately/flags@npm:^3.1.1": + version: 3.1.1 + resolution: "@react-stately/flags@npm:3.1.1" dependencies: - "@react-aria/interactions": "npm:^3.22.4" - "@react-aria/utils": "npm:^3.25.3" - "@react-types/shared": "npm:^3.25.0" "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/411699c167686509583debc659e734ec3c123198570104abbd4fe74a5a60d93a305d73f6d761ec67846c672d1076d8f089a6f90d2e2653e1a334fe7344088bd5 + checksum: 10c0/3f64deb7b5daa787072f77e358624b65ad0627ee148d968423f3a5968b655d99671673927e21e4ba2ad0c9828d6ea75dae8ca421af90f9b41986a28341a4101f languageName: node linkType: hard -"@react-stately/overlays@npm:^3.6.11": - version: 3.6.11 - resolution: "@react-stately/overlays@npm:3.6.11" +"@react-stately/overlays@npm:^3.6.14, @react-stately/overlays@npm:^3.6.15": + version: 3.6.15 + resolution: "@react-stately/overlays@npm:3.6.15" dependencies: - "@react-stately/utils": "npm:^3.10.4" - "@react-types/overlays": "npm:^3.8.10" + "@react-stately/utils": "npm:^3.10.6" + "@react-types/overlays": "npm:^3.8.14" "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/559efc68bdb4512b8049f31a83e15404f7a306e960763570d876a08aee165656fdfbef4533251709e0576b1a7d6fd1f4e575ebfabc93738deb686c52571d36f9 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/4e75602378869027bb752500c771a732e5c9d7963f8101eb03941b350e6b6a74c0da20ab75de9daa28e3fa10f7230952636957caf16953c8b70fa8eb836a4657 languageName: node linkType: hard -"@react-stately/utils@npm:^3.10.4": - version: 3.10.4 - resolution: "@react-stately/utils@npm:3.10.4" +"@react-stately/utils@npm:^3.10.5, @react-stately/utils@npm:^3.10.6": + version: 3.10.6 + resolution: "@react-stately/utils@npm:3.10.6" dependencies: "@swc/helpers": "npm:^0.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/875c11424fadf4419caceeee13e5bfdee2b0c330fe0220c0ea9d68d570cc9a34525f2f124d977e519b397a738cd2f8e36b7b03a046e3e7da99460e99282977a4 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/09403746285a3866765c04bed5f2505e0bdbb971bdeb2eedee31ebf5bad3d0c0c0cef9d0dd5852fc6c58f6b552cbc90364eb32403245dfc04dc22c5e2fbfbe32 languageName: node linkType: hard -"@react-types/button@npm:^3.10.0": - version: 3.10.0 - resolution: "@react-types/button@npm:3.10.0" +"@react-types/button@npm:^3.11.0, @react-types/button@npm:^3.12.0": + version: 3.12.0 + resolution: "@react-types/button@npm:3.12.0" dependencies: - "@react-types/shared": "npm:^3.25.0" + "@react-types/shared": "npm:^3.29.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/89395334f286f1a97a584715bbb87e7bb017d7366aa73ce0cec36ec8cb59059dec1f5afe3ab44f3972e0c50f44daeb2d531b10191d6f2b7f70c3ce7d3c94c0da + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/6412c06f1a590581283d8cfe7661bbc9f1916b827ecb332fc7d65c918f9e52496fd11ce7859742532ab0d75b8746098e9fe04561efc700969d41e59179f15c30 languageName: node linkType: hard -"@react-types/dialog@npm:^3.5.13": - version: 3.5.13 - resolution: "@react-types/dialog@npm:3.5.13" +"@react-types/dialog@npm:^3.5.16": + version: 3.5.17 + resolution: "@react-types/dialog@npm:3.5.17" dependencies: - "@react-types/overlays": "npm:^3.8.10" - "@react-types/shared": "npm:^3.25.0" + "@react-types/overlays": "npm:^3.8.14" + "@react-types/shared": "npm:^3.29.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/9cb9043694a1e48fbf0221effd28da602c314c64d653455d5616d8384adf93c78c87453a5b210ff587a221836adb5e2e7f9cb5b3f9a04c3522ad35dadba5d39a + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/44245c862f44a296e2692a757205aad40557040b1412e2afa1b22e77624772f699b1acb35e24b955f580df93cd84c85917e249ecda216ab53c4c33c0734c3c11 languageName: node linkType: hard -"@react-types/overlays@npm:^3.8.10": - version: 3.8.10 - resolution: "@react-types/overlays@npm:3.8.10" +"@react-types/overlays@npm:^3.8.13, @react-types/overlays@npm:^3.8.14": + version: 3.8.14 + resolution: "@react-types/overlays@npm:3.8.14" dependencies: - "@react-types/shared": "npm:^3.25.0" + "@react-types/shared": "npm:^3.29.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/753fd637dab9e189403cab8567a88fce183de8013dcec705fe3ed813facaa7a95fa754af5a45f364787c4351132d27ebaf3184e0e14955c47bf80b82560c3539 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/a30a90997d40139a99d85b5a2f5e07ead48163e909f25e0ca1ff4664ebf8bd3bb59cebd3124b0eeba2e45226d36a54265eae5946dc587ec168acae47ed8f8090 languageName: node linkType: hard -"@react-types/shared@npm:^3.25.0": - version: 3.25.0 - resolution: "@react-types/shared@npm:3.25.0" +"@react-types/shared@npm:^3.28.0, @react-types/shared@npm:^3.29.0": + version: 3.29.0 + resolution: "@react-types/shared@npm:3.29.0" peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - checksum: 10c0/d168f6b404c345928ef8ead94f0cecd3831d8f6df708dbe897ac62d566949a0931c3b0d95ef6dd02bc5af05b183781b531e6f041ffd1d320bc2cab7697fd27d0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/a629e4fe9ce9062de603a1e01ae90a999b07f1367143f3b66921c8a0c8e59d90a528263be74d930162ed4a78a725a253c48b6f3b00a85767549e86cac4cc8218 languageName: node linkType: hard @@ -2273,13 +2334,6 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/merge-streams@npm:^2.1.0": - version: 2.3.0 - resolution: "@sindresorhus/merge-streams@npm:2.3.0" - checksum: 10c0/69ee906f3125fb2c6bb6ec5cdd84e8827d93b49b3892bce8b62267116cc7e197b5cccf20c160a1d32c26014ecd14470a72a5e3ee37a58f1d6dadc0db1ccf3894 - languageName: node - linkType: hard - "@sinonjs/commons@npm:^3.0.0": version: 3.0.1 resolution: "@sinonjs/commons@npm:3.0.1" @@ -2298,94 +2352,94 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-darwin-arm64@npm:1.7.39" +"@swc/core-darwin-arm64@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-darwin-arm64@npm:1.11.24" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-darwin-x64@npm:1.7.39" +"@swc/core-darwin-x64@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-darwin-x64@npm:1.11.24" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.39" +"@swc/core-linux-arm-gnueabihf@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.11.24" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.39" +"@swc/core-linux-arm64-gnu@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-linux-arm64-gnu@npm:1.11.24" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.39" +"@swc/core-linux-arm64-musl@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-linux-arm64-musl@npm:1.11.24" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.39" +"@swc/core-linux-x64-gnu@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-linux-x64-gnu@npm:1.11.24" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-linux-x64-musl@npm:1.7.39" +"@swc/core-linux-x64-musl@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-linux-x64-musl@npm:1.11.24" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.39" +"@swc/core-win32-arm64-msvc@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-win32-arm64-msvc@npm:1.11.24" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.39" +"@swc/core-win32-ia32-msvc@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-win32-ia32-msvc@npm:1.11.24" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.7.39": - version: 1.7.39 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.39" +"@swc/core-win32-x64-msvc@npm:1.11.24": + version: 1.11.24 + resolution: "@swc/core-win32-x64-msvc@npm:1.11.24" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.7.39": - version: 1.7.39 - resolution: "@swc/core@npm:1.7.39" +"@swc/core@npm:^1.11.24": + version: 1.11.24 + resolution: "@swc/core@npm:1.11.24" dependencies: - "@swc/core-darwin-arm64": "npm:1.7.39" - "@swc/core-darwin-x64": "npm:1.7.39" - "@swc/core-linux-arm-gnueabihf": "npm:1.7.39" - "@swc/core-linux-arm64-gnu": "npm:1.7.39" - "@swc/core-linux-arm64-musl": "npm:1.7.39" - "@swc/core-linux-x64-gnu": "npm:1.7.39" - "@swc/core-linux-x64-musl": "npm:1.7.39" - "@swc/core-win32-arm64-msvc": "npm:1.7.39" - "@swc/core-win32-ia32-msvc": "npm:1.7.39" - "@swc/core-win32-x64-msvc": "npm:1.7.39" + "@swc/core-darwin-arm64": "npm:1.11.24" + "@swc/core-darwin-x64": "npm:1.11.24" + "@swc/core-linux-arm-gnueabihf": "npm:1.11.24" + "@swc/core-linux-arm64-gnu": "npm:1.11.24" + "@swc/core-linux-arm64-musl": "npm:1.11.24" + "@swc/core-linux-x64-gnu": "npm:1.11.24" + "@swc/core-linux-x64-musl": "npm:1.11.24" + "@swc/core-win32-arm64-msvc": "npm:1.11.24" + "@swc/core-win32-ia32-msvc": "npm:1.11.24" + "@swc/core-win32-x64-msvc": "npm:1.11.24" "@swc/counter": "npm:^0.1.3" - "@swc/types": "npm:^0.1.13" + "@swc/types": "npm:^0.1.21" peerDependencies: - "@swc/helpers": "*" + "@swc/helpers": ">=0.5.17" dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -2410,7 +2464,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10c0/9997aad27290107b9fb864fe4bdc38a376e788c073e6edb62b7ea06d1fa8dde8f707c9ea6b3cc82f4cbfa49a38bd228f83503d4e8318e8a9917e947497e253af + checksum: 10c0/26c524a505927ebd4229ec20fecf5f38b6a3265f22f3ede3a334834b37d01eedd133676e231d19ecaae2923bdfb0fa66acb925ffaee6e472e36ed81a7ace90f7 languageName: node linkType: hard @@ -2421,7 +2475,7 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:^0.5.0, @swc/helpers@npm:^0.5.13": +"@swc/helpers@npm:^0.5.0": version: 0.5.13 resolution: "@swc/helpers@npm:0.5.13" dependencies: @@ -2430,25 +2484,34 @@ __metadata: languageName: node linkType: hard -"@swc/jest@npm:^0.2.36": - version: 0.2.36 - resolution: "@swc/jest@npm:0.2.36" +"@swc/helpers@npm:^0.5.17": + version: 0.5.17 + resolution: "@swc/helpers@npm:0.5.17" + dependencies: + tslib: "npm:^2.8.0" + checksum: 10c0/fe1f33ebb968558c5a0c595e54f2e479e4609bff844f9ca9a2d1ffd8dd8504c26f862a11b031f48f75c95b0381c2966c3dd156e25942f90089badd24341e7dbb + languageName: node + linkType: hard + +"@swc/jest@npm:^0.2.38": + version: 0.2.38 + resolution: "@swc/jest@npm:0.2.38" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" "@swc/counter": "npm:^0.1.3" jsonc-parser: "npm:^3.2.0" peerDependencies: "@swc/core": "*" - checksum: 10c0/7f1993f9201420bb499c92ab28797352bcbf9e3a6c7b5a1806fdc34c9c3b46ea9e5b2f070c0e13fcf7f3c3fadbbc38777840baabb178f589bf1f67543763adb6 + checksum: 10c0/d92078dd6a32c2c1106d4eeb6b78340bedad9c2a27f1aa29b69ba638942d34f1dbf6eb4ef75692d2297c66e7442e9b355ab6b879540f9cf8a37f644a5a6e6924 languageName: node linkType: hard -"@swc/types@npm:^0.1.13": - version: 0.1.13 - resolution: "@swc/types@npm:0.1.13" +"@swc/types@npm:^0.1.21": + version: 0.1.21 + resolution: "@swc/types@npm:0.1.21" dependencies: "@swc/counter": "npm:^0.1.3" - checksum: 10c0/f85a850dead981ca9a26ae366529f2b383fa26324ffcbbee46d7b48399e6ed36d6a6a3d55398f17f87c65f550e28d642a35877d40f389c78765a31ecdfc88bd9 + checksum: 10c0/2baa89c824426e0de0c84e212278010e2df8dc2d6ffaa6f1e306e1b2930c6404b3d3f8989307e8c42ceb95ac143ab7a80be138af6a014d5c782dce5be94dcd5e languageName: node linkType: hard @@ -2471,9 +2534,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:^6.6.2": - version: 6.6.2 - resolution: "@testing-library/jest-dom@npm:6.6.2" +"@testing-library/jest-dom@npm:^6.6.3": + version: 6.6.3 + resolution: "@testing-library/jest-dom@npm:6.6.3" dependencies: "@adobe/css-tools": "npm:^4.4.0" aria-query: "npm:^5.0.0" @@ -2482,27 +2545,27 @@ __metadata: dom-accessibility-api: "npm:^0.6.3" lodash: "npm:^4.17.21" redent: "npm:^3.0.0" - checksum: 10c0/1c51390f97063ce8b06a7267534aac0d6ac9b1f27042a0ae43ca52d886b32c9d2b0ff85e62e7cfeb7e1f089ef03c4d75fda4f2b7b1f08afb4bdb09a5d56566d9 + checksum: 10c0/5566b6c0b7b0709bc244aec3aa3dc9e5f4663e8fb2b99d8cd456fc07279e59db6076cbf798f9d3099a98fca7ef4cd50e4e1f4c4dec5a60a8fad8d24a638a5bf6 languageName: node linkType: hard -"@testing-library/react@npm:^16.0.1": - version: 16.0.1 - resolution: "@testing-library/react@npm:16.0.1" +"@testing-library/react@npm:^16.3.0": + version: 16.3.0 + resolution: "@testing-library/react@npm:16.3.0" dependencies: "@babel/runtime": "npm:^7.12.5" peerDependencies: "@testing-library/dom": ^10.0.0 - "@types/react": ^18.0.0 - "@types/react-dom": ^18.0.0 - react: ^18.0.0 - react-dom: ^18.0.0 + "@types/react": ^18.0.0 || ^19.0.0 + "@types/react-dom": ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true "@types/react-dom": optional: true - checksum: 10c0/67d05dec5ad5a2e6f92b6a3234af785435c7bb62bdbf12f3bfc89c9bca0c871a189e88c4ba023ed4cea504704c87c6ac7e86e24a3962df6c521ae89b62f48ff7 + checksum: 10c0/3a2cb1f87c9a67e1ebbbcfd99b94b01e496fc35147be8bc5d8bf07a699c7d523a09d57ef2f7b1d91afccd1a28e21eda3b00d80187fbb51b1de01e422592d845e languageName: node linkType: hard @@ -2598,23 +2661,40 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^8.56.10": - version: 8.56.12 - resolution: "@types/eslint@npm:8.56.12" +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "npm:*" + "@types/estree": "npm:*" + checksum: 10c0/a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc + languageName: node + linkType: hard + +"@types/eslint@npm:*, @types/eslint@npm:^9.6.1": + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" dependencies: "@types/estree": "npm:*" "@types/json-schema": "npm:*" - checksum: 10c0/e4ca426abe9d55f82b69a3250bec78b6d340ad1e567f91c97ecc59d3b2d6a1d8494955ac62ad0ea14b97519db580611c02be8277cbea370bdfb0f96aa2910504 + checksum: 10c0/69ba24fee600d1e4c5abe0df086c1a4d798abf13792d8cfab912d76817fe1a894359a1518557d21237fbaf6eda93c5ab9309143dee4c59ef54336d1b3570420e languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.5": +"@types/estree@npm:*": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d languageName: node linkType: hard +"@types/estree@npm:^1.0.6": + version: 1.0.7 + resolution: "@types/estree@npm:1.0.7" + checksum: 10c0/be815254316882f7c40847336cd484c3bc1c3e34f710d197160d455dc9d6d050ffbf4c3bc76585dba86f737f020ab20bdb137ebe0e9116b0c86c7c0342221b8c + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.3": version: 4.1.9 resolution: "@types/graceful-fs@npm:4.1.9" @@ -2631,16 +2711,6 @@ __metadata: languageName: node linkType: hard -"@types/hoist-non-react-statics@npm:^3.3.1": - version: 3.3.5 - resolution: "@types/hoist-non-react-statics@npm:3.3.5" - dependencies: - "@types/react": "npm:*" - hoist-non-react-statics: "npm:^3.3.0" - checksum: 10c0/2a3b64bf3d9817d7830afa60ee314493c475fb09570a64e7737084cd482d2177ebdddf888ce837350bac51741278b077683facc9541f052d4bbe8487b4e3e618 - languageName: node - linkType: hard - "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" @@ -2676,12 +2746,12 @@ __metadata: languageName: node linkType: hard -"@types/jquery@npm:3.5.31": - version: 3.5.31 - resolution: "@types/jquery@npm:3.5.31" +"@types/jquery@npm:3.5.32": + version: 3.5.32 + resolution: "@types/jquery@npm:3.5.32" dependencies: "@types/sizzle": "npm:*" - checksum: 10c0/94a6e209382908e102199aa32d261147c97bf578693a6e7657d12a35e1304940b18bebadb21c207cd3efa51b4d16eb117be36af235c27f399be09cc56ed125b5 + checksum: 10c0/4a17ad6819b89026c21323656ab01b0b263f9d470910a87c8740920ff98319d503c7352b85b50134a39724ecbfccabc73aa4c741dfdd460cf8bbe714f9259054 languageName: node linkType: hard @@ -2703,24 +2773,24 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db languageName: node linkType: hard -"@types/lodash@npm:4.17.10": - version: 4.17.10 - resolution: "@types/lodash@npm:4.17.10" - checksum: 10c0/149b2b9fcc277204393423ed14df28894980c2322ec522fc23f2c6f7edef6ee8d876ee09ed4520f45d128adc0a7a6e618bb0017668349716cd99c6ef54a21621 +"@types/lodash@npm:4.17.15": + version: 4.17.15 + resolution: "@types/lodash@npm:4.17.15" + checksum: 10c0/2eb2dc6d231f5fb4603d176c08c8d7af688f574d09af47466a179cd7812d9f64144ba74bb32ca014570ffdc544eedc51b7a5657212bad083b6eecbd72223f9bb languageName: node linkType: hard -"@types/lodash@npm:^4.17.12": - version: 4.17.12 - resolution: "@types/lodash@npm:4.17.12" - checksum: 10c0/106008f628ea3c74ed7ee7842dee79e230c84e3721ac38c293700031adb5bd130113048c22f476dbde0d0c119506b0fc447d4bd62eca922682d11e00e1377967 +"@types/lodash@npm:^4.17.16": + version: 4.17.16 + resolution: "@types/lodash@npm:4.17.16" + checksum: 10c0/cf017901b8ab1d7aabc86d5189d9288f4f99f19a75caf020c0e2c77b8d4cead4db0d0b842d009b029339f92399f49f34377dd7c2721053388f251778b4c23534 languageName: node linkType: hard @@ -2733,12 +2803,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.7.9": - version: 22.7.9 - resolution: "@types/node@npm:22.7.9" +"@types/node@npm:^22.15.17": + version: 22.15.17 + resolution: "@types/node@npm:22.15.17" dependencies: - undici-types: "npm:~6.19.2" - checksum: 10c0/2d1917702b9d9ede8e4d8151cd8b1af8bc147d543486474ffbe0742e38764ea73105939e6a767addf7a4c39e842e16eae762bff90617d7b7f9ee3fbbb2d23bfa + undici-types: "npm:~6.21.0" + checksum: 10c0/fb92aa10b628683c5b965749f955bc2322485ecb0ea6c2f4cae5f2c7537a16834607e67083a9e9281faaae8d7dee9ada8d6a5c0de9a52c17d82912ef00c0fdd4 languageName: node linkType: hard @@ -2826,6 +2896,13 @@ __metadata: languageName: node linkType: hard +"@types/systemjs@npm:6.15.1": + version: 6.15.1 + resolution: "@types/systemjs@npm:6.15.1" + checksum: 10c0/e403ed96f3e5bdb81bd818c5a18f89bd84535b64d9fa4a8a6a12344debf61a62222c716a4a4028c24d9b44f0eb506599fbd82228fd06122689d81ede4f9530b4 + languageName: node + linkType: hard + "@types/tough-cookie@npm:*": version: 4.0.5 resolution: "@types/tough-cookie@npm:4.0.5" @@ -2833,10 +2910,17 @@ __metadata: languageName: node linkType: hard -"@types/use-sync-external-store@npm:^0.0.3": - version: 0.0.3 - resolution: "@types/use-sync-external-store@npm:0.0.3" - checksum: 10c0/82824c1051ba40a00e3d47964cdf4546a224e95f172e15a9c62aa3f118acee1c7518b627a34f3aa87298a2039f982e8509f92bfcc18bea7c255c189c293ba547 +"@types/trusted-types@npm:^2.0.7": + version: 2.0.7 + resolution: "@types/trusted-types@npm:2.0.7" + checksum: 10c0/4c4855f10de7c6c135e0d32ce462419d8abbbc33713b31d294596c0cc34ae1fa6112a2f9da729c8f7a20707782b0d69da3b1f8df6645b0366d08825ca1522e0c + languageName: node + linkType: hard + +"@types/use-sync-external-store@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/use-sync-external-store@npm:0.0.6" + checksum: 10c0/77c045a98f57488201f678b181cccd042279aff3da34540ad242f893acc52b358bd0a8207a321b8ac09adbcef36e3236944390e2df4fcedb556ce7bb2a88f2a8 languageName: node linkType: hard @@ -2916,187 +3000,187 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/ast@npm:1.12.1" +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" dependencies: - "@webassemblyjs/helper-numbers": "npm:1.11.6" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" - checksum: 10c0/ba7f2b96c6e67e249df6156d02c69eb5f1bd18d5005303cdc42accb053bebbbde673826e54db0437c9748e97abd218366a1d13fa46859b23cde611b6b409998c + "@webassemblyjs/helper-numbers": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + checksum: 10c0/67a59be8ed50ddd33fbb2e09daa5193ac215bf7f40a9371be9a0d9797a114d0d1196316d2f3943efdb923a3d809175e1563a3cb80c814fb8edccd1e77494972b languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" - checksum: 10c0/37fe26f89e18e4ca0e7d89cfe3b9f17cfa327d7daf906ae01400416dbb2e33c8a125b4dc55ad7ff405e5fcfb6cf0d764074c9bc532b9a31a71e762be57d2ea0a +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: 10c0/0e88bdb8b50507d9938be64df0867f00396b55eba9df7d3546eb5dc0ca64d62e06f8d881ec4a6153f2127d0f4c11d102b6e7d17aec2f26bb5ff95a5e60652412 languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" - checksum: 10c0/a681ed51863e4ff18cf38d223429f414894e5f7496856854d9a886eeddcee32d7c9f66290f2919c9bb6d2fc2b2fae3f989b6a1e02a81e829359738ea0c4d371a +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 10c0/31be497f996ed30aae4c08cac3cce50c8dcd5b29660383c0155fce1753804fc55d47fcba74e10141c7dd2899033164e117b3bcfcda23a6b043e4ded4f1003dfb languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" - checksum: 10c0/0270724afb4601237410f7fd845ab58ccda1d5456a8783aadfb16eaaf3f2c9610c28e4a5bcb6ad880cde5183c82f7f116d5ccfc2310502439d33f14b6888b48a +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: 10c0/0d54105dc373c0fe6287f1091e41e3a02e36cdc05e8cf8533cdc16c59ff05a646355415893449d3768cda588af451c274f13263300a251dc11a575bc4c9bd210 languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" dependencies: - "@webassemblyjs/floating-point-hex-parser": "npm:1.11.6" - "@webassemblyjs/helper-api-error": "npm:1.11.6" + "@webassemblyjs/floating-point-hex-parser": "npm:1.13.2" + "@webassemblyjs/helper-api-error": "npm:1.13.2" "@xtuc/long": "npm:4.2.2" - checksum: 10c0/c7d5afc0ff3bd748339b466d8d2f27b908208bf3ff26b2e8e72c39814479d486e0dca6f3d4d776fd9027c1efe05b5c0716c57a23041eb34473892b2731c33af3 + checksum: 10c0/9c46852f31b234a8fb5a5a9d3f027bc542392a0d4de32f1a9c0075d5e8684aa073cb5929b56df565500b3f9cc0a2ab983b650314295b9bf208d1a1651bfc825a languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" - checksum: 10c0/79d2bebdd11383d142745efa32781249745213af8e022651847382685ca76709f83e1d97adc5f0d3c2b8546bf02864f8b43a531fdf5ca0748cb9e4e0ef2acaa5 +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 10c0/c4355d14f369b30cf3cbdd3acfafc7d0488e086be6d578e3c9780bd1b512932352246be96e034e2a7fcfba4f540ec813352f312bfcbbfe5bcfbf694f82ccc682 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" dependencies: - "@webassemblyjs/ast": "npm:1.12.1" - "@webassemblyjs/helper-buffer": "npm:1.12.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" - "@webassemblyjs/wasm-gen": "npm:1.12.1" - checksum: 10c0/0546350724d285ae3c26e6fc444be4c3b5fb824f3be0ec8ceb474179dc3f4430336dd2e36a44b3e3a1a6815960e5eec98cd9b3a8ec66dc53d86daedd3296a6a2 + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + checksum: 10c0/1f9b33731c3c6dbac3a9c483269562fa00d1b6a4e7133217f40e83e975e636fd0f8736e53abd9a47b06b66082ecc976c7384391ab0a68e12d509ea4e4b948d64 languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/ieee754@npm:1.11.6" +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" dependencies: "@xtuc/ieee754": "npm:^1.2.0" - checksum: 10c0/59de0365da450322c958deadade5ec2d300c70f75e17ae55de3c9ce564deff5b429e757d107c7ec69bd0ba169c6b6cc2ff66293ab7264a7053c829b50ffa732f + checksum: 10c0/2e732ca78c6fbae3c9b112f4915d85caecdab285c0b337954b180460290ccd0fb00d2b1dc4bb69df3504abead5191e0d28d0d17dfd6c9d2f30acac8c4961c8a7 languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/leb128@npm:1.11.6" +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" dependencies: "@xtuc/long": "npm:4.2.2" - checksum: 10c0/cb344fc04f1968209804de4da018679c5d4708a03b472a33e0fa75657bb024978f570d3ccf9263b7f341f77ecaa75d0e051b9cd4b7bb17a339032cfd1c37f96e + checksum: 10c0/dad5ef9e383c8ab523ce432dfd80098384bf01c45f70eb179d594f85ce5db2f80fa8c9cba03adafd85684e6d6310f0d3969a882538975989919329ac4c984659 languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/utf8@npm:1.11.6" - checksum: 10c0/14d6c24751a89ad9d801180b0d770f30a853c39f035a15fbc96266d6ac46355227abd27a3fd2eeaa97b4294ced2440a6b012750ae17bafe1a7633029a87b6bee +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 10c0/d3fac9130b0e3e5a1a7f2886124a278e9323827c87a2b971e6d0da22a2ba1278ac9f66a4f2e363ecd9fac8da42e6941b22df061a119e5c0335f81006de9ee799 languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" +"@webassemblyjs/wasm-edit@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" dependencies: - "@webassemblyjs/ast": "npm:1.12.1" - "@webassemblyjs/helper-buffer": "npm:1.12.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" - "@webassemblyjs/helper-wasm-section": "npm:1.12.1" - "@webassemblyjs/wasm-gen": "npm:1.12.1" - "@webassemblyjs/wasm-opt": "npm:1.12.1" - "@webassemblyjs/wasm-parser": "npm:1.12.1" - "@webassemblyjs/wast-printer": "npm:1.12.1" - checksum: 10c0/972f5e6c522890743999e0ed45260aae728098801c6128856b310dd21f1ee63435fc7b518e30e0ba1cdafd0d1e38275829c1e4451c3536a1d9e726e07a5bba0b + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/helper-wasm-section": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-opt": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + "@webassemblyjs/wast-printer": "npm:1.14.1" + checksum: 10c0/5ac4781086a2ca4b320bdbfd965a209655fe8a208ca38d89197148f8597e587c9a2c94fb6bd6f1a7dbd4527c49c6844fcdc2af981f8d793a97bf63a016aa86d2 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" dependencies: - "@webassemblyjs/ast": "npm:1.12.1" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" - "@webassemblyjs/ieee754": "npm:1.11.6" - "@webassemblyjs/leb128": "npm:1.11.6" - "@webassemblyjs/utf8": "npm:1.11.6" - checksum: 10c0/1e257288177af9fa34c69cab94f4d9036ebed611f77f3897c988874e75182eeeec759c79b89a7a49dd24624fc2d3d48d5580b62b67c4a1c9bfbdcd266b281c16 + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10c0/d678810d7f3f8fecb2e2bdadfb9afad2ec1d2bc79f59e4711ab49c81cec578371e22732d4966f59067abe5fba8e9c54923b57060a729d28d408e608beef67b10 languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" dependencies: - "@webassemblyjs/ast": "npm:1.12.1" - "@webassemblyjs/helper-buffer": "npm:1.12.1" - "@webassemblyjs/wasm-gen": "npm:1.12.1" - "@webassemblyjs/wasm-parser": "npm:1.12.1" - checksum: 10c0/992a45e1f1871033c36987459436ab4e6430642ca49328e6e32a13de9106fe69ae6c0ac27d7050efd76851e502d11cd1ac0e06b55655dfa889ad82f11a2712fb + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + checksum: 10c0/515bfb15277ee99ba6b11d2232ddbf22aed32aad6d0956fe8a0a0a004a1b5a3a277a71d9a3a38365d0538ac40d1b7b7243b1a244ad6cd6dece1c1bb2eb5de7ee languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" +"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.14.1" dependencies: - "@webassemblyjs/ast": "npm:1.12.1" - "@webassemblyjs/helper-api-error": "npm:1.11.6" - "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" - "@webassemblyjs/ieee754": "npm:1.11.6" - "@webassemblyjs/leb128": "npm:1.11.6" - "@webassemblyjs/utf8": "npm:1.11.6" - checksum: 10c0/e85cec1acad07e5eb65b92d37c8e6ca09c6ca50d7ca58803a1532b452c7321050a0328c49810c337cc2dfd100c5326a54d5ebd1aa5c339ebe6ef10c250323a0e + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-api-error": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10c0/95427b9e5addbd0f647939bd28e3e06b8deefdbdadcf892385b5edc70091bf9b92fa5faac3fce8333554437c5d85835afef8c8a7d9d27ab6ba01ffab954db8c6 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wast-printer@npm:1.12.1" +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" dependencies: - "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/ast": "npm:1.14.1" "@xtuc/long": "npm:4.2.2" - checksum: 10c0/39bf746eb7a79aa69953f194943bbc43bebae98bd7cadd4d8bc8c0df470ca6bf9d2b789effaa180e900fab4e2691983c1f7d41571458bd2a26267f2f0c73705a + checksum: 10c0/8d7768608996a052545251e896eac079c98e0401842af8dd4de78fba8d90bd505efb6c537e909cd6dae96e09db3fa2e765a6f26492553a675da56e2db51f9d24 languageName: node linkType: hard -"@webpack-cli/configtest@npm:^2.1.1": - version: 2.1.1 - resolution: "@webpack-cli/configtest@npm:2.1.1" +"@webpack-cli/configtest@npm:^3.0.1": + version: 3.0.1 + resolution: "@webpack-cli/configtest@npm:3.0.1" peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - checksum: 10c0/a8da1f15702cb289807da99235ed95326ed7dabeb1a36ca59bd3a5dbe6adcc946a9a2767936050fc4d5ed14efab0e5b5a641dfe8e3d862c36caa5791ac12759d + webpack: ^5.82.0 + webpack-cli: 6.x.x + checksum: 10c0/edd24ecfc429298fe86446f7d7daedfe82d72e7f6236c81420605484fdadade5d59c6bcef3d76bd724e11d9727f74e75de183223ae62d3a568b2d54199688cbe languageName: node linkType: hard -"@webpack-cli/info@npm:^2.0.2": - version: 2.0.2 - resolution: "@webpack-cli/info@npm:2.0.2" +"@webpack-cli/info@npm:^3.0.1": + version: 3.0.1 + resolution: "@webpack-cli/info@npm:3.0.1" peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - checksum: 10c0/ca88a35604dc9aedac7c26e8f6793c5039dc1eea2b12a85fbfd669a5f21ecf9cf169d7fd157ea366a62666e3fa05b776306a96742ac61a9868f44fdce6b40f7d + webpack: ^5.82.0 + webpack-cli: 6.x.x + checksum: 10c0/b23b94e7dc8c93e79248f20d5f1bd0fbb7b9ba4b012803e2fdc5440b8f2ee1f3eca7f4933bbca346c8168673bf572b1858169a3cb2c17d9b8bcd833d480c2170 languageName: node linkType: hard -"@webpack-cli/serve@npm:^2.0.5": - version: 2.0.5 - resolution: "@webpack-cli/serve@npm:2.0.5" +"@webpack-cli/serve@npm:^3.0.1": + version: 3.0.1 + resolution: "@webpack-cli/serve@npm:3.0.1" peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + webpack: ^5.82.0 + webpack-cli: 6.x.x peerDependenciesMeta: webpack-dev-server: optional: true - checksum: 10c0/36079d34971ff99a58b66b13f4184dcdd8617853c48cccdbc3f9ab7ea9e5d4fcf504e873c298ea7aa15e0b51ad2c4aee4d7a70bd7d9364e60f57b0eb93ca15fc + checksum: 10c0/65245e45bfa35e11a5b30631b99cfed0c1b39b2cc8320fa2d2a4185264535618827d349ec032c58af4201d6236cbc43bec894fcb840fdd06314611537a80e210 languageName: node linkType: hard @@ -3152,15 +3236,6 @@ __metadata: languageName: node linkType: hard -"acorn-import-attributes@npm:^1.9.5": - version: 1.9.5 - resolution: "acorn-import-attributes@npm:1.9.5" - peerDependencies: - acorn: ^8 - checksum: 10c0/5926eaaead2326d5a86f322ff1b617b0f698aa61dc719a5baa0e9d955c9885cc71febac3fb5bacff71bbf2c4f9c12db2056883c68c53eb962c048b952e1e013d - languageName: node - linkType: hard - "acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": version: 8.3.4 resolution: "acorn-walk@npm:8.3.4" @@ -3170,7 +3245,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2": +"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -3179,12 +3254,12 @@ __metadata: languageName: node linkType: hard -"add-dom-event-listener@npm:^1.1.0": - version: 1.1.0 - resolution: "add-dom-event-listener@npm:1.1.0" - dependencies: - object-assign: "npm:4.x" - checksum: 10c0/79e490bebebbc1dbded6d86240d1532cd319a4cdd2b7682e46411bd6224bb2d3ea41661eeccebbc53a004005dac8edaaf5c56c7981d3697ec8c5c83008f2b6e7 +"acorn@npm:^8.14.0": + version: 8.14.1 + resolution: "acorn@npm:8.14.1" + bin: + acorn: bin/acorn + checksum: 10c0/dbd36c1ed1d2fa3550140000371fcf721578095b18777b85a79df231ca093b08edc6858d75d6e48c73e431c174dcf9214edbd7e6fa5911b93bd8abfa54e47123 languageName: node linkType: hard @@ -3336,13 +3411,6 @@ __metadata: languageName: node linkType: hard -"ansicolor@npm:1.1.100": - version: 1.1.100 - resolution: "ansicolor@npm:1.1.100" - checksum: 10c0/2c2584195934b1e367601a569ee95fa57d7a8472ccfe0d40db97b1dae100d4965db3d3d3051603bf4b822bf5bb4a5df1fcb6d149de06964c888bef26ce79943a - languageName: node - linkType: hard - "antlr4@npm:^4.13.2": version: 4.13.2 resolution: "antlr4@npm:4.13.2" @@ -3350,7 +3418,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:^3.1.1, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3, anymatch@npm:^3.1.1": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -3392,13 +3460,6 @@ __metadata: languageName: node linkType: hard -"array-tree-filter@npm:^2.1.0": - version: 2.1.0 - resolution: "array-tree-filter@npm:2.1.0" - checksum: 10c0/6fd1677522b20d10fd918e446db40c3e313eac9ed77ca8a5ea45f43b69c40300655c69760c159fd2cd189985323231a5077858c59fa3ca9c6c2439635eb8557e - languageName: node - linkType: hard - "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -3422,10 +3483,10 @@ __metadata: languageName: node linkType: hard -"attr-accept@npm:^2.2.2": - version: 2.2.2 - resolution: "attr-accept@npm:2.2.2" - checksum: 10c0/f77c073ac9616a783f2df814a56f65f1c870193e8da6097139e30b3be84ecc19fb835b93e81315d1da4f19e80721f14e8c8075014205e00abd37b856fe030b80 +"attr-accept@npm:^2.2.4": + version: 2.2.5 + resolution: "attr-accept@npm:2.2.5" + checksum: 10c0/9b4cb82213925cab2d568f71b3f1c7a7778f9192829aac39a281e5418cd00c04a88f873eb89f187e0bf786fa34f8d52936f178e62cbefb9254d57ecd88ada99b languageName: node linkType: hard @@ -3519,16 +3580,6 @@ __metadata: languageName: node linkType: hard -"babel-runtime@npm:6.x, babel-runtime@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-runtime@npm:6.26.0" - dependencies: - core-js: "npm:^2.4.0" - regenerator-runtime: "npm:^0.11.0" - checksum: 10c0/caa752004936b1463765ed3199c52f6a55d0613b9bed108743d6f13ca532b821d4ea9decc4be1b583193164462b1e3e7eefdfa36b15c72e7daac58dd72c1772f - languageName: node - linkType: hard - "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -3536,13 +3587,6 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^2.0.0": - version: 2.3.0 - resolution: "binary-extensions@npm:2.3.0" - checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 - languageName: node - linkType: hard - "body@npm:^5.1.0": version: 5.1.0 resolution: "body@npm:5.1.0" @@ -3574,7 +3618,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.3, braces@npm:~3.0.2": +"braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: @@ -3583,7 +3627,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.10, browserslist@npm:^4.23.1": +"browserslist@npm:^4.23.1": version: 4.23.3 resolution: "browserslist@npm:4.23.3" dependencies: @@ -3747,25 +3791,6 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.5.3": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 - languageName: node - linkType: hard - "chokidar@npm:^4.0.0": version: 4.0.1 resolution: "chokidar@npm:4.0.1" @@ -3775,6 +3800,15 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^4.0.1": + version: 4.0.3 + resolution: "chokidar@npm:4.0.3" + dependencies: + readdirp: "npm:^4.0.1" + checksum: 10c0/a58b9df05bb452f7d105d9e7229ac82fa873741c0c40ddcc7bb82f8a909fbe3f7814c9ebe9bc9a2bef9b737c0ec6e2d699d179048ef06ad3ec46315df0ebe6ad + languageName: node + linkType: hard + "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -3915,10 +3949,10 @@ __metadata: languageName: node linkType: hard -"commander@npm:^10.0.1": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 10c0/53f33d8927758a911094adadda4b2cbac111a5b377d8706700587650fd8f45b0bbe336de4b5c3fe47fd61f420a3d9bd452b6e0e6e5600a7e74d7bf0174f6efe3 +"commander@npm:^12.1.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 10c0/6e1996680c083b3b897bfc1cfe1c58dfbcd9842fd43e1aaf8a795fbc237f65efcc860a3ef457b318e73f29a4f4a28f6403c3d653d021d960e4632dd45bde54a9 languageName: node linkType: hard @@ -3929,22 +3963,6 @@ __metadata: languageName: node linkType: hard -"component-classes@npm:^1.2.5": - version: 1.2.6 - resolution: "component-classes@npm:1.2.6" - dependencies: - component-indexof: "npm:0.0.3" - checksum: 10c0/5b2f7a7c897c3eec94b8d09bab0e1725ad596fae661a5ed850f924855c8fa73e783050b9b998a5732ba619ca0b4b550a1a2a50652bf8f34bd3773277547e3b0c - languageName: node - linkType: hard - -"component-indexof@npm:0.0.3": - version: 0.0.3 - resolution: "component-indexof@npm:0.0.3" - checksum: 10c0/0acb68802318f69fe60b1a48b9df7d36c2ace0837f7fb9e0c7bd4915dc4682c276be1cf1c1686e8c023f24b5e43edf4aaadc5d6dae04378f43f7869e89896966 - languageName: node - linkType: hard - "compute-scroll-into-view@npm:^3.1.0": version: 3.1.0 resolution: "compute-scroll-into-view@npm:3.1.0" @@ -3980,6 +3998,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:^1.0.1": + version: 1.0.2 + resolution: "cookie@npm:1.0.2" + checksum: 10c0/fd25fe79e8fbcfcaf6aa61cd081c55d144eeeba755206c058682257cb38c4bd6795c6620de3f064c740695bb65b7949ebb1db7a95e4636efb8357a335ad3f54b + languageName: node + linkType: hard + "copy-to-clipboard@npm:^3.3.1": version: 3.3.3 resolution: "copy-to-clipboard@npm:3.3.3" @@ -3989,26 +4014,18 @@ __metadata: languageName: node linkType: hard -"copy-webpack-plugin@npm:^12.0.2": - version: 12.0.2 - resolution: "copy-webpack-plugin@npm:12.0.2" +"copy-webpack-plugin@npm:^13.0.0": + version: 13.0.0 + resolution: "copy-webpack-plugin@npm:13.0.0" dependencies: - fast-glob: "npm:^3.3.2" glob-parent: "npm:^6.0.1" - globby: "npm:^14.0.0" normalize-path: "npm:^3.0.0" schema-utils: "npm:^4.2.0" serialize-javascript: "npm:^6.0.2" + tinyglobby: "npm:^0.2.12" peerDependencies: webpack: ^5.1.0 - checksum: 10c0/1a2715a1280a37b81b7040b89ed962db4aa75475b164f84f266fa4e81f209269b13f8bff10b104dff7558854bafedcdd4f30c40fd23ecd8fa28af45516b459cd - languageName: node - linkType: hard - -"core-js@npm:^2.4.0": - version: 2.6.12 - resolution: "core-js@npm:2.6.12" - checksum: 10c0/00128efe427789120a06b819adc94cc72b96955acb331cb71d09287baf9bd37bebd191d91f1ee4939c893a050307ead4faea08876f09115112612b6a05684b63 + checksum: 10c0/955037f77c6beb249b690710c35bacceb03b61bb5b7c5fc59ac7dff122c706eb794ef601bc3d9bbdb1350bda3e2615e0b43bf33f1ce2ca14ed934d9a89f43637 languageName: node linkType: hard @@ -4077,16 +4094,6 @@ __metadata: languageName: node linkType: hard -"css-animation@npm:^1.3.2": - version: 1.6.1 - resolution: "css-animation@npm:1.6.1" - dependencies: - babel-runtime: "npm:6.x" - component-classes: "npm:^1.2.5" - checksum: 10c0/fc5ef573f4a676b56c1b588f15cb9ef24086fbb907dd848b35bee1f835f7c0d726db5179e2deeff57865a9ae12c58454cee229949a9e2511b2d47d7d47df7d81 - languageName: node - linkType: hard - "css-box-model@npm:^1.2.1": version: 1.2.1 resolution: "css-box-model@npm:1.2.1" @@ -4528,10 +4535,10 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:3.6.0": - version: 3.6.0 - resolution: "date-fns@npm:3.6.0" - checksum: 10c0/0b5fb981590ef2f8e5a3ba6cd6d77faece0ea7f7158948f2eaae7bbb7c80a8f63ae30b01236c2923cf89bb3719c33aeb150c715ea4fe4e86e37dcf06bed42fb6 +"date-fns@npm:4.1.0": + version: 4.1.0 + resolution: "date-fns@npm:4.1.0" + checksum: 10c0/b79ff32830e6b7faa009590af6ae0fb8c3fd9ffad46d930548fbb5acf473773b4712ae887e156ba91a7b3dc30591ce0f517d69fd83bd9c38650fdc03b4e0bac8 languageName: node linkType: hard @@ -4671,13 +4678,6 @@ __metadata: languageName: node linkType: hard -"dom-align@npm:^1.7.0": - version: 1.12.4 - resolution: "dom-align@npm:1.12.4" - checksum: 10c0/358f1601fc6b6518c0726ee99e9124212b34ca2828a194c816f247b913415416098cf016391f89741cddccf9b98a98a077469d565630bd4f8143edac81a97186 - languageName: node - linkType: hard - "dom-css@npm:^2.0.0": version: 2.1.0 resolution: "dom-css@npm:2.1.0" @@ -4708,10 +4708,15 @@ __metadata: languageName: node linkType: hard -"dompurify@npm:^3.0.0": - version: 3.1.6 - resolution: "dompurify@npm:3.1.6" - checksum: 10c0/3de1cca187c78d3d8cb4134fc2985b644d6a81f6b4e024c77cfb04c1c2f38544ccf7b0ea37a48ce22fcca64594170ed7c22252574c75b801c44345cdd7b06c64 +"dompurify@npm:3.2.5": + version: 3.2.5 + resolution: "dompurify@npm:3.2.5" + dependencies: + "@types/trusted-types": "npm:^2.0.7" + dependenciesMeta: + "@types/trusted-types": + optional: true + checksum: 10c0/b564167cc588933ad2d25c185296716bdd7124e9d2a75dac76efea831bb22d1230ce5205a1ab6ce4c1010bb32ac35f7a5cb2dd16c78cbf382111f1228362aa59 languageName: node linkType: hard @@ -4812,12 +4817,12 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:^7.7.3": - version: 7.13.0 - resolution: "envinfo@npm:7.13.0" +"envinfo@npm:^7.14.0": + version: 7.14.0 + resolution: "envinfo@npm:7.14.0" bin: envinfo: dist/cli.js - checksum: 10c0/9c279213cbbb353b3171e8e333fd2ed564054abade08ab3d735fe136e10a0e14e0588e1ce77e6f01285f2462eaca945d64f0778be5ae3d9e82804943e36a4411 + checksum: 10c0/059a031eee101e056bd9cc5cbfe25c2fab433fe1780e86cf0a82d24a000c6931e327da6a8ffb3dce528a24f83f256e7efc0b36813113eff8fdc6839018efe327 languageName: node linkType: hard @@ -4955,19 +4960,19 @@ __metadata: languageName: node linkType: hard -"eslint-webpack-plugin@npm:^4.2.0": - version: 4.2.0 - resolution: "eslint-webpack-plugin@npm:4.2.0" +"eslint-webpack-plugin@npm:^5.0.1": + version: 5.0.1 + resolution: "eslint-webpack-plugin@npm:5.0.1" dependencies: - "@types/eslint": "npm:^8.56.10" + "@types/eslint": "npm:^9.6.1" jest-worker: "npm:^29.7.0" - micromatch: "npm:^4.0.5" + micromatch: "npm:^4.0.8" normalize-path: "npm:^3.0.0" - schema-utils: "npm:^4.2.0" + schema-utils: "npm:^4.3.0" peerDependencies: eslint: ^8.0.0 || ^9.0.0 webpack: ^5.0.0 - checksum: 10c0/cf5c9b7afa3c025fffadb3e1451e7a55d914c3070614bb4d57f887774d164ca4298bb777f7c3afa16f47af9869174a19d6aebb4d1ca719bc2cc49f2eccd71a3b + checksum: 10c0/bb20c8584086e9d1114f9830229c08b622ef2a198507c547a37bd6eff250e45f1cb91f202d5af2a6fa5f1ab13600675956564af959eb63e81629fb0c7e7eb6e0 languageName: node linkType: hard @@ -5051,13 +5056,6 @@ __metadata: languageName: node linkType: hard -"exenv@npm:^1.2.2": - version: 1.2.2 - resolution: "exenv@npm:1.2.2" - checksum: 10c0/4e96b355a6b9b9547237288ca779dd673b2e698458b409e88b50df09feb7c85ef94c07354b6b87bc3ed0193a94009a6f7a3c71956da12f45911c0d0f5aa3caa0 - languageName: node - linkType: hard - "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -5092,7 +5090,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.9": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -5174,12 +5172,24 @@ __metadata: languageName: node linkType: hard -"file-selector@npm:^0.6.0": - version: 0.6.0 - resolution: "file-selector@npm:0.6.0" +"fdir@npm:^6.4.4": + version: 6.4.4 + resolution: "fdir@npm:6.4.4" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/6ccc33be16945ee7bc841e1b4178c0b4cf18d3804894cb482aa514651c962a162f96da7ffc6ebfaf0df311689fb70091b04dd6caffe28d56b9ebdc0e7ccadfdd + languageName: node + linkType: hard + +"file-selector@npm:^2.1.0": + version: 2.1.2 + resolution: "file-selector@npm:2.1.2" dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/477ca1b56274db9fee1a8a623c4bfef580389726a5fef843af8c1f2f17f70ec2d1e41b29115777c92e120a15f1cca734c6ef36bb48bfa2ee027c68da16cd0d28 + tslib: "npm:^2.7.0" + checksum: 10c0/fe827e0e95410aacfcc3eabc38c29cc36055257f03c1c06b631a2b5af9730c142ad2c52f5d64724d02231709617bda984701f52bd1f4b7aca50fb6585a27c1d2 languageName: node linkType: hard @@ -5228,13 +5238,13 @@ __metadata: languageName: node linkType: hard -"fork-ts-checker-webpack-plugin@npm:^9.0.2": - version: 9.0.2 - resolution: "fork-ts-checker-webpack-plugin@npm:9.0.2" +"fork-ts-checker-webpack-plugin@npm:^9.1.0": + version: 9.1.0 + resolution: "fork-ts-checker-webpack-plugin@npm:9.1.0" dependencies: "@babel/code-frame": "npm:^7.16.7" chalk: "npm:^4.1.2" - chokidar: "npm:^3.5.3" + chokidar: "npm:^4.0.1" cosmiconfig: "npm:^8.2.0" deepmerge: "npm:^4.2.2" fs-extra: "npm:^10.0.0" @@ -5247,7 +5257,7 @@ __metadata: peerDependencies: typescript: ">3.6.0" webpack: ^5.11.0 - checksum: 10c0/37e11dadcc65d297f07882f1661795289f2bf16fa9dea0b90bcc438855d48787378bce4dfcd8e842782f220503438995efbb28cbe560126f6a744ff740e8cc38 + checksum: 10c0/b4acdf400862af5f57d3e159b3a444e7f9f73e9f4609d54604c3810f75f8adcea0165a8b17ee856ed3c65591d058ffd73cd08d273e289d4952844e75f6efa85d languageName: node linkType: hard @@ -5315,7 +5325,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@npm:^2.3.2": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: @@ -5334,7 +5344,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: @@ -5432,7 +5442,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": +"glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: @@ -5473,9 +5483,9 @@ __metadata: languageName: node linkType: hard -"glob@npm:^11.0.0": - version: 11.0.0 - resolution: "glob@npm:11.0.0" +"glob@npm:^11.0.2": + version: 11.0.2 + resolution: "glob@npm:11.0.2" dependencies: foreground-child: "npm:^3.1.0" jackspeak: "npm:^4.0.1" @@ -5485,7 +5495,7 @@ __metadata: path-scurry: "npm:^2.0.0" bin: glob: dist/esm/bin.mjs - checksum: 10c0/419866015d8795258a8ac51de5b9d1a99c72634fc3ead93338e4da388e89773ab21681e494eac0fbc4250b003451ca3110bb4f1c9393d15d14466270094fdb4e + checksum: 10c0/49f91c64ca882d5e3a72397bd45a146ca91fd3ca53dafb5254daf6c0e83fc510d39ea66f136f9ac7ca075cdd11fbe9aaa235b28f743bd477622e472f4fdc0240 languageName: node linkType: hard @@ -5524,20 +5534,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^14.0.0": - version: 14.0.2 - resolution: "globby@npm:14.0.2" - dependencies: - "@sindresorhus/merge-streams": "npm:^2.1.0" - fast-glob: "npm:^3.3.2" - ignore: "npm:^5.2.4" - path-type: "npm:^5.0.0" - slash: "npm:^5.1.0" - unicorn-magic: "npm:^0.1.0" - checksum: 10c0/3f771cd683b8794db1e7ebc8b6b888d43496d93a82aad4e9d974620f578581210b6c5a6e75ea29573ed16a1345222fab6e9b877a8d1ed56eeb147e09f69c6f78 - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -5614,7 +5610,7 @@ __metadata: languageName: node linkType: hard -"history@npm:4.10.1": +"history@npm:4.10.1, history@npm:^4.9.0": version: 4.10.1 resolution: "history@npm:4.10.1" dependencies: @@ -5637,7 +5633,7 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:3.3.2, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": +"hoist-non-react-statics@npm:3.3.2, hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.1": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: @@ -5740,21 +5736,26 @@ __metadata: languageName: node linkType: hard -"i18next-browser-languagedetector@npm:^7.0.2": - version: 7.2.1 - resolution: "i18next-browser-languagedetector@npm:7.2.1" +"i18next-browser-languagedetector@npm:^8.0.0": + version: 8.1.0 + resolution: "i18next-browser-languagedetector@npm:8.1.0" dependencies: "@babel/runtime": "npm:^7.23.2" - checksum: 10c0/44fa71af4efb4cd6cc8bfbbd3f3b2735159e17d8f4396346e4016c6dd0ecbcdd68f1ec17609fd0de8dd6754c3d847d6e7e03227c19c1879d4c265cb1918948bb + checksum: 10c0/d55162f8062e4fdca07403273ef352e7122e1f9abe479404c6711f5a9b75ddb4b33d49b5a50416637d3a3f0553881ba6a570062c8f6e6c52b031eceb0bb8669e languageName: node linkType: hard -"i18next@npm:^23.0.0": - version: 23.15.1 - resolution: "i18next@npm:23.15.1" +"i18next@npm:^24.0.0": + version: 24.2.3 + resolution: "i18next@npm:24.2.3" dependencies: - "@babel/runtime": "npm:^7.23.2" - checksum: 10c0/06bf6c45c70ebe8cc1181ce5f367f6a60acc798abb1926329e67e092a25762cabbfed64ac149745d515f724d2a6fef3bf809bd4fd8f505a7966e9e4dd2e3fd69 + "@babel/runtime": "npm:^7.26.10" + peerDependencies: + typescript: ^5 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/7ac11a67d618ec714beef303aa497c1249bf5f1977dd3ebe9ca2673dfa6cadbba9e2d39ec1337688903ae3866ce9c1bc22cd6b265e66cce54c5db3a9bbedd390 languageName: node linkType: hard @@ -5762,51 +5763,51 @@ __metadata: version: 0.0.0-use.local resolution: "ibm-rmf@workspace:." dependencies: - "@babel/core": "npm:^7.25.9" - "@emotion/css": "npm:^11.13.4" - "@grafana/data": "npm:^11.3.0" + "@babel/core": "npm:^7.27.1" + "@emotion/css": "npm:^11.13.5" + "@grafana/data": "npm:^12.0.0" "@grafana/eslint-config": "npm:^8.0.0" - "@grafana/runtime": "npm:^11.3.0" - "@grafana/schema": "npm:^11.3.0" + "@grafana/runtime": "npm:^12.0.0" + "@grafana/schema": "npm:^12.0.0" "@grafana/tsconfig": "npm:^2.0.0" - "@grafana/ui": "npm:^11.3.0" - "@playwright/test": "npm:^1.48.1" - "@swc/core": "npm:^1.7.39" - "@swc/helpers": "npm:^0.5.13" - "@swc/jest": "npm:^0.2.36" - "@testing-library/jest-dom": "npm:^6.6.2" - "@testing-library/react": "npm:^16.0.1" + "@grafana/ui": "npm:^12.0.0" + "@playwright/test": "npm:^1.52.0" + "@swc/core": "npm:^1.11.24" + "@swc/helpers": "npm:^0.5.17" + "@swc/jest": "npm:^0.2.38" + "@testing-library/jest-dom": "npm:^6.6.3" + "@testing-library/react": "npm:^16.3.0" "@types/jest": "npm:^29.5.14" - "@types/lodash": "npm:^4.17.12" - "@types/node": "npm:^22.7.9" + "@types/lodash": "npm:^4.17.16" + "@types/node": "npm:^22.15.17" "@types/react-router-dom": "npm:^5.3.3" antlr4: "npm:^4.13.2" - copy-webpack-plugin: "npm:^12.0.2" + copy-webpack-plugin: "npm:^13.0.0" css-loader: "npm:^7.1.2" eslint-plugin-deprecation: "npm:^3.0.0" - eslint-webpack-plugin: "npm:^4.2.0" - fork-ts-checker-webpack-plugin: "npm:^9.0.2" - glob: "npm:^11.0.0" + eslint-webpack-plugin: "npm:^5.0.1" + fork-ts-checker-webpack-plugin: "npm:^9.1.0" + glob: "npm:^11.0.2" identity-obj-proxy: "npm:^3.0.0" imports-loader: "npm:^5.0.0" jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" - prettier: "npm:^3.3.3" - react: "npm:^18.3.1" - react-dom: "npm:^18.3.1" - react-router-dom: "npm:^6.27.0" + prettier: "npm:^3.5.3" + react: "npm:^19.1.0" + react-dom: "npm:^19.1.0" + react-router-dom: "npm:^7.6.0" replace-in-file-webpack-plugin: "npm:^1.0.6" - rxjs: "npm:^7.8.1" - sass: "npm:^1.80.3" - sass-loader: "npm:^16.0.2" + rxjs: "npm:^7.8.2" + sass: "npm:^1.87.0" + sass-loader: "npm:^16.0.5" style-loader: "npm:^4.0.0" swc-loader: "npm:^0.2.6" ts-node: "npm:^10.9.2" tsconfig-paths: "npm:^4.2.0" - tslib: "npm:^2.8.0" - typescript: "npm:^5.6.3" - webpack: "npm:^5.95.0" - webpack-cli: "npm:^5.1.4" + tslib: "npm:^2.8.1" + typescript: "npm:^5.8.3" + webpack: "npm:^5.99.8" + webpack-cli: "npm:^6.0.1" webpack-livereload-plugin: "npm:^3.0.2" webpack-virtual-modules: "npm:^0.6.2" languageName: unknown @@ -5846,17 +5847,24 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard -"immutable@npm:4.3.7, immutable@npm:^4.0.0": - version: 4.3.7 - resolution: "immutable@npm:4.3.7" - checksum: 10c0/9b099197081b22f6433003e34929da8ecddbbdc1474cdc8aa3b7669dee4adda349c06143de22def36016d1b6de5322b043eccd7a11db1dad2ca85dad4fff5435 +"immutable@npm:5.0.3": + version: 5.0.3 + resolution: "immutable@npm:5.0.3" + checksum: 10c0/3269827789e1026cd25c2ea97f0b2c19be852ffd49eda1b674b20178f73d84fa8d945ad6f5ac5bc4545c2b4170af9f6e1f77129bc1cae7974a4bf9b04a9cdfb9 + languageName: node + linkType: hard + +"immutable@npm:^5.0.2": + version: 5.1.2 + resolution: "immutable@npm:5.1.2" + checksum: 10c0/da5af92d2c70323c1f9a0e418832c9eef441feadaf6a295a4e07764bd2400c85186872e016071d9253549d58d364160d55dca8dcdf59fd4a6a06c6756fe61657 languageName: node linkType: hard @@ -5986,15 +5994,6 @@ __metadata: languageName: node linkType: hard -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: "npm:^2.0.0" - checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 - languageName: node - linkType: hard - "is-core-module@npm:^2.13.0": version: 2.15.1 resolution: "is-core-module@npm:2.15.1" @@ -6025,7 +6024,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": +"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -6099,6 +6098,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:0.0.1": + version: 0.0.1 + resolution: "isarray@npm:0.0.1" + checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311 + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -6926,7 +6932,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -7021,21 +7027,21 @@ __metadata: languageName: node linkType: hard -"marked-mangle@npm:1.1.9": - version: 1.1.9 - resolution: "marked-mangle@npm:1.1.9" +"marked-mangle@npm:1.1.10": + version: 1.1.10 + resolution: "marked-mangle@npm:1.1.10" peerDependencies: - marked: ">=4 <15" - checksum: 10c0/8df929fa8a52b889a3767621d2e69421e472c3ea11226f5fa3fae9f521447155a451127499c24a3952a5aeb7439ebe043b0223f258bb4744eef0b001e3a03ad4 + marked: ">=4 <16" + checksum: 10c0/085186a6c6cd99428e029ecb2f17dc501c640d16a38b833c5833aab5dc8e71955cac6341ec193e9040f7154a5ab149c867ca58bb77a7122a69062a08df0ca80b languageName: node linkType: hard -"marked@npm:12.0.2": - version: 12.0.2 - resolution: "marked@npm:12.0.2" +"marked@npm:15.0.6": + version: 15.0.6 + resolution: "marked@npm:15.0.6" bin: marked: bin/marked.js - checksum: 10c0/45ae2e1e3f06b30a5b5f64efc6cde9830c81d1d024fd7668772a3217f1bc0f326e66a6b8970482d9783edf1f581fecac7023a7fa160f2c14dbcc16e064b4eafb + checksum: 10c0/8f30972ac5fdf879353484bdd7717409c241d15031a58bbc483070dedb58e4b314c41c0b59b78e536658907c02ee149eaf4b9be221f198df97beae703f529d40 languageName: node linkType: hard @@ -7107,7 +7113,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -7292,16 +7298,16 @@ __metadata: languageName: node linkType: hard -"moment-timezone@npm:0.5.46": - version: 0.5.46 - resolution: "moment-timezone@npm:0.5.46" +"moment-timezone@npm:0.5.47": + version: 0.5.47 + resolution: "moment-timezone@npm:0.5.47" dependencies: moment: "npm:^2.29.4" - checksum: 10c0/003fd278d1aa3e63afff340a318735db80157b7a343e3f807cac10e026def214f0e71b52d582b89a11ee0a19f5d9f0da2752b7959d855429f2b715d4859d3722 + checksum: 10c0/6f7cdbebe712dcbb767a6380e097d352776b83dd7d1d797546d6ff21d813e8380633373da93aea1d24f2c3c031044fd4a18726cacad14eda3f1f428192ad955c languageName: node linkType: hard -"moment@npm:2.30.1, moment@npm:2.x, moment@npm:^2.29.4": +"moment@npm:2.30.1, moment@npm:^2.29.4": version: 2.30.1 resolution: "moment@npm:2.30.1" checksum: 10c0/865e4279418c6de666fca7786607705fd0189d8a7b7624e2e56be99290ac846f90878a6f602e34b4e0455c549b85385b1baf9966845962b313699e7cb847543a @@ -7432,7 +7438,7 @@ __metadata: languageName: node linkType: hard -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": +"normalize-path@npm:^3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 @@ -7455,7 +7461,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:4.x, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 @@ -7588,10 +7594,10 @@ __metadata: languageName: node linkType: hard -"papaparse@npm:5.4.1": - version: 5.4.1 - resolution: "papaparse@npm:5.4.1" - checksum: 10c0/201f37c4813453fed5bfb4c01816696b099d2db9ff1e8fb610acc4771fdde91d2a22b6094721edb0fedb21ca3c46f04263f68be4beb3e35b8c72278f0cedc7b7 +"papaparse@npm:5.5.2": + version: 5.5.2 + resolution: "papaparse@npm:5.5.2" + checksum: 10c0/83b8c0cf570395581a42331cd9231194dbba43bc8c608026739f5180827506575993dc788def039a9666bc103e2a96075de8732ea8a63e507b74c02aa757bcd5 languageName: node linkType: hard @@ -7680,6 +7686,15 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:^1.7.0": + version: 1.9.0 + resolution: "path-to-regexp@npm:1.9.0" + dependencies: + isarray: "npm:0.0.1" + checksum: 10c0/de9ddb01b84d9c2c8e2bed18630d8d039e2d6f60a6538595750fa08c7a6482512257464c8da50616f266ab2cdd2428387e85f3b089e4c3f25d0c537e898a0751 + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -7687,13 +7702,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: 10c0/e8f4b15111bf483900c75609e5e74e3fcb79f2ddb73e41470028fcd3e4b5162ec65da9907be077ee5012c18801ff7fffb35f9f37a077f3f81d85a0b7d6578efd - languageName: node - linkType: hard - "pbf@npm:3.2.1": version: 3.2.1 resolution: "pbf@npm:3.2.1" @@ -7720,13 +7728,27 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc + languageName: node + linkType: hard + "pirates@npm:^4.0.4": version: 4.0.6 resolution: "pirates@npm:4.0.6" @@ -7743,27 +7765,27 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.48.1": - version: 1.48.1 - resolution: "playwright-core@npm:1.48.1" +"playwright-core@npm:1.52.0": + version: 1.52.0 + resolution: "playwright-core@npm:1.52.0" bin: playwright-core: cli.js - checksum: 10c0/2f75532b9b7dfa0e586f5660ac1d8ea729bbdbd28dd2c0711e7cfc1adfe5cf7448d7f15a018ec9851a8f50c0743c3990cb9df23064bed603627baeac4dce3915 + checksum: 10c0/640945507e6ca2144e9f596b2a6ecac042c2fd3683ff99e6271e9a7b38f3602d415f282609d569456f66680aab8b3c5bb1b257d8fb63a7fc0ed648261110421f languageName: node linkType: hard -"playwright@npm:1.48.1": - version: 1.48.1 - resolution: "playwright@npm:1.48.1" +"playwright@npm:1.52.0": + version: 1.52.0 + resolution: "playwright@npm:1.52.0" dependencies: fsevents: "npm:2.3.2" - playwright-core: "npm:1.48.1" + playwright-core: "npm:1.52.0" dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: 10c0/96280ae656226e52015c0c69c4c19e9f594c19353a79012a19bd7b7175d7b409c1aed289a629df49ef897a57ccd24668ad15b86c283db10f76212a4db90a94ac + checksum: 10c0/2c6edf1e15e59bbaf77f3fa0fe0ac975793c17cff835d9c8b8bc6395a3b6f1c01898b3058ab37891b2e4d424bcc8f1b4844fe70d943e0143d239d7451408c579 languageName: node linkType: hard @@ -7857,12 +7879,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.3.3": - version: 3.3.3 - resolution: "prettier@npm:3.3.3" +"prettier@npm:^3.5.3": + version: 3.5.3 + resolution: "prettier@npm:3.5.3" bin: prettier: bin/prettier.cjs - checksum: 10c0/b85828b08e7505716324e4245549b9205c0cacb25342a030ba8885aba2039a115dbcf75a0b7ca3b37bc9d101ee61fab8113fc69ca3359f2a226f1ecc07ad2e26 + checksum: 10c0/3880cb90b9dc0635819ab52ff571518c35bd7f15a6e80a2054c05dbc8a3aa6e74f135519e91197de63705bcb38388ded7e7230e2178432a1468005406238b877 languageName: node linkType: hard @@ -7877,10 +7899,10 @@ __metadata: languageName: node linkType: hard -"prismjs@npm:1.29.0": - version: 1.29.0 - resolution: "prismjs@npm:1.29.0" - checksum: 10c0/d906c4c4d01b446db549b4f57f72d5d7e6ccaca04ecc670fb85cea4d4b1acc1283e945a9cbc3d81819084a699b382f970e02f9d1378e14af9808d366d9ed7ec6 +"prismjs@npm:1.30.0": + version: 1.30.0 + resolution: "prismjs@npm:1.30.0" + checksum: 10c0/f56205bfd58ef71ccfcbcb691fd0eb84adc96c6ff21b0b69fc6fdcf02be42d6ef972ba4aed60466310de3d67733f6a746f89f2fb79c00bf217406d465b3e8f23 languageName: node linkType: hard @@ -7911,7 +7933,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:15.x, prop-types@npm:^15.5.10, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": +"prop-types@npm:^15.5.10, prop-types@npm:^15.5.8, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -8014,7 +8036,7 @@ __metadata: languageName: node linkType: hard -"raf@npm:^3.1.0, raf@npm:^3.4.0, raf@npm:^3.4.1": +"raf@npm:^3.1.0": version: 3.4.1 resolution: "raf@npm:3.4.1" dependencies: @@ -8051,47 +8073,19 @@ __metadata: languageName: node linkType: hard -"rc-align@npm:^2.4.0": - version: 2.4.5 - resolution: "rc-align@npm:2.4.5" - dependencies: - babel-runtime: "npm:^6.26.0" - dom-align: "npm:^1.7.0" - prop-types: "npm:^15.5.8" - rc-util: "npm:^4.0.4" - checksum: 10c0/460b3717636f9eea8e0537af4b8179690c1deeda2628bdcce6f218b099ebcf8ea48ad8b487b5d971e59fbbce24f10abca89d98eeff99316e8f056658c7854df0 - languageName: node - linkType: hard - -"rc-animate@npm:2.x": - version: 2.11.1 - resolution: "rc-animate@npm:2.11.1" +"rc-cascader@npm:3.33.0": + version: 3.33.0 + resolution: "rc-cascader@npm:3.33.0" dependencies: - babel-runtime: "npm:6.x" - classnames: "npm:^2.2.6" - css-animation: "npm:^1.3.2" - prop-types: "npm:15.x" - raf: "npm:^3.4.0" - rc-util: "npm:^4.15.3" - react-lifecycles-compat: "npm:^3.0.4" - checksum: 10c0/a4d31bb5065031de58ee9f4a06ebf4bd4f8e4b8a10103fbad5a68ec39c655f7bff84df21b05356a94405fcb3de0dd7d9e45d526042199d80c88d02a57c3acbdc - languageName: node - linkType: hard - -"rc-cascader@npm:3.28.1": - version: 3.28.1 - resolution: "rc-cascader@npm:3.28.1" - dependencies: - "@babel/runtime": "npm:^7.12.5" - array-tree-filter: "npm:^2.1.0" + "@babel/runtime": "npm:^7.25.7" classnames: "npm:^2.3.1" - rc-select: "npm:~14.15.0" - rc-tree: "npm:~5.9.0" - rc-util: "npm:^5.37.0" + rc-select: "npm:~14.16.2" + rc-tree: "npm:~5.13.0" + rc-util: "npm:^5.43.0" peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 10c0/ffa13db0728d7021e3d0b6586e681c029ca1f112e78f4c2c0b1becd66386ef2e3201d02880e06867dfbc77b75bee624766d7fad95e0a26d204451657fb7d2d76 + checksum: 10c0/834e267c0718a4331e5221615cdfc1b9661a98927524ed5d3375d4bd56e4040b747e8a65998ae0445ba3455ad07956794abc58bdbb1563ccdf2403b228d5cc67 languageName: node linkType: hard @@ -8140,6 +8134,51 @@ __metadata: languageName: node linkType: hard +"rc-overflow@npm:^1.3.2": + version: 1.4.1 + resolution: "rc-overflow@npm:1.4.1" + dependencies: + "@babel/runtime": "npm:^7.11.1" + classnames: "npm:^2.2.1" + rc-resize-observer: "npm:^1.0.0" + rc-util: "npm:^5.37.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/ac47d2c7b4cfc99e8ca20c75f99e601eac4d524f6690d9a36fb65d84b9f627f13aa70f11fc5c09b24c1e9a0395a15c16998a57f2517c08a6abe545539cb5e162 + languageName: node + linkType: hard + +"rc-picker@npm:4.9.2": + version: 4.9.2 + resolution: "rc-picker@npm:4.9.2" + dependencies: + "@babel/runtime": "npm:^7.24.7" + "@rc-component/trigger": "npm:^2.0.0" + classnames: "npm:^2.2.1" + rc-overflow: "npm:^1.3.2" + rc-resize-observer: "npm:^1.4.0" + rc-util: "npm:^5.43.0" + peerDependencies: + date-fns: ">= 2.x" + dayjs: ">= 1.x" + luxon: ">= 3.x" + moment: ">= 2.x" + react: ">=16.9.0" + react-dom: ">=16.9.0" + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + checksum: 10c0/052a78e5277f71e8eaf66333dba5aea165bf999ffeef2cea1f5b63395dc083ce80a398dcd51002fe808961282089dfcf92a81ded326fe2bf54f320a24c8f4dbb + languageName: node + linkType: hard + "rc-resize-observer@npm:^1.0.0, rc-resize-observer@npm:^1.3.1": version: 1.4.0 resolution: "rc-resize-observer@npm:1.4.0" @@ -8155,9 +8194,24 @@ __metadata: languageName: node linkType: hard -"rc-select@npm:~14.15.0": - version: 14.15.2 - resolution: "rc-select@npm:14.15.2" +"rc-resize-observer@npm:^1.4.0": + version: 1.4.3 + resolution: "rc-resize-observer@npm:1.4.3" + dependencies: + "@babel/runtime": "npm:^7.20.7" + classnames: "npm:^2.2.1" + rc-util: "npm:^5.44.1" + resize-observer-polyfill: "npm:^1.5.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/93073c9ef5cc704f9d99307f58f8eeccabb953edf4e8a056b090104fc28ed19b77c2a32bd88ca2e0407fbedeb266d1985e655b35b8bc36b04d243e9d0471c911 + languageName: node + linkType: hard + +"rc-select@npm:~14.16.2": + version: 14.16.7 + resolution: "rc-select@npm:14.16.7" dependencies: "@babel/runtime": "npm:^7.10.1" "@rc-component/trigger": "npm:^2.1.1" @@ -8169,13 +8223,13 @@ __metadata: peerDependencies: react: "*" react-dom: "*" - checksum: 10c0/00151da840002e30ee2b1f372c416e8370495524cf46e587eeb903fce2d1fd43167774a49cb7aed3e9816d2a200b46150c7d1fdcb1b17a21ca19d3a3cf930792 + checksum: 10c0/9429dd7d2d2ff5df56efea946d95901650378e7b8ceed37ef586f5cde64cdb52be390c2176ce516bb3bbdbab15305524c5c0d8cc9d0998cc39bd4e917360329f languageName: node linkType: hard -"rc-slider@npm:11.1.7": - version: 11.1.7 - resolution: "rc-slider@npm:11.1.7" +"rc-slider@npm:11.1.8": + version: 11.1.8 + resolution: "rc-slider@npm:11.1.8" dependencies: "@babel/runtime": "npm:^7.10.1" classnames: "npm:^2.2.5" @@ -8183,41 +8237,28 @@ __metadata: peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 10c0/ddb870a8f9982565c3ab4e7ece12a224c4d6f1983a0760d516561fa8963c2bc6d9e25bed6b87cad007b3d4962194398e1490231d0b5ab062262c0ea0ba734b85 + checksum: 10c0/b202599abf85e21234c2cababe9c6f908aa7fcdde9eca413ef96b209838f3b1a33292d1a1bbe571b84bf46f8a5d28d5c1a070f331bddc0504101e9e2a75cf422 languageName: node linkType: hard -"rc-time-picker@npm:^3.7.3": - version: 3.7.3 - resolution: "rc-time-picker@npm:3.7.3" - dependencies: - classnames: "npm:2.x" - moment: "npm:2.x" - prop-types: "npm:^15.5.8" - raf: "npm:^3.4.1" - rc-trigger: "npm:^2.2.0" - react-lifecycles-compat: "npm:^3.0.4" - checksum: 10c0/f9c3e39a40a3db2c0a89c07bdbae82b053ea99cf169ec26f26b16492ff37961f73541756177b28e618028246baa72148ba2083b9d25e9053da4319f0f3d2d268 - languageName: node - linkType: hard - -"rc-tooltip@npm:6.2.1": - version: 6.2.1 - resolution: "rc-tooltip@npm:6.2.1" +"rc-tooltip@npm:6.4.0": + version: 6.4.0 + resolution: "rc-tooltip@npm:6.4.0" dependencies: "@babel/runtime": "npm:^7.11.2" "@rc-component/trigger": "npm:^2.0.0" classnames: "npm:^2.3.1" + rc-util: "npm:^5.44.3" peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 10c0/879341bcb7c162faa51b187482947c4f7d67b223f3999cf4a0fc5f4ffd15030086cef05b32464203c6ea7d07fc9f68cca85d806bf65ffdb91a5e7a76e46c839d + checksum: 10c0/49b9c56fc877b38084b4076edb1b61f0272bdd290c6ef161a0e1cf6426488e948c20439cf4ae31e076f3957b894feb326e4a1d7880400de2c29b1d54f736a342 languageName: node linkType: hard -"rc-tree@npm:~5.9.0": - version: 5.9.0 - resolution: "rc-tree@npm:5.9.0" +"rc-tree@npm:~5.13.0": + version: 5.13.1 + resolution: "rc-tree@npm:5.13.1" dependencies: "@babel/runtime": "npm:^7.10.1" classnames: "npm:2.x" @@ -8227,35 +8268,7 @@ __metadata: peerDependencies: react: "*" react-dom: "*" - checksum: 10c0/07cb1126910739060170be6348835bb39cfdf0ddf6fffbbfda2eca49cadee9233fd2031a0cabce07e4874df29ccdc1168b47695dec5e03ecfe502c0fa49712a9 - languageName: node - linkType: hard - -"rc-trigger@npm:^2.2.0": - version: 2.6.5 - resolution: "rc-trigger@npm:2.6.5" - dependencies: - babel-runtime: "npm:6.x" - classnames: "npm:^2.2.6" - prop-types: "npm:15.x" - rc-align: "npm:^2.4.0" - rc-animate: "npm:2.x" - rc-util: "npm:^4.4.0" - react-lifecycles-compat: "npm:^3.0.4" - checksum: 10c0/29ba7a0eab6a281e77754050c84a80d9aaa4134e89db8319a61d9d1cc9296b873c208135d01495733e3f8e2bbe4c90d2fa28754da92a5f0b1064ee08b0dd1d4d - languageName: node - linkType: hard - -"rc-util@npm:^4.0.4, rc-util@npm:^4.15.3, rc-util@npm:^4.4.0": - version: 4.21.1 - resolution: "rc-util@npm:4.21.1" - dependencies: - add-dom-event-listener: "npm:^1.1.0" - prop-types: "npm:^15.5.10" - react-is: "npm:^16.12.0" - react-lifecycles-compat: "npm:^3.0.4" - shallowequal: "npm:^1.1.0" - checksum: 10c0/f91fe2ba98658c1bd67d8d3edd5ed5a2425ff44d3cd30f96b71b6058bd6c852bbf82e00716e219c10f6fac20e9b9cbb447e39cd69e12cdcfeda6dcd824adc790 + checksum: 10c0/4a27783d319f9e5367e9d123a2f9a6daa0383e705e055abb47f3ff7fa93249c5c26bbb27b7c6602163faefbfe0f3e923eb3a55d1e1f1d09d04b7bdf37942c2d4 languageName: node linkType: hard @@ -8272,6 +8285,19 @@ __metadata: languageName: node linkType: hard +"rc-util@npm:^5.44.1, rc-util@npm:^5.44.3": + version: 5.44.4 + resolution: "rc-util@npm:5.44.4" + dependencies: + "@babel/runtime": "npm:^7.18.3" + react-is: "npm:^18.2.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/748b71a6280ddaaac93d1fb2c92f03818775468e7ccb6c221484687cc0b7e879d083e98e338f75ac0fe2e942dbb9c2405bd32d25e5a804bf1fb7a11f3f897127 + languageName: node + linkType: hard + "rc-virtual-list@npm:^3.5.1, rc-virtual-list@npm:^3.5.2": version: 3.14.5 resolution: "rc-virtual-list@npm:3.14.5" @@ -8287,9 +8313,9 @@ __metadata: languageName: node linkType: hard -"react-calendar@npm:5.0.0": - version: 5.0.0 - resolution: "react-calendar@npm:5.0.0" +"react-calendar@npm:^5.1.0": + version: 5.1.0 + resolution: "react-calendar@npm:5.1.0" dependencies: "@wojtekmaj/date-utils": "npm:^1.1.3" clsx: "npm:^2.0.0" @@ -8302,7 +8328,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/d0b393b22fb1607dd2a7743f104f6d7fe2f3dba39bfbce301b5100d35bed239f51a7b08eec2a7fea77d88af60aecc0b36c2435f36d0e07b88f4a826a67c5a91e + checksum: 10c0/27673f639c5d6296342a2a888436b31a5d602faeaae01be83b2beb98ff568b0a3d1514f5cc50fcacf3ac50b9c0b9d2fb423b0c001a8f5f1a22816671409e2616 languageName: node linkType: hard @@ -8330,50 +8356,60 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:^18.3.1": - version: 18.3.1 - resolution: "react-dom@npm:18.3.1" +"react-data-grid@npm:7.0.0-beta.46": + version: 7.0.0-beta.46 + resolution: "react-data-grid@npm:7.0.0-beta.46" dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.2" + clsx: "npm:^2.0.0" peerDependencies: - react: ^18.3.1 - checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85 + react: ^18.0 || ^19.0 + react-dom: ^18.0 || ^19.0 + checksum: 10c0/38cfafaae84faac49d638d21a5f327b6d7e6dd119bec752d87add6c4b9f2830eb73ba4c52339a130eb049efc2ae42114bda537da84b1fb6c0b17c7ff4e631937 languageName: node linkType: hard -"react-dropzone@npm:14.2.9": - version: 14.2.9 - resolution: "react-dropzone@npm:14.2.9" +"react-dom@npm:^19.1.0": + version: 19.1.0 + resolution: "react-dom@npm:19.1.0" dependencies: - attr-accept: "npm:^2.2.2" - file-selector: "npm:^0.6.0" + scheduler: "npm:^0.26.0" + peerDependencies: + react: ^19.1.0 + checksum: 10c0/3e26e89bb6c67c9a6aa86cb888c7a7f8258f2e347a6d2a15299c17eb16e04c19194e3452bc3255bd34000a61e45e2cb51e46292392340432f133e5a5d2dfb5fc + languageName: node + linkType: hard + +"react-dropzone@npm:14.3.5": + version: 14.3.5 + resolution: "react-dropzone@npm:14.3.5" + dependencies: + attr-accept: "npm:^2.2.4" + file-selector: "npm:^2.1.0" prop-types: "npm:^15.8.1" peerDependencies: react: ">= 16.8 || 18.0.0" - checksum: 10c0/07c69f5c43500edae8916af54bff53bd27e7a4ba127228d130a5346e49f41ff16b47357d97871b4167d6cd9e65e65b9052d1ea7e59d16caeabf1565a73026f58 + checksum: 10c0/e3e5dddd3bead7c6410bd3fccc3a87e93086ceac47526a2d35421ef7e11a9e59f47c8af8da5c4600a58ef238a5af87c751a71b6391d5c6f77f1f2857946c07cc languageName: node linkType: hard -"react-from-dom@npm:^0.6.2": - version: 0.6.2 - resolution: "react-from-dom@npm:0.6.2" +"react-from-dom@npm:^0.7.5": + version: 0.7.5 + resolution: "react-from-dom@npm:0.7.5" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/4955650801361afb8d4edf2ef8a7f0a55ab5af238042264c3ffe0f834f1af7ed2ebba9e2a382cd548200e8f2ad86c19ee6387d63a49a0a50722b5272e26244c7 + react: 16.8 - 19 + checksum: 10c0/1f1fd17d5d08ca2a714dde9a9559c54747eefdc9d1a45d84befb4e036957f197681c0ac5ddea325ac30d0a646c070ec9bb458ebfab281f4e380023451a3a28a0 languageName: node linkType: hard -"react-highlight-words@npm:0.20.0": - version: 0.20.0 - resolution: "react-highlight-words@npm:0.20.0" +"react-highlight-words@npm:0.21.0": + version: 0.21.0 + resolution: "react-highlight-words@npm:0.21.0" dependencies: highlight-words-core: "npm:^1.2.0" memoize-one: "npm:^4.0.0" - prop-types: "npm:^15.5.8" peerDependencies: - react: ^0.14.0 || ^15.0.0 || ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 - checksum: 10c0/1d3aec0c8b8865e3b2855a2fbb11c0af3fad7fc3e2685fcd4952e8bd59b8d8874ecff773830bdcc135f81ec7d13e1f2d6de0f05a153a82b4e192534339cb5550 + react: ^0.14.0 || ^15.0.0 || ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0 + checksum: 10c0/8704097b6ca2b08a943e55e66493fab21d523362c8ea754ef4c7a351b4625b684d7ed1e9155f97d033be78783dacdd88bb83e2766cfc3d462c311551552b8ad5 languageName: node linkType: hard @@ -8386,21 +8422,24 @@ __metadata: languageName: node linkType: hard -"react-i18next@npm:^14.0.0": - version: 14.1.3 - resolution: "react-i18next@npm:14.1.3" +"react-i18next@npm:^15.0.0": + version: 15.5.1 + resolution: "react-i18next@npm:15.5.1" dependencies: - "@babel/runtime": "npm:^7.23.9" + "@babel/runtime": "npm:^7.25.0" html-parse-stringify: "npm:^3.0.1" peerDependencies: i18next: ">= 23.2.3" react: ">= 16.8.0" + typescript: ^5 peerDependenciesMeta: react-dom: optional: true react-native: optional: true - checksum: 10c0/a10426585a3bdfecbec5afc7eeb35df8005fa9d47032dd70dea170adb5506c13ea4e5f417a50669f59c547537d1b3a80e638580987f1c1bbc628ddc8f5974ec9 + typescript: + optional: true + checksum: 10c0/448e190beb3338e5e6e48936c82b5e8610fdb54d0b3dafc14c2af76115a6c931eff601c3e4aee00b3d3c1b78d4d7061bbac443fc9bcff786d131e695c79f5822 languageName: node linkType: hard @@ -8415,15 +8454,14 @@ __metadata: languageName: node linkType: hard -"react-inlinesvg@npm:3.0.2": - version: 3.0.2 - resolution: "react-inlinesvg@npm:3.0.2" +"react-inlinesvg@npm:4.2.0": + version: 4.2.0 + resolution: "react-inlinesvg@npm:4.2.0" dependencies: - exenv: "npm:^1.2.2" - react-from-dom: "npm:^0.6.2" + react-from-dom: "npm:^0.7.5" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/f82f7aa02d4090d6fb7e809d1a0f0e924559e419b311474d3f6ef8342d077ab7ce22699f850b91ba2c84a9fc6f13d38fce07a61e91fcd4cd6e1181f87a09bcc0 + react: 16.8 - 19 + checksum: 10c0/6133c275d96977ff62add59070bbd49965d0941980f6d8f900d87a54d1d56eef6353104c4ea5c6d4fbe014f6333162852dbef28dbdc6ced989d9b8d42c7862e6 languageName: node linkType: hard @@ -8434,7 +8472,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.12.0, react-is@npm:^16.13.1, react-is@npm:^16.7.0": +"react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": version: 16.13.1 resolution: "react-is@npm:16.13.1" checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 @@ -8448,13 +8486,6 @@ __metadata: languageName: node linkType: hard -"react-lifecycles-compat@npm:^3.0.4": - version: 3.0.4 - resolution: "react-lifecycles-compat@npm:3.0.4" - checksum: 10c0/1d0df3c85af79df720524780f00c064d53a9dd1899d785eddb7264b378026979acbddb58a4b7e06e7d0d12aa1494fd5754562ee55d32907b15601068dae82c27 - languageName: node - linkType: hard - "react-loading-skeleton@npm:3.5.0": version: 3.5.0 resolution: "react-loading-skeleton@npm:3.5.0" @@ -8464,35 +8495,22 @@ __metadata: languageName: node linkType: hard -"react-redux@npm:^8.1.3": - version: 8.1.3 - resolution: "react-redux@npm:8.1.3" +"react-redux@npm:^9.1.2": + version: 9.2.0 + resolution: "react-redux@npm:9.2.0" dependencies: - "@babel/runtime": "npm:^7.12.1" - "@types/hoist-non-react-statics": "npm:^3.3.1" - "@types/use-sync-external-store": "npm:^0.0.3" - hoist-non-react-statics: "npm:^3.3.2" - react-is: "npm:^18.0.0" - use-sync-external-store: "npm:^1.0.0" - peerDependencies: - "@types/react": ^16.8 || ^17.0 || ^18.0 - "@types/react-dom": ^16.8 || ^17.0 || ^18.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - react-native: ">=0.59" - redux: ^4 || ^5.0.0-beta.0 + "@types/use-sync-external-store": "npm:^0.0.6" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + "@types/react": ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 peerDependenciesMeta: "@types/react": optional: true - "@types/react-dom": - optional: true - react-dom: - optional: true - react-native: - optional: true redux: optional: true - checksum: 10c0/64c8be2765568dc66a3c442a41dd0ed74fe048d5ceb7a4fe72e5bac3d3687996a7115f57b5156af7406521087065a0e60f9194318c8ca99c55e9ce48558980ce + checksum: 10c0/00d485f9d9219ca1507b4d30dde5f6ff8fb68ba642458f742e0ec83af052f89e65cd668249b99299e1053cc6ad3d2d8ac6cb89e2f70d2ac5585ae0d7fa0ef259 languageName: node linkType: hard @@ -8511,16 +8529,51 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.27.0": - version: 6.27.0 - resolution: "react-router-dom@npm:6.27.0" +"react-router-dom@npm:5.3.4": + version: 5.3.4 + resolution: "react-router-dom@npm:5.3.4" dependencies: - "@remix-run/router": "npm:1.20.0" - react-router: "npm:6.27.0" + "@babel/runtime": "npm:^7.12.13" + history: "npm:^4.9.0" + loose-envify: "npm:^1.3.1" + prop-types: "npm:^15.6.2" + react-router: "npm:5.3.4" + tiny-invariant: "npm:^1.0.2" + tiny-warning: "npm:^1.0.0" peerDependencies: - react: ">=16.8" - react-dom: ">=16.8" - checksum: 10c0/7db48ffd0b387af0eed060ceaf42075d074e63fbd30f4cf60993526b3610883a9ff82615965001165ed69d2bf2f1bce05c594a21c8d0d845e7b9bf203201116e + react: ">=15" + checksum: 10c0/f04f727e2ed2e9d1d3830af02cc61690ff67b1524c0d18690582bfba0f4d14142ccc88fb6da6befad644fddf086f5ae4c2eb7048c67da8a0b0929c19426421b0 + languageName: node + linkType: hard + +"react-router-dom@npm:^7.6.0": + version: 7.6.0 + resolution: "react-router-dom@npm:7.6.0" + dependencies: + react-router: "npm:7.6.0" + peerDependencies: + react: ">=18" + react-dom: ">=18" + checksum: 10c0/a13098a0dac97cde81f9af061c0dfb5ebf76ca00bdb75618d84b26e8abddab1fe9f3db88bce1736dc7c1a8f205ad0135a00148dd43ba72f2ed2c7e69ab77a739 + languageName: node + linkType: hard + +"react-router@npm:5.3.4": + version: 5.3.4 + resolution: "react-router@npm:5.3.4" + dependencies: + "@babel/runtime": "npm:^7.12.13" + history: "npm:^4.9.0" + hoist-non-react-statics: "npm:^3.1.0" + loose-envify: "npm:^1.3.1" + path-to-regexp: "npm:^1.7.0" + prop-types: "npm:^15.6.2" + react-is: "npm:^16.6.0" + tiny-invariant: "npm:^1.0.2" + tiny-warning: "npm:^1.0.0" + peerDependencies: + react: ">=15" + checksum: 10c0/e15c00dfef199249b4c6e6d98e5e76cc352ce66f3270f13df37cc069ddf7c05e43281e8c308fc407e4435d72924373baef1d2890e0f6b0b1eb423cf47315a053 languageName: node linkType: hard @@ -8535,9 +8588,25 @@ __metadata: languageName: node linkType: hard -"react-select@npm:5.8.1": - version: 5.8.1 - resolution: "react-select@npm:5.8.1" +"react-router@npm:7.6.0": + version: 7.6.0 + resolution: "react-router@npm:7.6.0" + dependencies: + cookie: "npm:^1.0.1" + set-cookie-parser: "npm:^2.6.0" + peerDependencies: + react: ">=18" + react-dom: ">=18" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 10c0/abc4d37c01804a3137b1cfd12cf7e55bff092a67c835404ab9da1411ec9e170fe72773b9846d2db084cc0272179237e59d88dbf46cef9db031892feebcb48640 + languageName: node + linkType: hard + +"react-select@npm:5.10.0": + version: 5.10.0 + resolution: "react-select@npm:5.10.0" dependencies: "@babel/runtime": "npm:^7.12.0" "@emotion/cache": "npm:^11.4.0" @@ -8547,11 +8616,11 @@ __metadata: memoize-one: "npm:^6.0.0" prop-types: "npm:^15.6.0" react-transition-group: "npm:^4.3.0" - use-isomorphic-layout-effect: "npm:^1.1.2" + use-isomorphic-layout-effect: "npm:^1.2.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/0fd73e1e472105f980e09c86f0e6adbdc9f2f5c1befa275b08c71653becdd1829f596155a81b5085cb86f18b20bf4f4cc439ab5fe23e68f326e169dcfe00ccf6 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/64cc73ef43556d0a199420d7d19f9f72e3c5e3a7f6828aef5421ec16cc0e4bc337061a8fa3c03afc5b929a087a4ca866f497e0ef865b03fe014c5cacde5e71dd languageName: node linkType: hard @@ -8589,9 +8658,9 @@ __metadata: languageName: node linkType: hard -"react-use@npm:17.5.1": - version: 17.5.1 - resolution: "react-use@npm:17.5.1" +"react-use@npm:17.6.0": + version: 17.6.0 + resolution: "react-use@npm:17.6.0" dependencies: "@types/js-cookie": "npm:^2.2.6" "@xobotyi/scrollbar-width": "npm:^1.9.5" @@ -8610,29 +8679,27 @@ __metadata: peerDependencies: react: "*" react-dom: "*" - checksum: 10c0/3d6a8f46539b32698d31600239e72b5c23376a5343d0d687c6520e14532ed7f5c72c9b99d222be4eeacb0401ce3ae763d5648d0476440c8b4a6afbd56dc98bfa + checksum: 10c0/d122199f3edd056bfd866837b0f19a44366e77c7535c6c2c5eb5f400409eae4c9b1fe73c9d35073c8434080eee388ca8fe49a68d09d6f794ccaa35a4ae2112a9 languageName: node linkType: hard -"react-window@npm:1.8.10": - version: 1.8.10 - resolution: "react-window@npm:1.8.10" +"react-window@npm:1.8.11": + version: 1.8.11 + resolution: "react-window@npm:1.8.11" dependencies: "@babel/runtime": "npm:^7.0.0" memoize-one: "npm:>=3.1.1 <6" peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/eda9afb667d9784513dcc2755b65edf3a1412e7877975322993c1382908aaef0c0b948b7e3b2d705e353306556274d90f7ab19ac40aef2184fa39d4c1e2232ea + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/5ae8da1bc5c47d8f0a428b28a600256e2db511975573e52cb65a9b27ed1a0e5b9f7b3bee5a54fb0da93956d782c24010be434be451072f46ba5a89159d2b3944 languageName: node linkType: hard -"react@npm:^18.3.1": - version: 18.3.1 - resolution: "react@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 +"react@npm:^19.1.0": + version: 19.1.0 + resolution: "react@npm:19.1.0" + checksum: 10c0/530fb9a62237d54137a13d2cfb67a7db6a2156faed43eecc423f4713d9b20c6f2728b026b45e28fcd72e8eadb9e9ed4b089e99f5e295d2f0ad3134251bdd3698 languageName: node linkType: hard @@ -8643,15 +8710,6 @@ __metadata: languageName: node linkType: hard -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: "npm:^2.2.1" - checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b - languageName: node - linkType: hard - "rechoir@npm:^0.8.0": version: 0.8.0 resolution: "rechoir@npm:0.8.0" @@ -8671,19 +8729,10 @@ __metadata: languageName: node linkType: hard -"redux@npm:^4.2.1": - version: 4.2.1 - resolution: "redux@npm:4.2.1" - dependencies: - "@babel/runtime": "npm:^7.9.2" - checksum: 10c0/136d98b3d5dbed1cd6279c8c18a6a74c416db98b8a432a46836bdd668475de6279a2d4fd9d1363f63904e00f0678a8a3e7fa532c897163340baf1e71bb42c742 - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.11.0": - version: 0.11.1 - resolution: "regenerator-runtime@npm:0.11.1" - checksum: 10c0/69cfa839efcf2d627fe358bf302ab8b24e5f182cb69f13e66f0612d3640d7838aad1e55662135e3ef2c1cc4322315b757626094fab13a48f9a64ab4bdeb8795b +"redux@npm:^5.0.1": + version: 5.0.1 + resolution: "redux@npm:5.0.1" + checksum: 10c0/b10c28357194f38e7d53b760ed5e64faa317cc63de1fb95bc5d9e127fab956392344368c357b8e7a9bedb0c35b111e7efa522210cfdc3b3c75e5074718e9069c languageName: node linkType: hard @@ -8847,7 +8896,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:7.8.1, rxjs@npm:^7.8.1": +"rxjs@npm:7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -8856,6 +8905,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.8.2": + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/1fcd33d2066ada98ba8f21fcbbcaee9f0b271de1d38dc7f4e256bfbc6ffcdde68c8bfb69093de7eeb46f24b1fb820620bf0223706cff26b4ab99a7ff7b2e2c45 + languageName: node + linkType: hard + "safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.1.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -8877,9 +8935,9 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:^16.0.2": - version: 16.0.2 - resolution: "sass-loader@npm:16.0.2" +"sass-loader@npm:^16.0.5": + version: 16.0.5 + resolution: "sass-loader@npm:16.0.5" dependencies: neo-async: "npm:^2.6.2" peerDependencies: @@ -8899,21 +8957,24 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/9c5165b44fc6229d8f36fb2af3ebb9d1e3a837bcc80040d3f3fc5793cd2998407e2ed55853c2b342cca2b5e17fa141160198ad034685a95b17126200c320ae11 + checksum: 10c0/216422b7b9e6e3f22739dc96887d883d2415f188d5c47631fd28c80608b5fae71167b26d0c74a1e917614e4d494fa73b1190ad5ca2f587c1afee84dc1d30f003 languageName: node linkType: hard -"sass@npm:^1.80.3": - version: 1.80.3 - resolution: "sass@npm:1.80.3" +"sass@npm:^1.87.0": + version: 1.87.0 + resolution: "sass@npm:1.87.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" - immutable: "npm:^4.0.0" + immutable: "npm:^5.0.2" source-map-js: "npm:>=0.6.2 <2.0.0" + dependenciesMeta: + "@parcel/watcher": + optional: true bin: sass: sass.js - checksum: 10c0/fa08043fc36b854717b6eaf6247ee11341d0aff5e17a645965071866bd677930c9c9467d82ed5a4a666d7897a82be8a61427cd81b808e6b9e2d3b32cf278bebd + checksum: 10c0/bd245faf14e4783dc547765350cf05817edaac0d6d6f6e4da8ab751f3eb3cc3873afd563c0ce416a24aa6c9c4e9023b05096447fc006660a01f76adffb54fbc6 languageName: node linkType: hard @@ -8926,12 +8987,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.2": - version: 0.23.2 - resolution: "scheduler@npm:0.23.2" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78 +"scheduler@npm:^0.26.0": + version: 0.26.0 + resolution: "scheduler@npm:0.26.0" + checksum: 10c0/5b8d5bfddaae3513410eda54f2268e98a376a429931921a81b5c3a2873aab7ca4d775a8caac5498f8cbc7d0daeab947cf923dbd8e215d61671f9f4e392d34356 languageName: node linkType: hard @@ -8947,7 +9006,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": +"schema-utils@npm:^3.1.1": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" dependencies: @@ -8958,6 +9017,18 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^4.3.0, schema-utils@npm:^4.3.2": + version: 4.3.2 + resolution: "schema-utils@npm:4.3.2" + dependencies: + "@types/json-schema": "npm:^7.0.9" + ajv: "npm:^8.9.0" + ajv-formats: "npm:^2.1.1" + ajv-keywords: "npm:^5.1.0" + checksum: 10c0/981632f9bf59f35b15a9bcdac671dd183f4946fe4b055ae71a301e66a9797b95e5dd450de581eb6cca56fb6583ce8f24d67b2d9f8e1b2936612209697f6c277e + languageName: node + linkType: hard + "screenfull@npm:^5.1.0": version: 5.2.0 resolution: "screenfull@npm:5.2.0" @@ -8990,7 +9061,16 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2": +"semver@npm:^7.7.0": + version: 7.7.1 + resolution: "semver@npm:7.7.1" + bin: + semver: bin/semver.js + checksum: 10c0/fd603a6fb9c399c6054015433051bdbe7b99a940a8fb44b85c2b524c4004b023d7928d47cb22154f8d054ea7ee8597f586605e05b52047f048278e4ac56ae958 + languageName: node + linkType: hard + +"serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" dependencies: @@ -8999,6 +9079,13 @@ __metadata: languageName: node linkType: hard +"set-cookie-parser@npm:^2.6.0": + version: 2.7.1 + resolution: "set-cookie-parser@npm:2.7.1" + checksum: 10c0/060c198c4c92547ac15988256f445eae523f57f2ceefeccf52d30d75dedf6bff22b9c26f756bd44e8e560d44ff4ab2130b178bd2e52ef5571bf7be3bd7632d9a + languageName: node + linkType: hard + "set-function-length@npm:^1.2.1": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" @@ -9029,13 +9116,6 @@ __metadata: languageName: node linkType: hard -"shallowequal@npm:^1.1.0": - version: 1.1.0 - resolution: "shallowequal@npm:1.1.0" - checksum: 10c0/b926efb51cd0f47aa9bc061add788a4a650550bbe50647962113a4579b60af2abe7b62f9b02314acc6f97151d4cf87033a2b15fc20852fae306d1a095215396c - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -9092,13 +9172,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:^5.1.0": - version: 5.1.0 - resolution: "slash@npm:5.1.0" - checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 - languageName: node - linkType: hard - "slate-base64-serializer@npm:^0.2.112": version: 0.2.115 resolution: "slate-base64-serializer@npm:0.2.115" @@ -9602,15 +9675,15 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.10": - version: 5.3.10 - resolution: "terser-webpack-plugin@npm:5.3.10" +"terser-webpack-plugin@npm:^5.3.11": + version: 5.3.14 + resolution: "terser-webpack-plugin@npm:5.3.14" dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.20" + "@jridgewell/trace-mapping": "npm:^0.3.25" jest-worker: "npm:^27.4.5" - schema-utils: "npm:^3.1.1" - serialize-javascript: "npm:^6.0.1" - terser: "npm:^5.26.0" + schema-utils: "npm:^4.3.0" + serialize-javascript: "npm:^6.0.2" + terser: "npm:^5.31.1" peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -9620,13 +9693,13 @@ __metadata: optional: true uglify-js: optional: true - checksum: 10c0/66d1ed3174542560911cf96f4716aeea8d60e7caab212291705d50072b6ba844c7391442541b13c848684044042bea9ec87512b8506528c12854943da05faf91 + checksum: 10c0/9b060947241af43bd6fd728456f60e646186aef492163672a35ad49be6fbc7f63b54a7356c3f6ff40a8f83f00a977edc26f044b8e106cc611c053c8c0eaf8569 languageName: node linkType: hard -"terser@npm:^5.26.0": - version: 5.32.0 - resolution: "terser@npm:5.32.0" +"terser@npm:^5.31.1": + version: 5.39.0 + resolution: "terser@npm:5.39.0" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.8.2" @@ -9634,7 +9707,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/94daae4881258eb7d09abd46378e23d11ee46caa507b2fb26c5595c7e490914be734e0de38c50041dc38fae5fca24de11badf042dfbbfc1d336ed117335c420a + checksum: 10c0/83326545ea1aecd6261030568b6191ccfa4cb6aa61d9ea41746a52479f50017a78b77e4725fbbc207c5df841ffa66a773c5ac33636e95c7ab94fe7e0379ae5c7 languageName: node linkType: hard @@ -9698,6 +9771,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.12": + version: 0.2.13 + resolution: "tinyglobby@npm:0.2.13" + dependencies: + fdir: "npm:^6.4.4" + picomatch: "npm:^4.0.2" + checksum: 10c0/ef07dfaa7b26936601d3f6d999f7928a4d1c6234c5eb36896bb88681947c0d459b7ebe797022400e555fe4b894db06e922b95d0ce60cb05fd827a0a66326b18c + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -9839,7 +9922,14 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.7.0, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2": +"tslib@npm:2.8.1, tslib@npm:^2.7.0, tslib@npm:^2.8.1": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2": version: 2.7.0 resolution: "tslib@npm:2.7.0" checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 @@ -9874,43 +9964,43 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.5.4": - version: 5.5.4 - resolution: "typescript@npm:5.5.4" +"typescript@npm:5.7.3": + version: 5.7.3 + resolution: "typescript@npm:5.7.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/422be60f89e661eab29ac488c974b6cc0a660fb2228003b297c3d10c32c90f3bcffc1009b43876a082515a3c376b1eefcce823d6e78982e6878408b9a923199c + checksum: 10c0/b7580d716cf1824736cc6e628ab4cd8b51877408ba2be0869d2866da35ef8366dd6ae9eb9d0851470a39be17cbd61df1126f9e211d8799d764ea7431d5435afa languageName: node linkType: hard -"typescript@npm:^5.6.3": - version: 5.6.3 - resolution: "typescript@npm:5.6.3" +"typescript@npm:^5.8.3": + version: 5.8.3 + resolution: "typescript@npm:5.8.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799 + checksum: 10c0/5f8bb01196e542e64d44db3d16ee0e4063ce4f3e3966df6005f2588e86d91c03e1fb131c2581baf0fb65ee79669eea6e161cd448178986587e9f6844446dbb48 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.5.4#optional!builtin": - version: 5.5.4 - resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07" +"typescript@patch:typescript@npm%3A5.7.3#optional!builtin": + version: 5.7.3 + resolution: "typescript@patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/73409d7b9196a5a1217b3aaad929bf76294d3ce7d6e9766dd880ece296ee91cf7d7db6b16c6c6c630ee5096eccde726c0ef17c7dfa52b01a243e57ae1f09ef07 + checksum: 10c0/6fd7e0ed3bf23a81246878c613423730c40e8bdbfec4c6e4d7bf1b847cbb39076e56ad5f50aa9d7ebd89877999abaee216002d3f2818885e41c907caaa192cc4 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.6.3#optional!builtin": - version: 5.6.3 - resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40" +"typescript@patch:typescript@npm%3A^5.8.3#optional!builtin": + version: 5.8.3 + resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/7c9d2e07c81226d60435939618c91ec2ff0b75fbfa106eec3430f0fcf93a584bc6c73176676f532d78c3594fe28a54b36eb40b3d75593071a7ec91301533ace7 + checksum: 10c0/39117e346ff8ebd87ae1510b3a77d5d92dae5a89bde588c747d25da5c146603a99c8ee588c7ef80faaf123d89ed46f6dbd918d534d641083177d5fac38b8a1cb languageName: node linkType: hard @@ -9928,10 +10018,10 @@ __metadata: languageName: node linkType: hard -"unicorn-magic@npm:^0.1.0": - version: 0.1.0 - resolution: "unicorn-magic@npm:0.1.0" - checksum: 10c0/e4ed0de05b0a05e735c7d8a2930881e5efcfc3ec897204d5d33e7e6247f4c31eac92e383a15d9a6bccb7319b4271ee4bea946e211bf14951fec6ff2cbbb66a92 +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04 languageName: node linkType: hard @@ -9981,10 +10071,10 @@ __metadata: languageName: node linkType: hard -"uplot@npm:1.6.31": - version: 1.6.31 - resolution: "uplot@npm:1.6.31" - checksum: 10c0/b1b03ebb23bda148c16e085006db183f93e99c63dd457863217c81fe7f9d99d680b2bf18f5ea2e39c39df67e20d7bae4e7730853c0af9c86c0eb8e8004e2f8ed +"uplot@npm:1.6.32": + version: 1.6.32 + resolution: "uplot@npm:1.6.32" + checksum: 10c0/4d9cdd5f53371656cfc178ea4ae0d8c9bdbe4c98c99df847926d7e5f5a5bcb8043561219da2979fee7616aabe3619d80fee093befdfe39aae65e6621284c39b1 languageName: node linkType: hard @@ -10007,15 +10097,15 @@ __metadata: languageName: node linkType: hard -"use-isomorphic-layout-effect@npm:^1.1.2": - version: 1.1.2 - resolution: "use-isomorphic-layout-effect@npm:1.1.2" +"use-isomorphic-layout-effect@npm:^1.2.0": + version: 1.2.0 + resolution: "use-isomorphic-layout-effect@npm:1.2.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/d8deea8b85e55ac6daba237a889630bfdbf0ebf60e9e22b6a78a78c26fabe6025e04ada7abef1e444e6786227d921e648b2707db8b3564daf757264a148a6e23 + checksum: 10c0/2e4bdee68d65893b37e716ebdcc111550775189c80e662eda87d6f5b54dc431d3383a18914ea01a893ee5478902a878012713eaebcacbb6611ab88c463accb83 languageName: node linkType: hard @@ -10028,12 +10118,12 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:^1.0.0": - version: 1.2.2 - resolution: "use-sync-external-store@npm:1.2.2" +"use-sync-external-store@npm:^1.4.0": + version: 1.5.0 + resolution: "use-sync-external-store@npm:1.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/23b1597c10adf15b26ade9e8c318d8cc0abc9ec0ab5fc7ca7338da92e89c2536abd150a5891bf076836c352fdfa104fc7231fb48f806fd9960e0cbe03601abaf + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/1b8663515c0be34fa653feb724fdcce3984037c78dd4a18f68b2c8be55cc1a1084c578d5b75f158d41b5ddffc2bf5600766d1af3c19c8e329bb20af2ec6f52f4 languageName: node linkType: hard @@ -10044,12 +10134,19 @@ __metadata: languageName: node linkType: hard -"uuid@npm:9.0.1": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" +"uuid@npm:11.0.5": + version: 11.0.5 + resolution: "uuid@npm:11.0.5" bin: - uuid: dist/bin/uuid - checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b + uuid: dist/esm/bin/uuid + checksum: 10c0/6f59f0c605e02c14515401084ca124b9cb462b4dcac866916a49862bcf831874508a308588c23a7718269226ad11a92da29b39d761ad2b86e736623e3a33b6e7 + languageName: node + linkType: hard + +"uwrap@npm:0.1.1": + version: 0.1.1 + resolution: "uwrap@npm:0.1.1" + checksum: 10c0/1af6f62992e5253d365a9c8ffa87c1069df0e0f88642aa9d55eb1a422cecba3ae0e945110c8283d4abac506ed5beb75ebca0506213a5bccb9bcb1d698302298b languageName: node linkType: hard @@ -10143,35 +10240,33 @@ __metadata: languageName: node linkType: hard -"webpack-cli@npm:^5.1.4": - version: 5.1.4 - resolution: "webpack-cli@npm:5.1.4" +"webpack-cli@npm:^6.0.1": + version: 6.0.1 + resolution: "webpack-cli@npm:6.0.1" dependencies: - "@discoveryjs/json-ext": "npm:^0.5.0" - "@webpack-cli/configtest": "npm:^2.1.1" - "@webpack-cli/info": "npm:^2.0.2" - "@webpack-cli/serve": "npm:^2.0.5" + "@discoveryjs/json-ext": "npm:^0.6.1" + "@webpack-cli/configtest": "npm:^3.0.1" + "@webpack-cli/info": "npm:^3.0.1" + "@webpack-cli/serve": "npm:^3.0.1" colorette: "npm:^2.0.14" - commander: "npm:^10.0.1" + commander: "npm:^12.1.0" cross-spawn: "npm:^7.0.3" - envinfo: "npm:^7.7.3" + envinfo: "npm:^7.14.0" fastest-levenshtein: "npm:^1.0.12" import-local: "npm:^3.0.2" interpret: "npm:^3.1.1" rechoir: "npm:^0.8.0" - webpack-merge: "npm:^5.7.3" + webpack-merge: "npm:^6.0.1" peerDependencies: - webpack: 5.x.x + webpack: ^5.82.0 peerDependenciesMeta: - "@webpack-cli/generators": - optional: true webpack-bundle-analyzer: optional: true webpack-dev-server: optional: true bin: - webpack-cli: bin/cli.js - checksum: 10c0/4266909ae5e2e662c8790ac286e965b2c7fd5a4a2f07f48e28576234c9a5f631847ccddc18e1b3281c7b4be04a7ff4717d2636033a322dde13ac995fd0d9de10 + webpack-cli: ./bin/cli.js + checksum: 10c0/2aaca78e277427f03f528602abd707d224696048fb46286ea636c7975592409c4381ca94d68bbbb3900f195ca97f256e619583e8feb34a80da531461323bf3e2 languageName: node linkType: hard @@ -10189,14 +10284,14 @@ __metadata: languageName: node linkType: hard -"webpack-merge@npm:^5.7.3": - version: 5.10.0 - resolution: "webpack-merge@npm:5.10.0" +"webpack-merge@npm:^6.0.1": + version: 6.0.1 + resolution: "webpack-merge@npm:6.0.1" dependencies: clone-deep: "npm:^4.0.1" flat: "npm:^5.0.2" - wildcard: "npm:^2.0.0" - checksum: 10c0/b607c84cabaf74689f965420051a55a08722d897bdd6c29cb0b2263b451c090f962d41ecf8c9bf56b0ab3de56e65476ace0a8ecda4f4a4663684243d90e0512b + wildcard: "npm:^2.0.1" + checksum: 10c0/bf1429567858b353641801b8a2696ca0aac270fc8c55d4de8a7b586fe07d27fdcfc83099a98ab47e6162383db8dd63bb8cc25b1beb2ec82150422eec843b0dc0 languageName: node linkType: hard @@ -10214,17 +10309,18 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5.95.0": - version: 5.95.0 - resolution: "webpack@npm:5.95.0" +"webpack@npm:^5.99.8": + version: 5.99.8 + resolution: "webpack@npm:5.99.8" dependencies: - "@types/estree": "npm:^1.0.5" - "@webassemblyjs/ast": "npm:^1.12.1" - "@webassemblyjs/wasm-edit": "npm:^1.12.1" - "@webassemblyjs/wasm-parser": "npm:^1.12.1" - acorn: "npm:^8.7.1" - acorn-import-attributes: "npm:^1.9.5" - browserslist: "npm:^4.21.10" + "@types/eslint-scope": "npm:^3.7.7" + "@types/estree": "npm:^1.0.6" + "@types/json-schema": "npm:^7.0.15" + "@webassemblyjs/ast": "npm:^1.14.1" + "@webassemblyjs/wasm-edit": "npm:^1.14.1" + "@webassemblyjs/wasm-parser": "npm:^1.14.1" + acorn: "npm:^8.14.0" + browserslist: "npm:^4.24.0" chrome-trace-event: "npm:^1.0.2" enhanced-resolve: "npm:^5.17.1" es-module-lexer: "npm:^1.2.1" @@ -10236,9 +10332,9 @@ __metadata: loader-runner: "npm:^4.2.0" mime-types: "npm:^2.1.27" neo-async: "npm:^2.6.2" - schema-utils: "npm:^3.2.0" + schema-utils: "npm:^4.3.2" tapable: "npm:^2.1.1" - terser-webpack-plugin: "npm:^5.3.10" + terser-webpack-plugin: "npm:^5.3.11" watchpack: "npm:^2.4.1" webpack-sources: "npm:^3.2.3" peerDependenciesMeta: @@ -10246,7 +10342,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/b9e6d0f8ebcbf0632494ac0b90fe4acb8f4a9b83f7ace4a67a15545a36fe58599c912ab58e625e1bf58ab3b0916c75fe99da6196d412ee0cab0b5065edd84238 + checksum: 10c0/c4852c3b795ed3fba799d2925802a4e259b2de7c2c597f0aaf0e228acfdc6755389ed8c29f1dad86610a9c6ad968c0b57c702b93891d60f09d302af63b2debe0 languageName: node linkType: hard @@ -10316,7 +10412,7 @@ __metadata: languageName: node linkType: hard -"wildcard@npm:^2.0.0": +"wildcard@npm:^2.0.1": version: 2.0.1 resolution: "wildcard@npm:2.0.1" checksum: 10c0/08f70cd97dd9a20aea280847a1fe8148e17cae7d231640e41eb26d2388697cbe65b67fd9e68715251c39b080c5ae4f76d71a9a69fa101d897273efdfb1b58bf7 From 40fe845fa0297f01901f322e08eb2ecd2e14551a Mon Sep 17 00:00:00 2001 From: Ramanath Shanbhag Date: Tue, 13 May 2025 18:03:01 +0530 Subject: [PATCH 03/10] v109 doc changes Signed-off-by: Ramanath Shanbhag --- .../rmf-app/oxygen-webhelp/app/config.js | 2 +- .../app/search/index/index-1.js | 2 +- .../app/search/index/index-2.js | 2 +- .../app/search/index/index-3.js | 2 +- docs/grafana/rmf-app/pdf/rmf_grafana.pdf | Bin 980262 -> 982201 bytes docs/grafana/rmf-app/rn.html | 260 +- docs/grafana/rmf-app/sitemap.xml | 38 +- grafana/rmf-app/CHANGELOG.md | 6 + grafana/rmf-app/doc/src/conref.dita | 2 + grafana/rmf-app/doc/src/pdf/rmf_grafana.fo | 2200 +++++++++++++++ .../doc/src/pdf/rmf_grafana.merged.html | 1582 +++++++++++ .../doc/src/pdf/rmf_grafana.merged.xml | 1723 ++++++++++++ grafana/rmf-app/doc/src/pdf/rmf_grafana.pdf | Bin 980262 -> 982201 bytes .../rmf-app/doc/src/pdf/rmf_grafana.style.xml | 2386 +++++++++++++++++ grafana/rmf-app/doc/src/rn.dita | 278 +- 15 files changed, 8290 insertions(+), 193 deletions(-) create mode 100644 grafana/rmf-app/doc/src/pdf/rmf_grafana.fo create mode 100644 grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.html create mode 100644 grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.xml create mode 100644 grafana/rmf-app/doc/src/pdf/rmf_grafana.style.xml diff --git a/docs/grafana/rmf-app/oxygen-webhelp/app/config.js b/docs/grafana/rmf-app/oxygen-webhelp/app/config.js index eb03725f..afa4ef1a 100644 --- a/docs/grafana/rmf-app/oxygen-webhelp/app/config.js +++ b/docs/grafana/rmf-app/oxygen-webhelp/app/config.js @@ -114,7 +114,7 @@ define(function() { if(id === 'index-1' || id === 'index-2' || id === 'index-3' || id === 'stopwords' ||id === 'htmlFileInfoList' || id === 'keywords') { - args = '20250404160800'; + args = '20250513175015'; } return (url.indexOf('?') === -1 ? '?' : '&') + args; diff --git a/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-1.js b/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-1.js index 41a7bb01..a869951e 100644 --- a/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-1.js +++ b/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-1.js @@ -1,4 +1,4 @@ define(function () { // Auto generated index for searching. -return {"--detach":"11*0*8m,17*0*6f","--env":"11*1*9b$a3,17*1*74$7s","--hostname":"11*0*8h,17*0*6a","--name":"11*0*8c,17*0*65","--pluginurl":"11*0*6c,17*0*2i","--publish":"11*0*97,17*0*70","--restart":"11*0*8o,17*0*6h","--verify":"11*0*gv","--volume":"11*0*8t,17*0*6m","-specific":"7*0*5t",".ini":"13*0*ac","/etc/grafana/grafana.ini":"11*0*3p,13*0*bb","/path/to/certificate.crt":"8*0*9j","/path/to/jwks.json":"8*0*47,13*0*8i","/path/to/privatekey.key":"8*0*a7","/usr/local/etc/grafana/grafana.ini":"11*0*3v,13*0*bh","/var/lib/grafana":"11*0*93,17*0*6s","0-9":"6*0*3p","1.0.x":"15*0*dt","10":"7*0*59","1024":"3*0*9f","12345":"13*2*7e$7l$83","128":"3*0*9c","2023":"15*2*bt$c5$cd","2024":"15*4*2c$34$4f$5g$8s","2025":"15*0*m","24":"6*0*3i","2>&1":"7*0*7t","3.1":"11*0*19,15*0*dj","3000":"6*0*68,11*1*99$9a,17*1*72$73","3650":"11*0*1e","4000":"6*0*55","60":"3*0*5l","60m":"8*1*57$59","9.5.1":"11*0*1i,15*0*dv","&1":"7*0*7t","3.1":"11*0*19,15*0*fk","3000":"6*0*68,11*1*99$9a,17*1*72$73","3650":"11*0*1e","4000":"6*0*55","60":"3*0*5l","60m":"8*1*57$59","9.5.1":"11*0*1i,15*0*g0","/ibm-rmf-grafana-.zip":"11*0*6e,17*0*2k","hub":"11*0*bq","iat":"8*0*5u","ibm":"0*0*2p,2*2*18$24$5e,3*1*1m$28,5*12*-1$6$32$7i,6*0*1d,7*16*-1$c$1f$2p$3f$41$71$7d,9*40*-1$2$9$h,11*39*-1$f$21$23$26$6i$6m$6q$72$9j$9n$9r$a1$ac$ae$ah$bh$db$dl$du$ed$fa$fu$g5$gc$gm$h2$h8$hg$i0$i9,12*11*-1$a$k,13*1*70$7n,14*31*0$4$11,15*22*-1$c$2n$37$3j$3r$9b$9j$a3$bm$ci$cv$d8$dn,16*14*-1$f$1e$21$3h$4g,17*26*-1$f$2o$2s$30$38$45$49$4d$7c$7g$7k$7q$85$87$8a$bj$c5,19*11*-1$p$1q","ibm-rmf":"11*1*71$a0,17*1*37$7p","ibm-rmf-grafana-x.y.z.zip":"11*1*g4$h7","ibm-rmf-grafana-x.y.z.zip.asc":"11*1*gb$h1","icon":"2*1*4p$88,5*1*85$8e","id":"7*1*4r$57,8*0*6t","identical":"6*0*4d,18*0*1o","identifies":"1*0*14","identify":"2*0*29,7*12*-1$t$4v$5p,8*0*35","iframe":"8*0*bu","ignored":"3*0*6d","iii":"0*10*-1$k,3*10*-1$b,11*10*-1$p,14*3*2h$2q$44$dt,19*40*-1$3$9$1c","iip":"14*0*bk","image":"2*0*50,5*2*59$5g$7e,11*2*ak$b4$b7,14*2*bn$c1$ek,15*1*6t$71,17*2*8d$8t$90,18*0*8n","images":"11*2*bd$bg$bk","immediately":"7*0*2f","import":"5*0*82,15*0*7l,17*4*99$9j$ae$bs$bv","importance":"10*0*q","important":"3*0*4e,18*1*2d$2f","imported":"5*0*2q","importing":"11*0*fm","improve":"15*0*5q","improved":"15*0*48","improves":"15*0*1k","incidents":"1*0*1s","include":"15*1*7v$9u","included":"15*0*8l","including":"6*0*3k,19*0*3d","incoming":"1*0*o","index":"5*1*5k$5q,15*0*74","indicative":"7*0*3l","individual":"13*0*aa","information":"1*0*1u,2*1*a1$am,3*0*ac,5*1*26$8k,7*12*-1$q$3p$3q,8*13*-1$9$53$5n$ca,9*0*1s,11*5*hn$j6,13*3*2a$2s$40$8m,14*1*3h$d4,15*1*8n$at,16*2*p$16$1u","informs":"7*0*3s","ini":"11*5*2l$2s$31$3n$3t$45,13*3*ad$b9$bf$bn","insights":"10*0*1a","install":"5*0*2g,9*0*28,11*15*-1$e$50$65$70$9e$dk,13*11*2i$2m$a3,17*3*1e$36$3q$77","installation":"11*0*2i,15*0*ao","installed":"2*1*17$3m,3*1*v$2o,6*0*1c,11*5*15$1g$7f$b3$d3$hv,13*0*1b,17*0*bb","installing":"2*0*1f,3*0*16,6*0*1k,9*0*2e,11*32*0$6$5a$5m,13*1*15$32,15*0*av,17*10*-1$10","instance":"8*1*ak$ce","instead":"18*0*1r","instructions":"11*0*fl,13*0*31,15*0*ad","integer":"14*3*7q$7u$86$8a","integration":"19*0*3m","interactive":"14*0*dp,18*10*-1$d,19*10*-1$n","interacts":"5*0*1t","interest":"14*0*60","interface":"2*0*3f,3*0*2h,5*0*76,11*0*cs,15*0*5k,17*0*b4","internally":"15*5*28$2g$4b$50$5u$9n","interval":"10*0*43","introduction":"1*30*0$2","invalid":"11*0*e4","investigate":"0*10*-1$h","investigation":"16*0*24","involves":"14*0*l","ioq":"5*0*5m","ip":"6*2*4i$4r$50","iss":"8*1*6a$6e","issue":"7*1*52$79,15*0*9a,16*0*1l","issued":"7*0*66","issues":"1*11*-1$d$16,7*12*-1$9$19$5q,15*13*-1$b$91$bh$ca,16*43*-1$1$3$a$s$29$2g","it's":"7*0*4d,18*0*2e","its":"3*0*ah,13*1*1i$34,14*0*1f,17*10*-1$o,19*0*3e","jes":"5*0*5v","job":"10*0*45,14*0*b2","json":"8*3*3v$45$4a$5l,13*14*48$4n$6f$8d$8l$9n","json-encoded":"8*0*5k","jti":"8*0*6d","june":"15*0*5f","jwk":"8*0*3o,13*3*66$6m$73$7q","jwk_set_file":"8*0*3n","jwks":"8*0*49,13*2*8c$8k$9r","jwks.json":"13*0*8b","jwksuri":"13*3*6a$6p$7g$8a","jwt":"8*18*-1$h$t$19$1e$2q$3c$3g$7j$cp,13*28*4b$4q$4u$58$5i$5n$6v$7m$8p$93$9b$ah","keep":"1*0*m","key":"8*3*41$9p$9v$aa,11*4*ek$et$f1$fi$fo,13*1*6h$9p","know":"3*0*1e","known":"15*10*-1$a","label":"18*6*4e$5c$5o$66$6j$70$8a","language":"2*0*64","languages":"2*1*21$27,14*30*3$7","later":"11*0*1j,13*0*2q,15*0*e0","latest":"15*0*7o,16*0*o,17*10*-1$12","lax":"8*0*bb","lb":"14*0*6p","lead":"1*0*1q","learn":"18*0*8o","least":"2*11*-1$o$2u","level":"3*1*69$6g,11*0*1c,14*0*5m","leverage":"17*10*-1$n","lib":"11*0*95,17*0*6u","limited":"18*1*4d$4g","link":"12*10*-1$7","linux":"11*0*3o,13*0*ba","linuxone":"11*0*bi","list":"0*0*22,2*4*5t$6m$7j$7q$bq,6*1*2k$5g,14*10*55$63$6n$70$7g$7v$8b$8p$90$97$9e,18*2*1c$2s$31,19*0*5i","listed":"3*0*7h,11*0*ic","lists":"5*0*37,8*0*m,9*0*1i","lo":"14*1*84$85","loaded":"8*0*43","loading":"11*3*1u$4e$4m$a9,17*0*82","local":"11*0*41,13*1*9t$bj","location":"11*1*37$f3,13*0*ap","locksp":"5*0*67","locksu":"5*0*6g","log":"0*0*1d,6*0*21,7*0*54","logged":"0*0*1i,6*0*26","login":"8*2*1p$24$7f","logs":"7*1*7c$7p","longer":"5*0*89,15*0*42","looking":"7*0*5r","lower":"7*0*5c,14*2*6s$76$7j","lowest":"14*0*88","macos":"11*0*3u,13*0*bg","made":"2*1*97$9c","main":"11*0*fd","maintenance":"3*1*68$6f,18*0*1j","make":"3*0*32,18*0*u","making":"10*0*11","manage":"18*0*8s","management":"9*40*-1$5$c$k,13*3*2e$3i$43$8u,15*0*a6","managing":"5*0*29","mandatory":"8*0*39","manual":"1*0*1k","many":"13*0*24","master":"3*1*a9$af,5*43*-1$1$4$i$3k$7f$8h","match":"14*0*6k","maximizes":"14*0*1e","may":"7*1*1b$6t,10*0*3m,15*0*bi,16*11*-1$b$t","mb":"3*0*91","means":"3*0*5r,10*0*23","measurement":"7*0*6k,14*1*4b$e3,15*0*df,19*10*-1$14","measures":"7*0*2j","meet":"5*0*1k","megabytes":"15*0*4t","mention":"8*0*3e","mentioned":"17*0*4k","menu":"2*0*59,6*0*7g","message":"3*0*9m,7*2*3d$3r$84,11*0*e8","messages":"7*15*-1$n$12$65$6e$6m$6r","met":"19*0*4v","methods":"11*1*4s$58,17*0*1h","metric":"10*1*1m$3a,14*14*2a$2s$30$37$4h$4k$4v,18*10*-1$n","metric_description":"14*1*36$4g","metrics":"0*10*-1$l,1*0*p,3*10*-1$c,10*0*27,11*10*-1$q,14*0*2i,16*0*2q,19*40*-1$4$a$1d","might":"3*0*4q","minimum":"8*0*n","minutes":"8*0*58","missing":"15*0*20","model":"14*0*46","modifications":"7*0*64","modify":"6*0*77,15*0*3p,16*0*4s","modifying":"8*0*cf,13*0*5a","monitor":"0*10*-1$j,3*10*-1$a,9*10*-1$m,11*10*-1$o,14*3*2g$2p$43$ds,16*0*2p,19*50*-1$-1$2$8$1b$1l","monitoring":"0*11*-1$d$1n,1*1*i$1l,6*10*-1$j,19*10*-1$e","more":"1*0*1t,2*1*a0$al,3*0*4s,5*2*15$25$8j,8*0*c9,9*0*1r,11*0*hm,13*2*29$2r$3v,14*1*6h$a4,15*0*aa,18*10*-1$c","most":"17*0*9o","multiple":"2*3*6e$76$at$b2,18*0*1n","must":"0*0*r,2*11*-1$m$12,3*3*t$1d$4k$98,6*13*-1$7$r$39$3u,8*1*q$64,9*0*17,11*16*-1$d$10$1d$1l$76$an$c3,13*5*1l$2l$3e$4g$87$97,14*2*3k$6j$d7,15*1*7i$d3,17*12*-1$d$3c$8g","mutually":"14*1*82$8e","mvs":"14*2*bm$c0$ej,18*0*8m","mvs_image":"14*2*bl$bv$ei,18*0*8l","na":"14*2*8i$8n$cd","name":"2*0*46,3*1*2q$2t,6*8*2u$32$35$3c$3e$41$4h$4q$4v,7*0*7s,8*1*2d$2j,11*0*8d,14*9*4j$5i$5n$5o$6l$bt$c9$cs$dh$di,15*0*c3,16*0*4b,17*1*5e$66,18*11*42$4c$4u$53$6a$6d$6q$77$7o$7v$8e$8h","names":"6*0*47,14*4*8q$8r$91$92$do","nature":"7*0*33","navigating":"0*0*2n,5*0*30,16*0*1d","navigation":"2*0*3d,3*0*2f,11*0*cq,17*0*b2","nbf":"8*0*5t","nd":"14*1*8j$8u","necessary":"7*0*2i,13*0*6k,16*0*47","need":"1*0*1j,3*10*-1$f,7*0*48,13*11*-1$p$3p,15*0*43,16*0*18,17*0*ab","needs":"8*0*3a","network":"3*0*4n,16*1*38$4q","new":"3*1*24$3c,5*0*7t,15*22*-1$6$k$p$5c$8b,17*0*9e","next":"0*9*2f,2*10*9n$be,3*9*a4,6*9*71,11*9*ii","nn":"14*2*8m$9j$9u","note":"2*3*3c$68$6v$92,3*3*2e$38$7s$8j,6*1*3s$3v,11*3*46$b9$cp$dh,14*0*e7,15*0*7g,17*1*3a$b1,18*1*2g$49","notes":"15*30*1$3","notification":"2*0*4o","notifications":"1*0*19,19*0*4n","november":"15*2*2b$c4$cc","now":"15*2*2l$3d$4m","nucleus":"13*0*1p","number":"3*2*1h$46$4c,6*2*5q$66$6k,11*2*7d$b1$hf,13*0*85,14*1*6q$7a,17*1*3l$8q","numerous":"19*0*3n","oa67541":"3*0*6a","object":"8*0*c2","occur":"7*0*1n,15*0*bj","occurs":"7*0*4n","october":"15*0*33","off":"3*2*6k$6q$83,13*0*51","offer":"18*10*-1$g","offers":"5*0*77,13*0*28","ok":"0*0*24,6*0*6m","once":"13*0*5g","one":"2*13*-1$p$2h$2v$52,3*0*37,5*0*14,11*0*4r,14*2*68$6g$ae,18*0*25","only":"3*0*8o,8*0*5r,14*4*6v$7f$7r$87$ee,18*0*4i","opd":"5*0*6q","open":"11*0*dt,16*0*1b","opening":"16*0*1p","operating":"3*0*67,11*0*3b,13*1*1e$at","option":"3*4*5n$6p$78$81$87,5*0*7r,11*1*7b$av,15*2*q$13$4o,17*1*3h$8o","optional":"2*5*8n,3*11*2v$4i$73,11*5*ea,13*0*1u,14*0*57","optionally":"2*0*4a","options":"2*3*6q$7v$a6$ah,5*0*7a,11*0*ar,17*0*8k,19*0*28","ord":"14*2*8h$9t$cc","order":"14*4*8t$94$9b$9i$9p,18*0*32","organizations":"10*0*n","os":"2*2*1b$1i$5h,3*1*12$19,5*12*-1$9$2j$7l,6*1*1g$1n,7*17*-1$f$1i$2s$3i$44$6i$74$7g,9*52*-1$-1$4$b$j$p$2b$2h,11*49*-1$3$9$i$18$53$5d$5p$bu$do$g1$hj$i3,12*11*-1$d$n,13*2*17$2d$8t,14*3*14$41$49$e1,15*21*-1$f$2q$3a$8h$a5$am$b2$bp$cl$db$di$dq,16*12*-1$i$3k$4j,17*41*-1$3$9$i$c8,19*31*-1$-1$-1$s$17$1a$1t","osmf":"0*14*-1$g$11$1a$1f$2c,6*23*-1$-1$e$m$1b$1u$23,8*4*16$6v$81$89$bp,9*13*-1$15$1f$1p$27,13*67*-1$5$b$l$13$19$1o$27$4e$4j$53$60$65$77$80,15*0*ai","other":"8*2*5h$68$b6,10*0*20,11*0*bl,18*0*4l,19*0*4q","outages":"1*0*1o","over":"8*3*83$8b$8i$al,10*0*3h","overall":"5*1*58$5f,15*1*6s$70","override":"11*0*4j","overview":"5*1*4d$4k,15*1*6d$6h","page":"0*10*-1$e,6*11*-1$k$7k,11*2*cl$d9$e1,15*0*9l,17*1*at$bh","panel":"2*18*-1$l$30$3o$43$47$4g$4n$4s$ag,18*10*-1$p,19*0*39","panels":"2*12*-1$9$2p$a5,3*0*3d,5*12*-1$e$17$1f,14*0*1j,19*1*2b$2v","parameter":"8*17*1c$21$2f$34$3s$4f$4o$5e$6l$7h$7u$98$9f$9r$a3$ag$b0$bh,13*2*6b$6c$6q,14*0*58","parameters":"8*43*-1$2$5$b$o$11$cg,13*1*ab$an","part":"14*0*6m","particular":"10*0*2o","particularly":"18*0*1k","partition":"14*0*b9","pass":"13*0*a7","passed":"2*0*bd","password":"3*1*8h$8l,11*0*ch,15*0*47,17*0*ap","pat":"14*0*6d","path":"3*2*47$4d$4h,8*4*48$9a$9k$9t$a8,11*0*3e,13*1*8j$b0,18*1*5m$6u","pattern":"14*0*6e","patterns":"14*0*6i,19*0*2k","pcie":"5*0*72","pdf":"12*40*-1$0$2$i,15*1*2u$31","per":"15*1*5b$8a","percentage":"10*1*3v$4h","perform":"0*0*2i,2*2*2g$2s$33,6*1*2l$74,11*2*5k$60$c4,17*1*1q$92","performance":"5*1*5j$5p,9*10*-1$n,10*0*1d,14*1*a2$dq,15*1*49$73,19*10*-1$1o","performing":"7*0*2d,11*0*el","perfrom":"17*0*22","period":"8*0*4u,14*2*au$bs$c6","permissions":"13*0*3s","personalized":"5*0*1q","physical":"14*1*b6$bh","picker":"2*0*7m","piecing":"19*0*2s","pipeline":"2*0*bg","place":"13*0*8f","placeholders":"18*10*-1$r","planning":"10*0*14","platform":"19*20*-1$-1$d$1h","platforms":"11*0*bn,15*0*b5","plot":"16*1*2o$32","plugin":"2*1*1d$1j,3*1*14$1a,5*13*-1$b$2l$7n$7v,6*1*1i$1o,7*46*-1$2$5$h$1k$2u$3k$46$76$7i,9*1*2c$2i,11*54*-1$4$a$k$54$5e$5q$66$7e$b2$bv$dq$e5$eg$g3$hl$i5$ib,12*10*-1$f,14*0*16,15*19*-1$h$2s$3c$8i$an$b3$br$cn$dd$ds,16*12*-1$k$3m$4l,17*61*-1$-1$4$a$k$14$1k$1t$2c$3j$3u$4m$5v$8r$9d$a8$ca,19*11*-1$u$1v","plugin's":"17*0*3i","plugins":"11*11*20$29$4c$4g$4o$6v$9f$a7$ab$co$d8$e0,17*5*35$78$80$84$b0$bg","pluginurl":"11*1*6d$7a,17*2*2j$3g$40","points":"1*0*23","port":"3*2*1g$45$4b,6*4*5p$5v$61$65$6j,13*1*6u$84","port_number":"3*1*44$4a","powerful":"18*10*-1$9","practice":"3*0*7k,10*0*l","pre":"5*0*1d","pre-configured":"5*0*1c","precise":"16*0*15","prerequisite":"13*0*v","prerequisites":"6*1*13$16,9*1*20$22,13*40*-1$0$6$n","preselected":"3*0*3h","present":"2*10*-1$e,8*0*3b","presentation":"5*0*7c","presented":"2*0*6t,3*0*7d","prevent":"7*0*2k,8*0*b1","preview":"2*0*8g","privatekey":"8*0*a9","problem":"7*10*-1$v","problems":"7*0*5i,16*0*2f","proc":"5*0*45","procedure":"0*9*16,2*9*28,3*9*1j,6*9*1q,11*9*1p,17*9*24"}; +return {"exclude":"3*0*4l","exclusive":"14*1*83$8f","executing":"14*0*i","execution":"5*1*4m$4s,15*1*8b$8e","existing":"2*0*7a,17*0*4o","exp":"8*0*5s","expect":"8*0*5b","expect_claims":"8*0*5a","experience":"10*0*38,15*0*7l","explains":"15*0*c2","explore":"19*10*-1$k","extended":"10*0*3i","facility":"5*1*4c$4j,7*0*6l,9*40*-1$6$d$l,13*1*2f$8v,14*2*4c$bc$e4,15*3*85$89$c0$fh,19*10*-1$15","false":"8*4*29$7b$7p$aq$c7","familiar":"11*0*1m","faster":"8*0*50,10*1*2h$37","feature":"1*10*-1$6,10*0*31","features":"3*0*ai,5*0*8n,13*0*1j,15*10*-1$7,17*0*9s,19*0*22","february":"15*0*ak","fetch":"0*0*30,11*0*ip,19*0*3t","fetched":"10*0*2s","fetching":"14*10*-1$b","field":"2*0*49,3*3*2u$3v$59$95,6*4*33$37$4t$60$63,14*1*3r$de","fields":"3*3*3l$3o$8i$8m,15*0*5b","file":"7*0*55,8*5*3q$46$96$9c$a0$ci,11*7*2e$2m$2t$39$3g$f2$f4$ga,12*10*-1$j,13*4*8e$9u$af$ar$b2,15*0*4o","files":"13*2*5e$67$6n,17*0*4p","filter":"14*3*5q$5r$6b$cb,18*22*3k$3o$3t$7e$7j$85$8k","filters":"14*0*v","find":"8*10*-1$8,11*0*i8,12*10*-1$6,14*0*dm,16*1*14$1i,17*0*a1","first":"5*0*2m,15*0*eh","fix":"16*0*2e","fixed":"15*12*1s$2a$3m$40$48$63$6o$7m$ao$b0$bf$dt$e9","flat":"15*0*27","flexible":"5*0*10","flows":"9*0*1k","focus":"14*0*5t","follow":"11*0*fk","following":"0*0*2j,2*2*15$2k$4v,3*0*3k,5*1*35$7d,6*2*u$2m$75,7*2*1u$6o$7m,8*1*k$ck,9*0*1g,10*0*3s,11*8*13$4u$63$7m$85$aq$c5$em$gq,13*1*r$8g,14*3*20$5d$69$af,15*4*7q$9p$bo$ep$f6,16*0*25,17*5*29$50$5h$5s$8j$93,19*0*21","follows":"11*1*3a$f5,13*1*6r$as,14*1*32$cl,18*1*3u$7k","format":"2*10*-1$j,3*1*40$72,13*0*6o","forwarded":"8*0*2t","found":"10*0*2q,15*8*2c$42$4a$65$6q$7o$bh$dv$eb","frame":"8*0*bs","freedom":"19*0*36","friendly":"14*0*1a","from":"0*13*-1$b$1u$2a$32,2*4*3v$55$5p$6l$7d,3*0*60,5*2*1v$7h$8g,6*13*-1$h$2f$59$7h,7*1*3e$7a,8*2*44$4l$b3,9*11*-1$13$1n,10*1*2l$2v,11*1*gh$ir,14*13*-1$e$1n$25$51,15*2*22$34$c9,16*0*3e,18*8*18$43$5d$5p$67$6k$71$7p$8b,19*1*3v$5e","function":"13*2*4v$5j$8q","functionalities":"17*10*-1$q","functionality":"11*0*1b","functioning":"7*0*2o","functions":"3*0*51","fundamental":"13*0*1c","further":"16*0*23","gather":"16*0*1r","general":"5*1*4v$55,15*1*8g$8j,18*1*3p$7f","gf":"11*2*4b$9d$a6,17*1*76$7v","gf_plugins_allow_loading_unsigned_plugins":"11*1*4a$a5,17*0*7u","github":"11*3*6g$9h$f8$gk,15*1*eq$eu,17*2*2m$43$7a","given":"14*0*75","global":"14*0*aj","go":"2*0*3q,3*0*1k,11*1*7j$cm,17*1*4t$au","gpg":"11*4*ej$ev$fq$gu$hp","gpm":"7*0*6f","grafana":"0*44*-1$1$4$9$u$14$1p$29,1*13*-1$4$h$1e$25,2*11*1c$1k$1p$3j$5m$8d$9o$aa$ao$b4$bh$bt,3*14*-1$d$13$1b$2l$5b,5*15*-1$a$t$2c$2k$7m$8r,6*62*-1$-1$1$4$9$g$18$1h$1p$2r$2v$4k$58$5s$6r$79$7m$7q,7*16*-1$g$1j$2t$3j$45$75$7h,8*51*-1$0$3$j$v$1g$6q$76$8f$8t$aj$bm$cd$cm$cs,9*49*-1$0$7$11$1c$1m$24$2d$2j$2l$2q$2t$30,10*11*-1$6$22,11*80*-1$5$b$j$1h$1o$2h$34$3r$3s$43$44$5f$5s$68$6a$6o$6s$7h$7r$82$8g$8l$91$96$9p$9t$b6$c0$cb$ci$d0$dp$e2$ef$fe$g2$g7$ge$h4$ha$hk$i4$j7,12*11*-1$e$o,13*73*-1$2$8$h$2j$2n$2u$33$37$3l$45$5t$95$99$a4$aj$al$bd$be$bl$bm,14*13*-1$8$15$1i$ec,15*22*-1$g$t$4k$54$ac$at$bq$c8$dj$en$fd$fs$fv,16*13*-1$j$3f$3l$4k,17*65*-1$5$b$j$1f$1l$1u$26$2e$2g$2u$32$4b$4f$4r$59$5d$5q$69$6e$6q$6v$7i$7m$8v$aj$aq$b8$c9,18*2*3e$90$94,19*63*-1$-1$-1$5$b$c$t$1g$1u$3k$4k","grafana's":"18*0*3d","graphs":"15*0*29,19*0*29","greater":"3*0*99","grep":"7*0*7u","guidance":"15*0*cn","guide":"11*1*fs$hr,12*41*-1$1$3$h$q,13*1*2h$91,14*0*4f,15*0*4r","guides":"16*10*-1$5","h2":"8*1*9i$a6","hard":"18*10*-1$k","hard-coded":"18*10*-1$j","has":"7*1*27$34,15*5*v$1q$2l$71$7g$a0","have":"0*1*s$27,2*2*13$96$9g,3*1*u$9t,6*1*s$6p,8*0*73,10*0*1t,11*1*11$hu,14*0*9n,15*1*6g$f5,17*0*c3,18*1*1m$2k,19*0*35","header":"2*0*41,8*2*1v$2c$2i,13*0*9e","header's":"8*0*2h","header_name":"8*0*2b","health":"10*0*1e,19*10*-1$1n","help":"4*20*2,7*11*-1$r$4t,15*0*d5,19*0*2d","helps":"14*0*5s,19*0*3r","hi":"14*1*7p$8g","higher":"11*0*1f,14*0*73","highest":"14*0*7s","highly":"5*0*v","historical":"10*43*-1$0$3$a$i$s$16","holds":"8*0*2k","home":"15*0*ba","host":"6*2*4g$4p$4u,10*0*3r","hosted":"6*0*5u,8*0*ai","hostname":"3*3*1f$43$49$7g,11*0*8i,13*1*6t$7t,17*0*6b,18*3*5h$5t$6o$75","how":"16*10*-1$6,18*0*8p","however":"3*1*4p$7j,13*0*1g","hsm":"5*0*5c","html":"8*0*bq","http":"3*3*3m$42$62$6l,8*1*4m$92,13*0*9d,15*0*32","https":"3*0*48,6*0*5j,8*6*84$8c$8j$93$9h$a5$am,11*3*6f$9g$f7$gj,13*2*6s$7b$7i,15*0*et,17*2*2l$42$79","https://abc.com:12345":"13*0*7a","https://abc.com:12345/jwt/ibm/api/zosmfbuilder/jwk":"13*0*7h","https://github.com/ibm/rmf":"15*0*es","https://github.com/ibm/rmf/blob/main/grafana/rmf-app/public_key.asc":"11*0*f6","https://github.com/ibm/rmf/releases":"11*0*gi","https://github.com/ibm/rmf/releases/download/ibm-rmf-grafana/v1.0.3/ibm-rmf-grafana-1.0.3.zip":"17*0*41","https://github.com/ibm/rmf/releases/download/ibm-rmf-grafana/v/ibm-rmf-grafana-.zip":"11*0*6e,17*0*2k","hub":"11*0*bq","iat":"8*0*5u","ibm":"0*0*2p,2*2*18$24$5e,3*1*1m$28,5*12*-1$6$32$7i,6*0*1d,7*16*-1$c$1f$2p$3f$41$71$7d,9*40*-1$2$9$h,11*39*-1$f$21$23$26$6i$6m$6q$72$9j$9n$9r$a1$ac$ae$ah$bh$db$dl$du$ed$fa$fu$g5$gc$gm$h2$h8$hg$i0$i9,12*11*-1$a$k,13*1*70$7n,14*31*0$4$11,15*23*-1$c$p$4g$50$5c$5k$b4$bc$bs$df$ej$f0$f9$fo,16*14*-1$f$1e$21$3h$4g,17*26*-1$f$2o$2s$30$38$45$49$4d$7c$7g$7k$7q$85$87$8a$bj$c5,19*11*-1$p$1q","ibm-rmf":"11*1*71$a0,17*1*37$7p","ibm-rmf-grafana-x.y.z.zip":"11*1*g4$h7","ibm-rmf-grafana-x.y.z.zip.asc":"11*1*gb$h1","icon":"2*1*4p$88,5*1*85$8e","id":"7*1*4r$57,8*0*6t","identical":"6*0*4d,18*0*1o","identifies":"1*0*14","identify":"2*0*29,7*12*-1$t$4v$5p,8*0*35","iframe":"8*0*bu","ignored":"3*0*6d","iii":"0*10*-1$k,3*10*-1$b,11*10*-1$p,14*3*2h$2q$44$dt,19*40*-1$3$9$1c","iip":"14*0*bk","image":"2*0*50,5*2*59$5g$7e,11*2*ak$b4$b7,14*2*bn$c1$ek,15*1*8m$8q,17*2*8d$8t$90,18*0*8n","images":"11*2*bd$bg$bk","immediately":"7*0*2f","import":"5*0*82,15*0*9e,17*4*99$9j$ae$bs$bv","importance":"10*0*q","important":"3*0*4e,18*1*2d$2f","imported":"5*0*2q","importing":"11*0*fm","improve":"15*0*7j","improved":"15*0*61","improves":"15*0*3d","incidents":"1*0*1s","include":"15*1*9o$bn","included":"15*0*ae","including":"6*0*3k,19*0*3d","incoming":"1*0*o","index":"5*1*5k$5q,15*0*8t","indicative":"7*0*3l","individual":"13*0*aa","information":"1*0*1u,2*1*a1$am,3*0*ac,5*1*26$8k,7*12*-1$q$3p$3q,8*13*-1$9$53$5n$ca,9*0*1s,11*5*hn$j6,13*3*2a$2s$40$8m,14*1*3h$d4,15*1*ag$cm,16*2*p$16$1u","informs":"7*0*3s","ini":"11*5*2l$2s$31$3n$3t$45,13*3*ad$b9$bf$bn","insights":"10*0*1a","install":"5*0*2g,9*0*28,11*15*-1$e$50$65$70$9e$dk,13*11*2i$2m$a3,17*3*1e$36$3q$77","installation":"11*0*2i,15*0*ch","installed":"2*1*17$3m,3*1*v$2o,6*0*1c,11*5*15$1g$7f$b3$d3$hv,13*0*1b,17*0*bb","installing":"2*0*1f,3*0*16,6*0*1k,9*0*2e,11*32*0$6$5a$5m,13*1*15$32,15*0*co,17*10*-1$10","instance":"8*1*ak$ce","instead":"18*0*1r","instructions":"11*0*fl,13*0*31,15*0*c6","integer":"14*3*7q$7u$86$8a","integration":"19*0*3m","interactive":"14*0*dp,18*10*-1$d,19*10*-1$n","interacts":"5*0*1t","interest":"14*0*60","interface":"2*0*3f,3*0*2h,5*0*76,11*0*cs,15*0*7d,17*0*b4","internally":"15*8*2b$41$49$64$6p$7n$bg$du$ea","interval":"10*0*43","introduction":"1*30*0$2","invalid":"11*0*e4","investigate":"0*10*-1$h","investigation":"16*0*24","involves":"14*0*l","ioq":"5*0*5m","ip":"6*2*4i$4r$50","iss":"8*1*6a$6e","issue":"7*1*52$79,15*0*b3,16*0*1l","issued":"7*0*66","issues":"1*11*-1$d$16,7*12*-1$9$19$5q,15*13*-1$b$aq$da$e7,16*43*-1$1$3$a$s$29$2g","it's":"7*0*4d,18*0*2e","its":"3*0*ah,13*1*1i$34,14*0*1f,17*10*-1$o,19*0*3e","jes":"5*0*5v","job":"10*0*45,14*0*b2","json":"8*3*3v$45$4a$5l,13*14*48$4n$6f$8d$8l$9n","json-encoded":"8*0*5k","jti":"8*0*6d","june":"15*0*78","jwk":"8*0*3o,13*3*66$6m$73$7q","jwk_set_file":"8*0*3n","jwks":"8*0*49,13*2*8c$8k$9r","jwks.json":"13*0*8b","jwksuri":"13*3*6a$6p$7g$8a","jwt":"8*18*-1$h$t$19$1e$2q$3c$3g$7j$cp,13*28*4b$4q$4u$58$5i$5n$6v$7m$8p$93$9b$ah","keep":"1*0*m","key":"8*3*41$9p$9v$aa,11*4*ek$et$f1$fi$fo,13*1*6h$9p","know":"3*0*1e","known":"15*10*-1$a","label":"18*6*4e$5c$5o$66$6j$70$8a","language":"2*0*64","languages":"2*1*21$27,14*30*3$7","later":"11*0*1j,13*0*2q,15*0*g1","latest":"15*0*9h,16*0*o,17*10*-1$12","lax":"8*0*bb","lb":"14*0*6p","lead":"1*0*1q","learn":"18*0*8o","least":"2*11*-1$o$2u","level":"3*1*69$6g,11*0*1c,14*0*5m","leverage":"17*10*-1$n","lib":"11*0*95,17*0*6u","limited":"18*1*4d$4g","line":"15*0*28","link":"12*10*-1$7","linux":"11*0*3o,13*0*ba","linuxone":"11*0*bi","list":"0*0*22,2*4*5t$6m$7j$7q$bq,6*1*2k$5g,14*10*55$63$6n$70$7g$7v$8b$8p$90$97$9e,18*2*1c$2s$31,19*0*5i","listed":"3*0*7h,11*0*ic","lists":"5*0*37,8*0*m,9*0*1i","lo":"14*1*84$85","loaded":"8*0*43","loading":"11*3*1u$4e$4m$a9,17*0*82","local":"11*0*41,13*1*9t$bj","location":"11*1*37$f3,13*0*ap","locksp":"5*0*67","locksu":"5*0*6g","log":"0*0*1d,6*0*21,7*0*54","logged":"0*0*1i,6*0*26","login":"8*2*1p$24$7f","logs":"7*1*7c$7p","longer":"5*0*89,15*0*5r","looking":"7*0*5r","lower":"7*0*5c,14*2*6s$76$7j","lowest":"14*0*88","macos":"11*0*3u,13*0*bg","made":"2*1*97$9c","main":"11*0*fd","maintenance":"3*1*68$6f,18*0*1j","make":"3*0*32,18*0*u","making":"10*0*11","manage":"18*0*8s","management":"9*40*-1$5$c$k,13*3*2e$3i$43$8u,15*0*bv","managing":"5*0*29","mandatory":"8*0*39","manual":"1*0*1k","many":"13*0*24","master":"3*1*a9$af,5*43*-1$1$4$i$3k$7f$8h","match":"14*0*6k","maximizes":"14*0*1e","may":"7*1*1b$6t,10*0*3m,15*1*l$db,16*11*-1$b$t","mb":"3*0*91","means":"3*0*5r,10*0*23","measurement":"7*0*6k,14*1*4b$e3,15*0*fg,19*10*-1$14","measures":"7*0*2j","meet":"5*0*1k","megabytes":"15*0*6m","mention":"8*0*3e","mentioned":"17*0*4k","menu":"2*0*59,6*0*7g","message":"3*0*9m,7*2*3d$3r$84,11*0*e8","messages":"7*15*-1$n$12$65$6e$6m$6r","met":"19*0*4v","methods":"11*1*4s$58,17*0*1h","metric":"10*1*1m$3a,14*14*2a$2s$30$37$4h$4k$4v,18*10*-1$n","metric_description":"14*1*36$4g","metrics":"0*10*-1$l,1*0*p,3*10*-1$c,10*0*27,11*10*-1$q,14*0*2i,16*0*2q,19*40*-1$4$a$1d","might":"3*0*4q","minimum":"8*0*n","minutes":"8*0*58","missing":"15*0*3p","model":"14*0*46","modifications":"7*0*64","modify":"6*0*77,15*0*5i,16*0*4s","modifying":"8*0*cf,13*0*5a","monitor":"0*10*-1$j,3*10*-1$a,9*10*-1$m,11*10*-1$o,14*3*2g$2p$43$ds,16*0*2p,19*50*-1$-1$2$8$1b$1l","monitoring":"0*11*-1$d$1n,1*1*i$1l,6*10*-1$j,19*10*-1$e","more":"1*0*1t,2*1*a0$al,3*0*4s,5*2*15$25$8j,8*0*c9,9*0*1r,11*0*hm,13*2*29$2r$3v,14*1*6h$a4,15*0*c3,18*10*-1$c","most":"17*0*9o","multiple":"2*3*6e$76$at$b2,18*0*1n","must":"0*0*r,2*11*-1$m$12,3*3*t$1d$4k$98,6*13*-1$7$r$39$3u,8*1*q$64,9*0*17,11*16*-1$d$10$1d$1l$76$an$c3,13*5*1l$2l$3e$4g$87$97,14*2*3k$6j$d7,15*1*9b$f4,17*12*-1$d$3c$8g","mutually":"14*1*82$8e","mvs":"14*2*bm$c0$ej,18*0*8m","mvs_image":"14*2*bl$bv$ei,18*0*8l","na":"14*2*8i$8n$cd","name":"2*0*46,3*1*2q$2t,6*8*2u$32$35$3c$3e$41$4h$4q$4v,7*0*7s,8*1*2d$2j,11*0*8d,14*9*4j$5i$5n$5o$6l$bt$c9$cs$dh$di,15*0*ds,16*0*4b,17*1*5e$66,18*11*42$4c$4u$53$6a$6d$6q$77$7o$7v$8e$8h","names":"6*0*47,14*4*8q$8r$91$92$do","nature":"7*0*33","navigating":"0*0*2n,5*0*30,16*0*1d","navigation":"2*0*3d,3*0*2f,11*0*cq,17*0*b2","nbf":"8*0*5t","nd":"14*1*8j$8u","necessary":"7*0*2i,13*0*6k,16*0*47","need":"1*0*1j,3*10*-1$f,7*0*48,13*11*-1$p$3p,15*0*5s,16*0*18,17*0*ab","needs":"8*0*3a","network":"3*0*4n,16*1*38$4q","new":"3*1*24$3c,5*0*7t,15*22*-1$6$k$2i$75$a4,17*0*9e","next":"0*9*2f,2*10*9n$be,3*9*a4,6*9*71,11*9*ii","nn":"14*2*8m$9j$9u","note":"2*3*3c$68$6v$92,3*3*2e$38$7s$8j,6*1*3s$3v,11*3*46$b9$cp$dh,14*0*e7,15*0*99,17*1*3a$b1,18*1*2g$49","notes":"15*30*1$3","notification":"2*0*4o","notifications":"1*0*19,19*0*4n","november":"15*2*44$e1$ed","now":"15*2*4e$56$6f","nucleus":"13*0*1p","number":"3*2*1h$46$4c,6*2*5q$66$6k,11*2*7d$b1$hf,13*0*85,14*1*6q$7a,15*0*1m,17*1*3l$8q","numerous":"19*0*3n","oa67541":"3*0*6a","object":"8*0*c2","occur":"7*0*1n,15*0*dc","occurs":"7*0*4n","october":"15*0*4s","off":"3*2*6k$6q$83,13*0*51","offer":"18*10*-1$g","offers":"5*0*77,13*0*28","ok":"0*0*24,6*0*6m","once":"13*0*5g","one":"2*13*-1$p$2h$2v$52,3*0*37,5*0*14,11*0*4r,14*2*68$6g$ae,18*0*25","only":"3*0*8o,8*0*5r,14*4*6v$7f$7r$87$ee,18*0*4i","opd":"5*0*6q","open":"11*0*dt,16*0*1b","opening":"16*0*1p","operating":"3*0*67,11*0*3b,13*1*1e$at","optimize":"15*0*12","option":"3*4*5n$6p$78$81$87,5*0*7r,11*1*7b$av,15*2*2j$2s$6h,17*1*3h$8o","optional":"2*5*8n,3*11*2v$4i$73,11*5*ea,13*0*1u,14*0*57","optionally":"2*0*4a","options":"2*3*6q$7v$a6$ah,5*0*7a,11*0*ar,17*0*8k,19*0*28","ord":"14*2*8h$9t$cc","order":"14*4*8t$94$9b$9i$9p,18*0*32","organizations":"10*0*n","os":"2*2*1b$1i$5h,3*1*12$19,5*12*-1$9$2j$7l,6*1*1g$1n,7*17*-1$f$1i$2s$3i$44$6i$74$7g,9*52*-1$-1$4$b$j$p$2b$2h,11*49*-1$3$9$i$18$53$5d$5p$bu$do$g1$hj$i3,12*11*-1$d$n,13*2*17$2d$8t,14*3*14$41$49$e1,15*22*-1$f$s$4j$53$aa$bu$cf$cr$di$em$fc$fj$fr,16*12*-1$i$3k$4j,17*41*-1$3$9$i$c8,19*31*-1$-1$-1$s$17$1a$1t","osmf":"0*14*-1$g$11$1a$1f$2c,6*23*-1$-1$e$m$1b$1u$23,8*4*16$6v$81$89$bp,9*13*-1$15$1f$1p$27,13*67*-1$5$b$l$13$19$1o$27$4e$4j$53$60$65$77$80,15*0*cb","other":"8*2*5h$68$b6,10*0*20,11*0*bl,18*0*4l,19*0*4q","outages":"1*0*1o","over":"8*3*83$8b$8i$al,10*0*3h","overall":"5*1*58$5f,15*1*8l$8p","override":"11*0*4j","overview":"5*1*4d$4k,15*1*86$8a","page":"0*10*-1$e,6*11*-1$k$7k,11*2*cl$d9$e1,15*0*be,17*1*at$bh","panel":"2*18*-1$l$30$3o$43$47$4g$4n$4s$ag,15*0*1f,18*10*-1$p,19*0*39","panels":"2*12*-1$9$2p$a5,3*0*3d,5*12*-1$e$17$1f,14*0*1j,15*0*1j,19*1*2b$2v","parameter":"8*17*1c$21$2f$34$3s$4f$4o$5e$6l$7h$7u$98$9f$9r$a3$ag$b0$bh,13*2*6b$6c$6q,14*0*58","parameters":"8*43*-1$2$5$b$o$11$cg,13*1*ab$an","part":"14*0*6m","particular":"10*0*2o","particularly":"18*0*1k","partition":"14*0*b9","pass":"13*0*a7","passed":"2*0*bd","password":"3*1*8h$8l,11*0*ch,15*0*60,17*0*ap","pat":"14*0*6d","path":"3*2*47$4d$4h,8*4*48$9a$9k$9t$a8,11*0*3e,13*1*8j$b0,18*1*5m$6u","pattern":"14*0*6e","patterns":"14*0*6i,19*0*2k","pcie":"5*0*72","pdf":"12*40*-1$0$2$i,15*1*4n$4q","per":"15*1*74$a3","percentage":"10*1*3v$4h","perform":"0*0*2i,2*2*2g$2s$33,6*1*2l$74,11*2*5k$60$c4,17*1*1q$92","performance":"5*1*5j$5p,9*10*-1$n,10*0*1d,14*1*a2$dq,15*1*62$8s,19*10*-1$1o","performing":"7*0*2d,11*0*el","perfrom":"17*0*22","period":"8*0*4u,14*2*au$bs$c6","permissions":"13*0*3s","personalized":"5*0*1q","physical":"14*1*b6$bh","picker":"2*0*7m","piecing":"19*0*2s","pipeline":"2*0*bg","place":"13*0*8f","placeholders":"18*10*-1$r","planning":"10*0*14","platform":"19*20*-1$-1$d$1h","platforms":"11*0*bn,15*0*cu","plot":"16*1*2o$32","plugin":"2*1*1d$1j,3*1*14$1a,5*13*-1$b$2l$7n$7v,6*1*1i$1o,7*46*-1$2$5$h$1k$2u$3k$46$76$7i,9*1*2c$2i,11*54*-1$4$a$k$54$5e$5q$66$7e$b2$bv$dq$e5$eg$g3$hl$i5$ib,12*10*-1$f,14*0*16,15*20*-1$h$u$4l$55$ab$cg$cs$dk$eo$fe$ft,16*12*-1$k$3m$4l,17*61*-1$-1$4$a$k$14$1k$1t$2c$3j$3u$4m$5v$8r$9d$a8$ca,19*11*-1$u$1v","plugin's":"17*0*3i","plugins":"11*11*20$29$4c$4g$4o$6v$9f$a7$ab$co$d8$e0,17*5*35$78$80$84$b0$bg","pluginurl":"11*1*6d$7a,17*2*2j$3g$40","points":"1*0*23,15*1*1o$20","port":"3*2*1g$45$4b,6*4*5p$5v$61$65$6j,13*1*6u$84","port_number":"3*1*44$4a","powerful":"18*10*-1$9","practice":"3*0*7k,10*0*l","pre":"5*0*1d","pre-configured":"5*0*1c","precise":"16*0*15","prerequisite":"13*0*v","prerequisites":"6*1*13$16,9*1*20$22,13*40*-1$0$6$n","preselected":"3*0*3h","present":"2*10*-1$e,8*0*3b","presentation":"5*0*7c","presented":"2*0*6t,3*0*7d","prevent":"7*0*2k,8*0*b1","preview":"2*0*8g","privatekey":"8*0*a9","problem":"7*10*-1$v","problems":"7*0*5i,16*0*2f","proc":"5*0*45","procedure":"0*9*16,2*9*28,3*9*1j,6*9*1q,11*9*1p,17*9*24","procedures":"17*0*18"}; }); \ No newline at end of file diff --git a/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-3.js b/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-3.js index 28363a6f..a0ffca93 100644 --- a/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-3.js +++ b/docs/grafana/rmf-app/oxygen-webhelp/app/search/index/index-3.js @@ -1,4 +1,4 @@ define(function () { // Auto generated index for searching. -return {"procedures":"17*0*18","process":"14*0*k,15*1*12$8q","processor":"10*1*48$4k,14*0*bd","procu":"5*0*4g","produces":"2*0*ba","profiles":"8*1*6p$75","programmer":"14*0*4e","programmer's":"14*0*4d","protocol":"8*2*7s$9e$a2","provide":"2*0*4e,6*0*3a,10*0*36,15*1*8m$ar,16*0*1v","provided":"3*0*65,6*0*12,9*0*1v,13*0*3k,15*0*bb","provides":"1*10*-1$7,2*2*8e$9p$bi,5*11*-1$c$u,8*0*22,10*0*18,14*0*17,19*11*-1$v$20","proxy":"3*0*54,8*0*1u,16*2*34$45$4t","public":"11*3*es$f0$fh$fn","public_key.asc":"11*0*er","publish":"11*0*98,17*0*71","purposes":"10*0*p,18*0*4m","qualifications":"14*1*39$56","qualify":"14*0*a0","queries":"2*0*6f,5*0*1h,10*0*1o,14*12*-1$9$1s$22,18*10*-1$o,19*0*3i","query":"2*18*-1$q$20$26$5v$62$63$6c$89$8i,10*0*2a,14*56*2$6$j$1c$2b$2d$2k$2m$2t$31$cg$ck,18*51*2$6$3h$3m$3r$7d$7i","quickly":"7*1*15$4u","range":"2*1*7u$9q,10*0*4o","ranges":"2*0*84,10*11*-1$g$3k","re":"5*0*81,15*1*45$7k,17*4*98$9i$ad$br$bu","re-enter":"15*0*44","re-import":"5*0*80,15*0*7j,17*4*97$9h$ac$bq$bt","real":"1*10*-1$e","receiving":"7*0*3b","recommended":"8*0*8d","refer":"1*0*24,2*2*a9$an$bs,3*0*a7,5*1*2b$8q,8*0*cj,11*0*ho,13*3*2b$2t$41$8r,18*0*93","referring":"7*0*53,17*0*a6","refresh":"2*0*86","regularly":"16*0*m","related":"11*5*j5,15*0*92","relative":"2*0*7s,10*11*-1$e$4m","release":"15*31*0$2$ch,17*0*a5","releases":"11*2*6k$9l$go,17*2*2q$47$7e","relevant":"14*0*u","reliable":"1*10*-1$8","remember":"3*0*96,11*1*74$al,17*0*8e","remove":"5*0*8f,6*0*78,17*0*5j","rename":"11*0*2u","replace":"11*1*77$ao,17*1*3d$8h,18*10*-1$i","replaces":"17*0*4n","report":"2*0*5d,10*0*42,11*1*28$aj,14*21*2j$b0$bq$c4$cf$cj$cp$cr$dg$dj$dn$e5$en$eq,15*0*3l,17*0*8c","report_name":"14*1*cq$df","reporting":"5*12*-1$o$3d$3q,7*30*1$4","reports":"0*10*-1$m,11*10*-1$r,14*1*2r$eb,16*0*2u,19*11*-1$1e$2c","repository":"15*0*cq","request":"14*0*a1,15*0*18","requested":"14*1*3i$d5","requesting":"14*0*62","requests":"3*0*5u,10*0*26","require":"2*10*-1$n,10*0*3n","required":"3*0*4r,5*0*8a,6*1*36$62,11*0*bm,14*0*al,16*0*1t","requirements":"2*0*ak,5*0*1m,11*0*57,15*20*-1$9$b8$d1,19*0*3c","research":"10*0*12","resolutions":"16*1*2a$2i","resolve":"15*0*bf","resolved":"7*0*37,15*0*c8","resource":"0*11*-1$c$1m,6*14*-1$i$31$34$3d$40,7*0*6j,14*16*34$3c$3f$3p$3t$45$4a$4m$4q$5j$5p$cn$cv$d2$dc$e2$ef,15*0*de,18*11*44$4f$4h$5e$5q$68$6c$6l$72$7q$8c$8g,19*10*-1$13","resource_name":"18*1*6b$8f","resource_type":"14*5*33$3b$3o$cm$cu$db","resources":"10*1*1g$3q","respond":"1*10*-1$b","response":"5*1*5s$62,7*0*4c,15*1*76$79","restart":"11*1*7g$8p,17*1*4q$6i","result":"2*0*bb","resulting":"3*0*6r","results":"0*9*25,2*9*8j$9e,3*9*9r,6*9*6n,11*9*de$hs,17*9*bm$c1","retrieval":"8*0*52,15*0*1i","retrieve":"14*4*s$1k$23$2e$2n","retrieved":"8*0*4k","returned":"14*3*78$7o$81$8d","reverse":"3*0*53","review":"13*0*3f","rm":"17*0*5n","rmf":"0*13*-1$i$2q$2t$39,2*50*-1$2$6$g$19$1g$1m$1s$22$25$5f$65$8a$9j,3*59*-1$-1$1$5$9$m$10$17$1n$1p$29$5t$9v$a8$ae,5*90*-1$-1$-1$-1$-1$0$3$7$f$l$n$p$2h$33$3a$3c$3e$3j$3m$3p$3s$7j,6*1*1e$1l,7*16*-1$d$1g$2q$3g$42$72$7e,9*1*29$2f,11*91*-1$-1$1$7$g$n$16$22$24$27$51$5b$5n$6j$6n$6r$73$81$8f$8k$90$9k$9o$9s$a2$ad$af$ai$bs$d5$dc$dm$dv$ee$fb$ff$fv$g6$gd$gn$h3$h9$hh$i1$ia$im$j2,12*11*-1$b$l,14*47*-1$1$5$f$12$1b$1o$27$2f$2o$42,15*28*-1$d$15$1q$2o$38$3k$3s$55$84$8f$9c$9k$ak$b0$bn$cj$d0$d9$do,16*15*-1$g$2j$2t$2v$3i$4h,17*63*-1$1$7$g$2p$2t$31$39$46$4a$4e$58$5c$5p$68$6d$6p$7d$7h$7l$7r$86$88$8b$bd$bk$c6,18*32*0$4$3f$7h,19*53*-1$-1$1$7$q$18$1r$4i$56","rmf-grafana":"11*1*8e$8j,17*4*57$5b$5o$67$6c","rmf-grafana-data":"11*1*80$8v,17*0*6o","root":"7*0*50","row":"2*0*6s","rows":"5*0*16","rs2":"14*0*ca","rs21":"14*1*bu$c8","run":"7*0*7l,11*6*62$7l$84$88$8b$gp$jb,17*4*28$4v$5g$5r$64","running":"13*0*79,17*0*61","runs":"13*0*82","same":"10*0*29","samesite":"8*0*au","save":"2*1*90$99,3*0*9h,10*0*33,13*0*88,15*0*3v","scenarios":"15*0*1v","seamlessly":"5*0*1s","search":"3*0*27,11*1*d6$dd,16*0*11,17*1*be$bl","seconds":"3*0*58","section":"3*0*3n,6*0*14,8*0*10,11*2*2a$fp$if,13*0*44,15*0*ap,16*10*-1$4","sections":"8*0*cl,13*0*s","secure":"3*0*7m,6*0*5m,8*1*8l$ae","security":"8*0*ab,15*0*c9","see":"0*1*12$37,2*2*1e$1q$23,3*0*15,6*2*15$1j$7o,11*0*j0,13*0*ak,15*1*1o$30","select":"0*0*1o,2*3*51$6j$79$7r,6*1*57$5h,18*7*3v$5b$5n$65$6i$6v$7l$89","selected":"14*0*4l","selecting":"18*0*16,19*0*5c","sends":"1*0*18","sensitive":"4*20*1,6*0*43","separate":"18*0*1t","separated":"14*0*5f","sequentially":"2*0*b7","series":"5*12*-1$r$3g$3u,15*0*25,16*1*2l$3p","server":"0*3*v$15$1q$35,3*10*-1$j,5*0*23,6*46*-1$2$5$a$2s$30$4l$5t$6s$7a,7*2*5l$69$6d,8*3*1h$77$7r$8u,9*0*2r,11*1*7i$iu,13*7*38$3m$4k$54$5c$61$78$81,15*2*1e$aj$dm,16*0*3g,17*2*1g$27$4s,19*0*43","server's":"13*0*5b","servers":"9*0*2m","service":"10*1*2j$2t,13*0*6i,14*1*ap$as","services":"13*0*1v","set":"2*1*80$bc,3*3*30$74$82$84,6*0*67,8*14*1k$28$2o$3k$3p$42$56$7a$7o$91$9g$a4$ap$ba$c6,11*0*1q,13*0*9q,19*0*4a","setting":"3*1*6c$6n","settings":"13*0*3j,15*0*99,16*2*35$46$4v,18*1*2u$3a","setup":"15*0*ac","setups":"3*0*4u","several":"2*0*bj,5*0*78","severe":"7*0*24","severity":"7*0*1p","share":"19*10*-1$l","shared":"14*0*bj","sharing":"8*0*b4","should":"8*0*3d","shown":"2*0*4u,7*0*82","shows":"10*0*3u","sign":"8*0*6i,11*0*ck,17*0*as","sign-in":"11*0*cj,17*0*ar","signature":"11*3*e6$ec$g9$gt","signed":"11*0*ei","significant":"1*0*1r,2*10*-1$s,10*0*u","similar":"6*0*46","similarly":"5*0*86,10*0*4c,11*0*bj","simplifies":"18*0*1i","simply":"18*0*15,19*0*5b","size":"3*1*8v$94,15*0*4s,19*0*3g","skip":"3*1*75$7u","smooth":"7*0*2n","so":"17*10*-1$u","socket":"16*1*3c$3u","sockets":"16*1*42$4a","software":"15*0*d6","solution":"1*10*-1$9","solutions":"16*0*1k","solving":"16*0*r","some":"13*11*-1$m$a9","sort":"14*3*8o$8v$96$9d","source":"0*0*2v,2*3*1o$67$7f$8c,3*20*-1$o$1r$26$2c$2s$35$3g$8a$93$9k$a1,5*10*-1$h,11*0*io,14*1*o$29,15*3*10$17$3u$9e,18*0*21","sources":"0*0*3b,2*1*1u$7c,3*31*3$7$22,10*0*1q,11*0*j4,14*11*-1$h$1q,15*2*1s$57$86,18*0*1q,19*0*3p","spaced":"5*0*4q","spaceg":"5*0*53","spaces":"14*0*a8,15*0*c1","special":"6*0*3q","specific":"1*0*v,7*0*5u,15*1*90$b7,19*0*4e","specified":"8*0*4t,14*0*26","specifies":"13*0*6d,14*2*6f$6r$7b","specify":"3*1*56$8u,6*0*6i,8*2*2g$99$9s,14*0*9s,15*0*4p","specifying":"10*1*49$4l,14*0*p","stand":"11*0*5h,17*0*1n","stand-alone":"11*0*5g,17*0*1m","start":"13*10*-1$f","starting":"13*0*36","state":"11*0*7s","status":"6*1*2b$7j,10*0*1b","stay":"7*0*4f","step":"2*4*2m$2o$2t$34$3r,11*1*59$7k,17*1*1i$4u","steps":"2*0*2i,6*0*2n,11*3*5l$61$c8$ep,17*2*1r$23$96","stop":"17*2*25$52$56","stopped":"11*0*8s,17*0*6l","stor":"5*0*5d","storage":"5*3*41$48$6n$6u,15*1*65$69","storc":"5*0*5n","storcr":"5*0*60","store":"2*0*9a,8*0*4r","stored":"13*0*9s","storf":"5*0*68","storing":"11*0*7q","storm":"5*0*6h","storr":"5*0*6r","stors":"5*0*73","streams":"16*0*3n","sub":"8*3*37$3l$3m$6b,11*1*c7$eo,17*0*95","sub-steps":"11*1*c6$en,17*0*94","subject":"8*0*3f","succeeds":"3*0*9q","successful":"8*0*1s","sufficient":"7*10*-1$p","support":"13*9*4c,15*1*93$c0,16*1*1f$22","supports":"19*0*3l","syntax":"14*20*2u$2v$ch$ci,18*51*3$7$3i$3l$3q$7c$7g","sys1":"6*1*4a$4b","sysinfo":"5*0*46","sysplex":"14*3*b4$eh$em$ep,18*1*6f$8j","sysplexes":"9*10*-1$q","sysrg":"5*0*4h","syssum":"5*0*4r","system":"1*13*-1$c$t$13$1n,6*15*-1$c$2a$4e$5b$6u$7i,10*1*3l$44,13*3*1f$1r$3a$9v,15*10*-1$8","systems":"9*0*2o,11*0*3c,13*0*au","tab":"2*1*60$6i","table":"2*0*2l,5*1*36$3i,7*0*1v,8*0*l,9*0*1h,11*0*4v,16*0*26","tailor":"5*0*1i","take":"7*1*2h$49,13*0*22","target":"6*12*-1$b$5a$6t,9*0*2n","task":"7*0*2a,9*0*1j,17*9*16","tasks":"0*0*2k,2*0*16,6*2*v$11$76,9*2*1a$1q$1u,11*0*14","terminate":"7*0*2e","test":"3*0*9i","testing":"3*0*7q","than":"3*0*9a,10*0*2i,14*1*74$7k","them":"2*0*b6","thereby":"19*10*-1$1i","therefore":"6*0*44","thresholds":"19*0*4g","through":"1*0*g,9*31*1$8$1d,13*11*-1$j$5u,15*0*a2,16*1*12$3s","time":"1*10*-1$f,2*2*7l$7t$83,5*15*-1$q$2n$3f$3t$5t$63,10*16*-1$f$35$3j$40$4b$4i$4n,15*2*24$77$7a,16*1*2k$3o","timeline":"5*8*4a$4l$4u$57$5i$5r$6c$6l$70,15*7*67$6e$6k$6p$6v$75$78$7d","timeout":"3*0*55","timestamp":"10*2*1r$2c$2p","tip":"6*0*69,7*0*77,17*0*9u","title":"2*1*48$4t","titles":"18*10*-1$q","tls":"3*1*76$7v","together":"19*0*2t","token":"8*4*1q$25$2l$2v$3u,13*12*4a$4p$9c$9k","token's":"13*0*9j","tokens":"13*1*4r$5o","tool":"17*0*4i,18*10*-1$a","top":"18*0*1d,19*0*5j","topic":"3*0*ab,7*0*6g,9*0*21,14*0*47,15*4*53$82$8k$a8$ba","total":"14*1*b5$bg","track":"1*0*n","transfer":"8*0*8n,15*0*1n","transferred":"3*0*70","transform":"2*0*bn","transformation":"2*6*6h$6k$6p$74$au$b9$bf","transformations":"2*2*77$b3$br,14*0*10","transforming":"14*10*-1$c","transient":"7*0*32","trends":"19*0*2j","trigger":"19*0*4m","troubleshoot":"7*11*-1$u$17","troubleshooting":"15*0*b9,16*30*0$2","true":"8*6*1l$1m$2a$7c$7q$ar$c8","tso":"8*0*6s","ttl":"8*0*4d","turn":"3*0*6j,13*0*57","turned":"13*0*50","type":"3*0*2d,6*0*5c,7*0*20,14*10*35$3d$3e$3q$4n$4r$5k$co$d0$d1$dd,18*9*4r$50$57$5j$5v$6e$6r$78$83$8i","types":"2*1*54$5o,7*0*1s,14*2*21$3u$eg","typical":"2*0*a7,16*10*-1$9","typically":"3*0*7n","ub":"14*0*79","ui":"11*1*c1$e3,15*1*5d$8c","ulq":"14*1*5h$c7,18*6*4p$55$5g$5s$6n$74$81","unblocking":"16*0*40","uncompressed":"3*0*71","under":"11*0*id","understand":"19*0*2f","understood":"2*0*1v","unified":"19*0*46","unique":"6*0*3b,7*1*4p$7v,14*0*1g,19*0*32","unless":"11*0*8r,17*0*6k","unless-stopped":"11*0*8q,17*0*6j","unsigned":"11*3*1v$4f$4n$aa,17*0*83","up":"1*0*1c,6*2*3h$54$6f,7*0*4h,8*0*6j,17*11*-1$l$9q,19*0*4b","up-down":"6*0*6e","up-to-date":"7*0*4g,17*0*9p","updated":"15*3*5a$63$89$aq,16*0*n,17*1*a2$c4","updates":"7*1*40$4k,15*1*7s$9r","upgrade":"15*0*8p,17*2*17$2b$5u","upgraded":"17*1*3m$8s","upgrading":"15*0*8e,17*43*-1$0$6$11$1j$1s$9c","upon":"2*0*6n,8*0*1r","upper":"7*0*5d,14*2*5l$7c$7m","uri":"16*0*4d","url":"0*0*18,3*3*3r$3t$41$4g,6*0*1s,8*1*7e$7l,11*0*ca,13*0*6e,17*0*ai","url_login":"8*0*7d","usage":"2*0*a8,5*0*54,10*0*1c","use":"2*0*9u,5*0*1a,6*1*5i$6d,8*24*-1$e$1b$2e$33$3r$4e$5d$6k$7g$7t$97$9q$af$av$bg,9*10*-1$g,10*0*r,11*0*49,13*3*1h$4m$5m$69,14*4*1v$2c$2l$67$ad,15*0*d7,18*0*27","used":"3*0*7o,11*0*b8,17*1*1d$91,18*0*4k","user":"2*0*3e,3*2*2g$8g$8k,7*0*39,8*5*23$36$4q$6o$74$8q,10*1*21$25,11*2*cr$fr$hq,12*11*-1$g$p,13*12*3b$3h$42$5r,14*0*19,15*1*5j$5r,17*0*b3","user's":"8*0*8p","user-friendly":"14*0*18","username":"8*0*31,11*0*cg,17*0*ao","username_claim":"8*0*30","users":"7*0*3t,8*0*70,13*0*3u,15*0*bd,19*10*-1$i","using":"5*1*64$6a,7*12*-1$b$1e$70,8*1*67$6r,10*10*-1$c,11*0*67,13*0*9m,15*0*bl,16*10*-1$e,17*0*2d,18*1*1e$3c","usr":"11*0*40,13*0*bi","utilization":"14*2*b7$be$bi","utilize":"15*0*7n","utilized":"3*0*64","utilizing":"17*0*9n","v1":"15*10*o$2e$36$4h$5i$7u$8u$9t$bv$c7$cf,17*1*3s$4c","v1.0.0":"15*0*ce","v1.0.1":"15*0*c6","v1.0.2":"15*0*bu","v1.0.3":"15*1*8t$9s,17*0*3r","v1.0.4":"15*1*5h$7t","v1.0.5":"15*0*4g","v1.0.6":"15*0*35","v1.0.7":"15*0*2d","v1.0.8":"15*0*n","v10":"15*0*96","v10.x.x":"15*0*95","v9":"13*0*2p","v9.5.1":"13*0*2o","va":"14*1*8k$95","validate":"8*0*65","validation":"8*1*20$5q","validity":"8*0*5g,13*0*9l","valuable":"10*0*19","value":"3*2*5k$97$9e,8*10*1j$27$2n$3i$55$79$7n$90$ao$b9$c5,11*1*1r$78,13*0*7f,14*3*3n$6u$7e$da,17*1*3e$3v,18*12*17$2m$4q$4s$4v$51$54$56$58$80$82$84$86,19*0*5d","values":"8*0*13,11*0*ap,13*0*a8,14*8*64$6a$72$7i$98$99$9f$9g$ag,17*0*8i,18*20*-1$-1$m$s","var":"11*0*94,17*0*6t","variable":"11*0*4i,18*34*1$5$2o$30$38$3g,19*0*54","variables":"18*16*-1$8$t$1f$28$2h$3b$8t","variances":"19*0*2l","various":"5*0*1b,10*1*o$1f,19*2*26$2u$40","vary":"7*0*1o","vd":"14*1*8l$9c","velocity":"5*1*4n$4t,15*1*6j$6m","verify":"3*1*77$80,8*1*3t$5f,11*2*eb$gs$h0,13*0*9i","version":"2*0*3k,3*0*2m,5*0*7u,11*10*6p$6t$79$7c$9q$9u$at$b0$b5$d1$he,17*23*-1$13$2v$33$3f$3k$3t$4l$7j$7n$8m$8p$8u$9f$b9","via":"14*0*1r,15*0*9g,19*0*4o","view":"0*0*2l,2*0*8q,5*0*2u,7*10*-1$k,10*11*-1$9$3f,12*10*-1$8,14*0*ea","viewed":"10*0*1v","viewing":"7*0*10,10*0*h,18*0*2c","visible":"3*0*8n","visual":"2*10*-1$i","visualization":"2*48*-1$1$5$t$2f$37$39$3u$53$5n$8m$9i,5*0*1j,14*0*1m,19*42*-1$0$6$12$27$33","visualizations":"2*0*9r,15*1*26$3m","visualize":"11*10*-1$m","visualizing":"19*10*-1$f","volume":"11*3*7p$7u$8u$je,17*0*6n","wait":"3*0*5d","waiting":"10*0*47","want":"0*0*1s,2*0*2d,6*0*4n,14*0*9m,17*0*3p","warning":"7*1*3a$3c,11*0*e7","way":"18*10*-1$h","ways":"2*0*bk","web":"0*0*1b,6*0*1v,8*2*40$8r$bj,11*0*cd,13*12*49$4o$6g$9o,16*3*3b$3t$41$49,17*0*al","websites":"8*0*b7","what":"0*9*2d,2*9*9l,3*9*a2,6*9*6v,11*9*ig,15*9*j,18*0*2a","what's":"15*9*i","when":"1*0*12,2*1*4j$b1,3*3*39$4v$5s$8p,5*1*2e$7s,7*0*4l,8*3*5o$85$9d$a1,9*10*-1$e,10*0*3d,11*0*dr,13*2*14$62$a1,14*0*61,15*0*4i,16*10*-1$d,19*0*4t","whenever":"7*10*-1$6","where":"6*0*5r,11*0*hc,13*1*7r$7u,14*1*3a$ct,17*0*5a,18*9*45$4n$5f$5r$69$6m$73$7r$7t$8d","whereas":"16*0*2s","which":"2*0*2b,3*1*5a$5q,7*0*60,11*0*eh,13*0*6j,14*2*3g$d3$du,15*0*1j,19*0*3q","while":"7*12*-1$a$1d$6v,15*0*bk","who":"8*0*71","windows":"11*0*3h,13*0*b3","within":"7*0*3n,8*0*bn,11*0*5t,15*0*22,17*0*1v,19*10*-1$1f","without":"7*0*62,18*10*3j$3n$3s","wlm":"14*6*a9$am$ao$ar$av$bp$c3","work":"8*2*82$8a$8h,16*0*4e","workflow":"14*0*c2","working":"3*0*9l,11*1*1n$3j,13*11*-1$g$b5","working_dir/conf/defaults.ini":"11*0*3i,13*0*b4","workload":"14*0*an","workscope":"14*3*9v$ah$ak$ce","ws":"16*0*4c","x-forwarded-access-token":"8*0*2s","x-jwt-assertion":"8*0*2p","x.y.z":"11*0*hd","xcf":"5*1*6d$6j,15*1*7b$7e","xcfgroup":"5*0*5e","xcfovw":"5*0*5o","xcfpath":"5*0*61","xcfsys":"5*0*69","you":"0*24*-1$6$o$q$1g$1r$26$2g,1*2*k$1b$1g,2*33*-1$b$v$11$2c$4b$4h$4k$5a$69$70$8f$95$9f$ac$aq$bl,3*29*-1$e$q$s$1c$1t$3a$4j$6h$79$8q$9s$a5,5*5*18$1o$2f$2s$7o$8b,6*27*-1$6$o$q$24$38$3t$4m$6b$6o$72,7*37*-1$-1$-1$7$i$s$13$1a$2b$47$5n$6s$7j,8*25*-1$-1$6$c$p$63$66$86$ah,9*21*-1$-1$f$t$16,10*14*-1$7$1h$34$3e$4d,11*31*-1$c$t$v$1k$2n$47$75$am$c2$dj$ds$ht$i6$ij,12*10*-1$4,13*33*-1$-1$d$o$1k$21$2k$3d$3o$4f$55$5l$86$96$9f$a2$a5,14*9*1t$3j$4s$65$9k$9q$ab$d6$dk$e8,15*5*2j$3o$41$4l$7h$d2,16*6*v$17$19$1g$1m$2b$4m,17*28*-1$-1$c$r$1c$3b$3o$8f$9m$9v$a9$c2,18*4*1l$22$2b$34$91,19*17*-1$1j$23$2e$2m$34$3s$48$50","your":"2*15*-1$f$3a$8h$8r$aj$av,5*0*1l,9*10*-1$r,11*3*2b$33$56$cc,13*2*1q$39$75,14*0*5v,16*1*37$4p,17*0*ak,18*2*13$1g$8u,19*3*2g$3b$4h$59","z/os":"2*2*1a$1h$5g,3*1*11$18,5*12*-1$8$2i$7k,6*1*1f$1m,7*17*-1$e$1h$2r$3h$43$6h$73$7f,9*52*-1$-1$3$a$i$o$2a$2g,11*49*-1$2$8$h$17$52$5c$5o$bt$dn$g0$hi$i2,12*11*-1$c$m,13*2*16$2c$8s,14*3*13$40$48$e0,15*21*-1$e$2p$39$8g$a4$al$b1$bo$ck$da$dh$dp,16*12*-1$h$3j$4i,17*41*-1$2$8$h$c7,19*31*-1$-1$-1$r$16$19$1s","z/osmf":"0*14*-1$f$10$19$1e$2b,6*23*-1$-1$d$l$1a$1t$22,8*4*15$6u$80$88$bo,9*13*-1$14$1e$1o$26,13*67*-1$4$a$k$12$18$1n$26$4d$4i$52$5v$64$76$7v,15*0*ah","zcx":"11*0*bb","zcx/zlinux":"11*0*ba","zfsfs":"5*0*6i","zfskn":"5*0*6s","zfsovw":"5*0*74","zip":"11*5*6u$9v$g8$gf$h5$hb,17*2*34$4g$7o","zlinux":"11*0*bc","zosmf":"8*0*6f","zosmfbuilder":"13*1*72$7p"}; +return {"process":"14*0*k,15*1*2r$aj","processor":"10*1*48$4k,14*0*bd","procu":"5*0*4g","produces":"2*0*ba","profiles":"8*1*6p$75","programmer":"14*0*4e","programmer's":"14*0*4d","protocol":"8*2*7s$9e$a2","provide":"2*0*4e,6*0*3a,10*0*36,15*1*af$ck,16*0*1v","provided":"3*0*65,6*0*12,9*0*1v,13*0*3k,15*0*d4","provides":"1*10*-1$7,2*2*8e$9p$bi,5*11*-1$c$u,8*0*22,10*0*18,14*0*17,19*11*-1$v$20","proxy":"3*0*54,8*0*1u,16*2*34$45$4t","public":"11*3*es$f0$fh$fn","public_key.asc":"11*0*er","publish":"11*0*98,17*0*71","purposes":"10*0*p,18*0*4m","qualifications":"14*1*39$56","qualify":"14*0*a0","queries":"2*0*6f,5*0*1h,10*0*1o,14*12*-1$9$1s$22,18*10*-1$o,19*0*3i","query":"2*18*-1$q$20$26$5v$62$63$6c$89$8i,10*0*2a,14*56*2$6$j$1c$2b$2d$2k$2m$2t$31$cg$ck,18*51*2$6$3h$3m$3r$7d$7i","querying":"15*0*16","quickly":"7*1*15$4u","range":"2*1*7u$9q,10*0*4o,15*0*1e","ranges":"2*0*84,10*11*-1$g$3k","re":"5*0*81,15*1*5u$9d,17*4*98$9i$ad$br$bu","re-enter":"15*0*5t","re-import":"5*0*80,15*0*9c,17*4*97$9h$ac$bq$bt","real":"1*10*-1$e","receiving":"7*0*3b","recommended":"8*0*8d","refer":"1*0*24,2*2*a9$an$bs,3*0*a7,5*1*2b$8q,8*0*cj,11*0*ho,13*3*2b$2t$41$8r,18*0*93","referring":"7*0*53,17*0*a6","refresh":"2*0*86","regularly":"16*0*m","related":"11*5*j5,15*0*ar","relative":"2*0*7s,10*11*-1$e$4m","release":"15*31*0$2$ei,17*0*a5","releases":"11*2*6k$9l$go,17*2*2q$47$7e","relevant":"14*0*u","reliable":"1*10*-1$8","remember":"3*0*96,11*1*74$al,17*0*8e","remove":"5*0*8f,6*0*78,17*0*5j","rename":"11*0*2u","replace":"11*1*77$ao,17*1*3d$8h,18*10*-1$i","replaces":"17*0*4n","report":"2*0*5d,10*0*42,11*1*28$aj,14*21*2j$b0$bq$c4$cf$cj$cp$cr$dg$dj$dn$e5$en$eq,15*0*5e,17*0*8c","report_name":"14*1*cq$df","reporting":"5*12*-1$o$3d$3q,7*30*1$4","reports":"0*10*-1$m,11*10*-1$r,14*1*2r$eb,16*0*2u,19*11*-1$1e$2c","repository":"15*0*er","request":"14*0*a1,15*0*31","requested":"14*1*3i$d5","requesting":"14*0*62","requests":"3*0*5u,10*0*26","require":"2*10*-1$n,10*0*3n","required":"3*0*4r,5*0*8a,6*1*36$62,11*0*bm,14*0*al,15*0*1l,16*0*1t","requirements":"2*0*ak,5*0*1m,11*0*57,15*20*-1$9$d1$f2,19*0*3c","research":"10*0*12","resolutions":"16*1*2a$2i","resolve":"15*0*d8","resolved":"7*0*37,15*0*e5","resource":"0*11*-1$c$1m,6*14*-1$i$31$34$3d$40,7*0*6j,14*16*34$3c$3f$3p$3t$45$4a$4m$4q$5j$5p$cn$cv$d2$dc$e2$ef,15*0*ff,18*11*44$4f$4h$5e$5q$68$6c$6l$72$7q$8c$8g,19*10*-1$13","resource_name":"18*1*6b$8f","resource_type":"14*5*33$3b$3o$cm$cu$db","resources":"10*1*1g$3q","respond":"1*10*-1$b","response":"5*1*5s$62,7*0*4c,15*1*8v$92","restart":"11*1*7g$8p,17*1*4q$6i","result":"2*0*bb","resulting":"3*0*6r,15*0*26","results":"0*9*25,2*9*8j$9e,3*9*9r,6*9*6n,11*9*de$hs,17*9*bm$c1","retrieval":"8*0*52,15*0*3b","retrieve":"14*4*s$1k$23$2e$2n","retrieved":"8*0*4k","returned":"14*3*78$7o$81$8d","reverse":"3*0*53","review":"13*0*3f","rm":"17*0*5n","rmf":"0*13*-1$i$2q$2t$39,2*50*-1$2$6$g$19$1g$1m$1s$22$25$5f$65$8a$9j,3*59*-1$-1$1$5$9$m$10$17$1n$1p$29$5t$9v$a8$ae,5*90*-1$-1$-1$-1$-1$0$3$7$f$l$n$p$2h$33$3a$3c$3e$3j$3m$3p$3s$7j,6*1*1e$1l,7*16*-1$d$1g$2q$3g$42$72$7e,9*1*29$2f,11*91*-1$-1$1$7$g$n$16$22$24$27$51$5b$5n$6j$6n$6r$73$81$8f$8k$90$9k$9o$9s$a2$ad$af$ai$bs$d5$dc$dm$dv$ee$fb$ff$fv$g6$gd$gn$h3$h9$hh$i1$ia$im$j2,12*11*-1$b$l,14*47*-1$1$5$f$12$1b$1o$27$2f$2o$42,15*29*-1$d$q$2u$3j$4h$51$5d$5l$6u$9t$a8$b5$bd$cd$cp$dg$ek$f1$fa$fp,16*15*-1$g$2j$2t$2v$3i$4h,17*63*-1$1$7$g$2p$2t$31$39$46$4a$4e$58$5c$5p$68$6d$6p$7d$7h$7l$7r$86$88$8b$bd$bk$c6,18*32*0$4$3f$7h,19*53*-1$-1$1$7$q$18$1r$4i$56","rmf-grafana":"11*1*8e$8j,17*4*57$5b$5o$67$6c","rmf-grafana-data":"11*1*80$8v,17*0*6o","root":"7*0*50","row":"2*0*6s","rows":"5*0*16","rs2":"14*0*ca","rs21":"14*1*bu$c8","run":"7*0*7l,11*6*62$7l$84$88$8b$gp$jb,17*4*28$4v$5g$5r$64","running":"13*0*79,17*0*61","runs":"13*0*82","same":"10*0*29","samesite":"8*0*au","save":"2*1*90$99,3*0*9h,10*0*33,13*0*88,15*0*5o","scenarios":"15*0*3o","seamlessly":"5*0*1s","search":"3*0*27,11*1*d6$dd,16*0*11,17*1*be$bl","seconds":"3*0*58","section":"3*0*3n,6*0*14,8*0*10,11*2*2a$fp$if,13*0*44,15*0*ci,16*10*-1$4","sections":"8*0*cl,13*0*s","secure":"3*0*7m,6*0*5m,8*1*8l$ae","security":"8*0*ab,15*0*e6","see":"0*1*12$37,2*2*1e$1q$23,3*0*15,6*2*15$1j$7o,11*0*j0,13*0*ak,15*1*3h$4p","select":"0*0*1o,2*3*51$6j$79$7r,6*1*57$5h,18*7*3v$5b$5n$65$6i$6v$7l$89","selected":"14*0*4l,15*0*1c","selecting":"18*0*16,19*0*5c","sends":"1*0*18","sensitive":"4*20*1,6*0*43","separate":"18*0*1t","separated":"14*0*5f","sequentially":"2*0*b7","series":"5*12*-1$r$3g$3u,15*2*19$24$3u,16*1*2l$3p","server":"0*3*v$15$1q$35,3*10*-1$j,5*0*23,6*46*-1$2$5$a$2s$30$4l$5t$6s$7a,7*2*5l$69$6d,8*3*1h$77$7r$8u,9*0*2r,11*1*7i$iu,13*7*38$3m$4k$54$5c$61$78$81,15*2*37$cc$fn,16*0*3g,17*2*1g$27$4s,19*0*43","server's":"13*0*5b","servers":"9*0*2m","service":"10*1*2j$2t,13*0*6i,14*1*ap$as","services":"13*0*1v","set":"2*1*80$bc,3*3*30$74$82$84,6*0*67,8*14*1k$28$2o$3k$3p$42$56$7a$7o$91$9g$a4$ap$ba$c6,11*0*1q,13*0*9q,19*0*4a","setting":"3*1*6c$6n","settings":"13*0*3j,15*0*b2,16*2*35$46$4v,18*1*2u$3a","setup":"15*0*c5","setups":"3*0*4u","several":"2*0*bj,5*0*78","severe":"7*0*24","severity":"7*0*1p","share":"19*10*-1$l","shared":"14*0*bj","sharing":"8*0*b4","should":"8*0*3d","shown":"2*0*4u,7*0*82","shows":"10*0*3u","sign":"8*0*6i,11*0*ck,17*0*as","sign-in":"11*0*cj,17*0*ar","signature":"11*3*e6$ec$g9$gt","signed":"11*0*ei","significant":"1*0*1r,2*10*-1$s,10*0*u","similar":"6*0*46","similarly":"5*0*86,10*0*4c,11*0*bj","simplifies":"18*0*1i","simply":"18*0*15,19*0*5b","size":"3*1*8v$94,15*2*14$1g$6l,19*0*3g","skip":"3*1*75$7u","smooth":"7*0*2n","so":"17*10*-1$u","socket":"16*1*3c$3u","sockets":"16*1*42$4a","software":"15*0*f7","solution":"1*10*-1$9","solutions":"16*0*1k","solving":"16*0*r","some":"13*11*-1$m$a9","sort":"14*3*8o$8v$96$9d","source":"0*0*2v,2*3*1o$67$7f$8c,3*20*-1$o$1r$26$2c$2s$35$3g$8a$93$9k$a1,5*10*-1$h,11*0*io,14*1*o$29,15*3*2p$30$5n$b7,18*0*21","sources":"0*0*3b,2*1*1u$7c,3*31*3$7$22,10*0*1q,11*0*j4,14*11*-1$h$1q,15*2*3l$70$9v,18*0*1q,19*0*3p","spaced":"5*0*4q","spaceg":"5*0*53","spaces":"14*0*a8,15*0*dq","special":"6*0*3q","specific":"1*0*v,7*0*5u,15*2*1u$ap$d0,19*0*4e","specified":"8*0*4t,14*0*26","specifies":"13*0*6d,14*2*6f$6r$7b","specify":"3*1*56$8u,6*0*6i,8*2*2g$99$9s,14*0*9s,15*0*6i","specifying":"10*1*49$4l,14*0*p","stand":"11*0*5h,17*0*1n","stand-alone":"11*0*5g,17*0*1m","start":"13*10*-1$f","starting":"13*0*36","state":"11*0*7s","status":"6*1*2b$7j,10*0*1b","stay":"7*0*4f","step":"2*4*2m$2o$2t$34$3r,11*1*59$7k,15*0*13,17*1*1i$4u","steps":"2*0*2i,6*0*2n,11*3*5l$61$c8$ep,17*2*1r$23$96","stop":"17*2*25$52$56","stopped":"11*0*8s,17*0*6l","stor":"5*0*5d","storage":"5*3*41$48$6n$6u,15*1*7u$82","storc":"5*0*5n","storcr":"5*0*60","store":"2*0*9a,8*0*4r","stored":"13*0*9s","storf":"5*0*68","storing":"11*0*7q","storm":"5*0*6h","storr":"5*0*6r","stors":"5*0*73","streams":"16*0*3n","sub":"8*3*37$3l$3m$6b,11*1*c7$eo,17*0*95","sub-steps":"11*1*c6$en,17*0*94","subject":"8*0*3f","succeeds":"3*0*9q","successful":"8*0*1s","sufficient":"7*10*-1$p","support":"13*9*4c,15*1*as$dp,16*1*1f$22","supports":"19*0*3l","syntax":"14*20*2u$2v$ch$ci,18*51*3$7$3i$3l$3q$7c$7g","sys1":"6*1*4a$4b","sysinfo":"5*0*46","sysplex":"14*3*b4$eh$em$ep,18*1*6f$8j","sysplexes":"9*10*-1$q","sysrg":"5*0*4h","syssum":"5*0*4r","system":"1*13*-1$c$t$13$1n,6*15*-1$c$2a$4e$5b$6u$7i,10*1*3l$44,13*3*1f$1r$3a$9v,15*10*-1$8","systems":"9*0*2o,11*0*3c,13*0*au","tab":"2*1*60$6i","table":"2*0*2l,5*1*36$3i,7*0*1v,8*0*l,9*0*1h,11*0*4v,16*0*26","tailor":"5*0*1i","take":"7*1*2h$49,13*0*22","target":"6*12*-1$b$5a$6t,9*0*2n","task":"7*0*2a,9*0*1j,17*9*16","tasks":"0*0*2k,2*0*16,6*2*v$11$76,9*2*1a$1q$1u,11*0*14","terminate":"7*0*2e","test":"3*0*9i","testing":"3*0*7q","than":"3*0*9a,10*0*2i,14*1*74$7k","them":"2*0*b6","thereby":"19*10*-1$1i","therefore":"6*0*44","thresholds":"19*0*4g","through":"1*0*g,9*31*1$8$1d,13*11*-1$j$5u,15*0*br,16*1*12$3s","time":"1*10*-1$f,2*2*7l$7t$83,5*15*-1$q$2n$3f$3t$5t$63,10*16*-1$f$35$3j$40$4b$4i$4n,15*5*18$1d$23$3t$90$93,16*1*2k$3o","timeline":"5*8*4a$4l$4u$57$5i$5r$6c$6l$70,15*7*80$87$8d$8i$8o$8u$91$96","timeout":"3*0*55","timestamp":"10*2*1r$2c$2p","tip":"6*0*69,7*0*77,17*0*9u","title":"2*1*48$4t","titles":"18*10*-1$q","tls":"3*1*76$7v","together":"19*0*2t","token":"8*4*1q$25$2l$2v$3u,13*12*4a$4p$9c$9k","token's":"13*0*9j","tokens":"13*1*4r$5o","tool":"17*0*4i,18*10*-1$a","top":"18*0*1d,19*0*5j","topic":"3*0*ab,7*0*6g,9*0*21,14*0*47,15*4*6s$9r$ad$c1$d3","total":"14*1*b5$bg","track":"1*0*n","transfer":"8*0*8n,15*0*3g","transferred":"3*0*70","transform":"2*0*bn","transformation":"2*6*6h$6k$6p$74$au$b9$bf","transformations":"2*2*77$b3$br,14*0*10","transforming":"14*10*-1$c","transient":"7*0*32","trends":"19*0*2j","trigger":"19*0*4m","troubleshoot":"7*11*-1$u$17","troubleshooting":"15*0*d2,16*30*0$2","true":"8*6*1l$1m$2a$7c$7q$ar$c8","tso":"8*0*6s","ttl":"8*0*4d","turn":"3*0*6j,13*0*57","turned":"13*0*50","type":"3*0*2d,6*0*5c,7*0*20,14*10*35$3d$3e$3q$4n$4r$5k$co$d0$d1$dd,18*9*4r$50$57$5j$5v$6e$6r$78$83$8i","types":"2*1*54$5o,7*0*1s,14*2*21$3u$eg","typical":"2*0*a7,16*10*-1$9","typically":"3*0*7n","ub":"14*0*79","ui":"11*1*c1$e3,15*1*76$a5","ulq":"14*1*5h$c7,18*6*4p$55$5g$5s$6n$74$81","unblocking":"16*0*40","uncompressed":"3*0*71","under":"11*0*id","understand":"19*0*2f","understood":"2*0*1v","unified":"19*0*46","unique":"6*0*3b,7*1*4p$7v,14*0*1g,19*0*32","unless":"11*0*8r,17*0*6k","unless-stopped":"11*0*8q,17*0*6j","unsigned":"11*3*1v$4f$4n$aa,17*0*83","up":"1*0*1c,6*2*3h$54$6f,7*0*4h,8*0*6j,17*11*-1$l$9q,19*0*4b","up-down":"6*0*6e","up-to-date":"7*0*4g,17*0*9p","updated":"15*3*73$7s$a2$cj,16*0*n,17*1*a2$c4","updates":"7*1*40$4k,15*1*9l$bk","upgrade":"15*0*ai,17*2*17$2b$5u","upgraded":"17*1*3m$8s","upgrading":"15*0*a7,17*43*-1$0$6$11$1j$1s$9c","upon":"2*0*6n,8*0*1r","upper":"7*0*5d,14*2*5l$7c$7m","uri":"16*0*4d","url":"0*0*18,3*3*3r$3t$41$4g,6*0*1s,8*1*7e$7l,11*0*ca,13*0*6e,17*0*ai","url_login":"8*0*7d","usage":"2*0*a8,5*0*54,10*0*1c","use":"2*0*9u,5*0*1a,6*1*5i$6d,8*24*-1$e$1b$2e$33$3r$4e$5d$6k$7g$7t$97$9q$af$av$bg,9*10*-1$g,10*0*r,11*0*49,13*3*1h$4m$5m$69,14*4*1v$2c$2l$67$ad,15*0*f8,18*0*27","used":"3*0*7o,11*0*b8,17*1*1d$91,18*0*4k","user":"2*0*3e,3*2*2g$8g$8k,7*0*39,8*5*23$36$4q$6o$74$8q,10*1*21$25,11*2*cr$fr$hq,12*11*-1$g$p,13*12*3b$3h$42$5r,14*0*19,15*1*7c$7k,17*0*b3","user's":"8*0*8p","user-friendly":"14*0*18","username":"8*0*31,11*0*cg,17*0*ao","username_claim":"8*0*30","users":"7*0*3t,8*0*70,13*0*3u,15*0*d6,19*10*-1$i","using":"5*1*64$6a,7*12*-1$b$1e$70,8*1*67$6r,10*10*-1$c,11*0*67,13*0*9m,15*0*de,16*10*-1$e,17*0*2d,18*1*1e$3c","usr":"11*0*40,13*0*bi","utilization":"14*2*b7$be$bi","utilize":"15*0*9g","utilized":"3*0*64","utilizing":"17*0*9n","v1":"15*11*o$2h$47$4v$6a$7b$9n$an$bm$do$e4$eg,17*1*3s$4c","v1.0.0":"15*0*ef","v1.0.1":"15*0*e3","v1.0.2":"15*0*dn","v1.0.3":"15*1*am$bl,17*0*3r","v1.0.4":"15*1*7a$9m","v1.0.5":"15*0*69","v1.0.6":"15*0*4u","v1.0.7":"15*0*46","v1.0.8":"15*0*2g","v1.0.9":"15*0*n","v10":"15*0*av","v10.x.x":"15*0*au","v9":"13*0*2p","v9.5.1":"13*0*2o","va":"14*1*8k$95","validate":"8*0*65","validation":"8*1*20$5q","validity":"8*0*5g,13*0*9l","valuable":"10*0*19","value":"3*2*5k$97$9e,8*10*1j$27$2n$3i$55$79$7n$90$ao$b9$c5,11*1*1r$78,13*0*7f,14*3*3n$6u$7e$da,17*1*3e$3v,18*12*17$2m$4q$4s$4v$51$54$56$58$80$82$84$86,19*0*5d","values":"8*0*13,11*0*ap,13*0*a8,14*8*64$6a$72$7i$98$99$9f$9g$ag,17*0*8i,18*20*-1$-1$m$s","var":"11*0*94,17*0*6t","variable":"11*0*4i,18*34*1$5$2o$30$38$3g,19*0*54","variables":"18*16*-1$8$t$1f$28$2h$3b$8t","variances":"19*0*2l","various":"5*0*1b,10*1*o$1f,19*2*26$2u$40","vary":"7*0*1o","vd":"14*1*8l$9c","velocity":"5*1*4n$4t,15*1*8c$8f","verify":"3*1*77$80,8*1*3t$5f,11*2*eb$gs$h0,13*0*9i","version":"2*0*3k,3*0*2m,5*0*7u,11*10*6p$6t$79$7c$9q$9u$at$b0$b5$d1$he,17*23*-1$13$2v$33$3f$3k$3t$4l$7j$7n$8m$8p$8u$9f$b9","via":"14*0*1r,15*0*b9,19*0*4o","view":"0*0*2l,2*0*8q,5*0*2u,7*10*-1$k,10*11*-1$9$3f,12*10*-1$8,14*0*ea","viewed":"10*0*1v","viewing":"7*0*10,10*0*h,18*0*2c","views":"15*0*25","visible":"3*0*8n","visual":"2*10*-1$i","visualization":"2*48*-1$1$5$t$2f$37$39$3u$53$5n$8m$9i,5*0*1j,14*0*1m,19*42*-1$0$6$12$27$33","visualizations":"2*0*9r,15*1*3v$5f","visualize":"11*10*-1$m","visualizing":"19*10*-1$f","volume":"11*3*7p$7u$8u$je,17*0*6n","wait":"3*0*5d","waiting":"10*0*47","want":"0*0*1s,2*0*2d,6*0*4n,14*0*9m,17*0*3p","warning":"7*1*3a$3c,11*0*e7","way":"18*10*-1$h","ways":"2*0*bk","web":"0*0*1b,6*0*1v,8*2*40$8r$bj,11*0*cd,13*12*49$4o$6g$9o,16*3*3b$3t$41$49,17*0*al","websites":"8*0*b7","what":"0*9*2d,2*9*9l,3*9*a2,6*9*6v,11*9*ig,15*9*j,18*0*2a","what's":"15*9*i","when":"1*0*12,2*1*4j$b1,3*3*39$4v$5s$8p,5*1*2e$7s,7*0*4l,8*3*5o$85$9d$a1,9*10*-1$e,10*0*3d,11*0*dr,13*2*14$62$a1,14*0*61,15*1*15$6b,16*10*-1$d,19*0*4t","whenever":"7*10*-1$6","where":"6*0*5r,11*0*hc,13*1*7r$7u,14*1*3a$ct,17*0*5a,18*9*45$4n$5f$5r$69$6m$73$7r$7t$8d","whereas":"16*0*2s","which":"2*0*2b,3*1*5a$5q,7*0*60,11*0*eh,13*0*6j,14*2*3g$d3$du,15*0*3c,19*0*3q","while":"7*12*-1$a$1d$6v,15*0*dd","who":"8*0*71","windows":"11*0*3h,13*0*b3","within":"7*0*3n,8*0*bn,11*0*5t,15*0*3r,17*0*1v,19*10*-1$1f","without":"7*0*62,18*10*3j$3n$3s","wlm":"14*6*a9$am$ao$ar$av$bp$c3","work":"8*2*82$8a$8h,16*0*4e","workflow":"14*0*c2","working":"3*0*9l,11*1*1n$3j,13*11*-1$g$b5","working_dir/conf/defaults.ini":"11*0*3i,13*0*b4","workload":"14*0*an","workscope":"14*3*9v$ah$ak$ce","ws":"16*0*4c","x-forwarded-access-token":"8*0*2s","x-jwt-assertion":"8*0*2p","x.y.z":"11*0*hd","xcf":"5*1*6d$6j,15*1*94$97","xcfgroup":"5*0*5e","xcfovw":"5*0*5o","xcfpath":"5*0*61","xcfsys":"5*0*69","you":"0*24*-1$6$o$q$1g$1r$26$2g,1*2*k$1b$1g,2*33*-1$b$v$11$2c$4b$4h$4k$5a$69$70$8f$95$9f$ac$aq$bl,3*29*-1$e$q$s$1c$1t$3a$4j$6h$79$8q$9s$a5,5*5*18$1o$2f$2s$7o$8b,6*27*-1$6$o$q$24$38$3t$4m$6b$6o$72,7*37*-1$-1$-1$7$i$s$13$1a$2b$47$5n$6s$7j,8*25*-1$-1$6$c$p$63$66$86$ah,9*21*-1$-1$f$t$16,10*14*-1$7$1h$34$3e$4d,11*31*-1$c$t$v$1k$2n$47$75$am$c2$dj$ds$ht$i6$ij,12*10*-1$4,13*33*-1$-1$d$o$1k$21$2k$3d$3o$4f$55$5l$86$96$9f$a2$a5,14*9*1t$3j$4s$65$9k$9q$ab$d6$dk$e8,15*5*4c$5h$5q$6e$9a$f3,16*6*v$17$19$1g$1m$2b$4m,17*28*-1$-1$c$r$1c$3b$3o$8f$9m$9v$a9$c2,18*4*1l$22$2b$34$91,19*17*-1$1j$23$2e$2m$34$3s$48$50","your":"2*15*-1$f$3a$8h$8r$aj$av,5*0*1l,9*10*-1$r,11*3*2b$33$56$cc,13*2*1q$39$75,14*0*5v,16*1*37$4p,17*0*ak,18*2*13$1g$8u,19*3*2g$3b$4h$59","z/os":"2*2*1a$1h$5g,3*1*11$18,5*12*-1$8$2i$7k,6*1*1f$1m,7*17*-1$e$1h$2r$3h$43$6h$73$7f,9*52*-1$-1$3$a$i$o$2a$2g,11*49*-1$2$8$h$17$52$5c$5o$bt$dn$g0$hi$i2,12*11*-1$c$m,13*2*16$2c$8s,14*3*13$40$48$e0,15*22*-1$e$r$4i$52$a9$bt$ce$cq$dh$el$fb$fi$fq,16*12*-1$h$3j$4i,17*41*-1$2$8$h$c7,19*31*-1$-1$-1$r$16$19$1s","z/osmf":"0*14*-1$f$10$19$1e$2b,6*23*-1$-1$d$l$1a$1t$22,8*4*15$6u$80$88$bo,9*13*-1$14$1e$1o$26,13*67*-1$4$a$k$12$18$1n$26$4d$4i$52$5v$64$76$7v,15*0*ca","zcx":"11*0*bb","zcx/zlinux":"11*0*ba","zfsfs":"5*0*6i","zfskn":"5*0*6s","zfsovw":"5*0*74","zip":"11*5*6u$9v$g8$gf$h5$hb,17*2*34$4g$7o","zlinux":"11*0*bc","zosmf":"8*0*6f","zosmfbuilder":"13*1*72$7p"}; }); \ No newline at end of file diff --git a/docs/grafana/rmf-app/pdf/rmf_grafana.pdf b/docs/grafana/rmf-app/pdf/rmf_grafana.pdf index 4e4cd1f09519ad6792833a01650e491bdab0c365..171c79a43bdb04744e8f43bbc6d0b7204a0f4418 100644 GIT binary patch delta 274888 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

1Kv0~U>5}|GMW$6ZW4I?4LX|@dgTo&4vsW2 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Æk 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÷3RZq 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 z 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 R*$#`r*ejZuxp=!O{tu#TK7;@O delta 274232 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%0DpbP7riPszTq8XT#n_cp7 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 QxY?e#S;gGk)tjvHAL={W=Kufz diff --git a/docs/grafana/rmf-app/rn.html b/docs/grafana/rmf-app/rn.html index a935e842..2e7db3fe 100644 --- a/docs/grafana/rmf-app/rn.html +++ b/docs/grafana/rmf-app/rn.html @@ -148,40 +148,86 @@

Release notes

+
May 2025 v1.0.9
+
+
    +
  • +

    IBM RMF for z/OS Grafana plugin has been + enhanced to optimize the step size when querying and displaying + time series data, based on the selected time range and panel + size. This enhancement ensures that panels display the required + number of data points.

    +
  • +
  • +

    A bug has been fixed that was causing specific data points to be + dropped from time series views, resulting in a flat line in the + graphs.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+ + + +
+
+
April 2025 v1.0.8
November 2024 v1.0.7
-
    -
  • Fixed internally found defects.
  • -
  • You can now download IBM RMF for z/OS Grafana - plugin documentation as a PDF file. See PDF Guide.
  • -
+
+ +
    +
  • +

    Fixed internally found defects.

    +
  • +
  • +

    You can now download IBM RMF for z/OS Grafana plugin documentation as a PDF file. See PDF Guide.

    +
  • +
+
October 2024 v1.0.6
    -
  • The IBM RMF for z/OS Grafana plugin now allows - customizing banner and caption fields in IBM RMF Report - visualizations.
  • -
  • After you modify any IBM RMF data source - and save the changes, you no longer need to re-enter the - password.
  • -
  • Improved performance.
  • -
  • Fixed internally found defects.
  • +
  • +

    The IBM RMF for z/OS Grafana plugin now + allows customizing banner and caption fields in IBM RMF Report + visualizations.

    +
  • +
  • +

    After you modify any IBM RMF data + source and save the changes, you no longer need to re-enter the + password.

    +
  • +
  • +

    Improved performance.

    +
  • +
  • +

    Fixed internally found defects.

    +
@@ -193,11 +239,17 @@

Release notes

August 2024 v1.0.5
    -
  • When creating the datasource, you now have the option to specify the - desired cache size in megabytes for the datasource.
  • -
  • Fixed internally found defects.
  • -
  • The topic of Creating RMF data sources has been updated - per the new UI changes.
  • +
  • +

    When creating the datasource, you now have the option to specify + the desired cache size in megabytes for the datasource.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +

    The topic of Creating RMF data sources has been + updated per the new UI changes.

    +
@@ -205,38 +257,48 @@

Release notes

June 2024 v1.0.4
    -
  • The user interface for creating the datasource has been enhanced to - improve the user experience.
  • -
  • Fixed internally found defects.
  • -
  • The following dashboards are updated:
      -
    • Common Storage Activity (Timeline)
    • -
    • Common Storage Activity
    • -
    • Coupling Facility Overview (Timeline)
    • -
    • Coupling Facility Overview
    • -
    • Execution Velocity (Timeline)
    • -
    • Execution Velocity
    • -
    • General Activity (Timeline)
    • -
    • General Activity
    • -
    • Overall Image Activity (Timeline)
    • -
    • Overall Image Activity
    • -
    • Performance Index (Timeline)
    • -
    • Response Time (Timeline)
    • -
    • Response Time
    • -
    • XCF Activity (Timeline)
    • -
    • XCF Activity
    • -
    • -
      Note: You must re-import the - dashboards to utilize the latest enhancements in the - dashboards.
      -
    • -
  • -
  • The documentation updates for v1.0.4 include the following - changes:
  • +
  • +

    The user interface for creating the datasource has been enhanced + to improve the user experience.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +
    The following dashboards are updated:
      +
    • Common Storage Activity (Timeline)
    • +
    • Common Storage Activity
    • +
    • Coupling Facility Overview (Timeline)
    • +
    • Coupling Facility Overview
    • +
    • Execution Velocity (Timeline)
    • +
    • Execution Velocity
    • +
    • General Activity (Timeline)
    • +
    • General Activity
    • +
    • Overall Image Activity (Timeline)
    • +
    • Overall Image Activity
    • +
    • Performance Index (Timeline)
    • +
    • Response Time (Timeline)
    • +
    • Response Time
    • +
    • XCF Activity (Timeline)
    • +
    • XCF Activity
    • +
    Note: You must re-import the + dashboards to utilize the latest enhancements in the + dashboards.
    +
  • +
  • +
    The documentation updates for v1.0.4 include the following + changes:
    +
@@ -244,40 +306,76 @@

Release notes

February 2024 v1.0.3
    -
  • Fixed specific issues related to the support of Grafana - v10.x.x.
  • -
  • Fixed empty settings issue for IBM RMF data source defined via - Home / Apps / IBM RMF page.
  • -
  • Fixed internally found defects.
  • -
  • The documentation updates for v1.0.3 include the following - changes:
      -
    • The Grafana through IBM - z/OS Management Facility topic explains more - detailed setup instructions to access Grafana from the - z/OSMF server.
    • -
    • The RMF for z/OS plugin - installation section is updated to provide clear - information and guidance on installing the RMF for z/OS plugin on - different platforms based on specific requirements.
    • -
    • The troubleshooting topic - is provided to help users analyze and resolve common issues - that may occur while using the IBM RMF for z/OS Grafana plugin.
    • -
  • +
  • +

    Fixed specific issues related to the support of Grafana + v10.x.x.

    +
  • +
  • +

    Fixed empty settings issue for IBM RMF data source defined via + Home / Apps / IBM RMF page.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +
    The documentation updates for v1.0.3 include the following + changes:
      +
    • +

      The Grafana + through IBM z/OS Management Facility topic + explains more detailed setup instructions to access + Grafana from the z/OSMF server.

      +
    • +
    • +

      The RMF for z/OS plugin + installation section is updated to provide + clear information and guidance on installing the RMF for z/OS plugin on + different platforms based on specific + requirements.

      +
    • +
    • +

      The troubleshooting topic is provided to help + users analyze and resolve common issues that may + occur while using the IBM RMF for z/OS Grafana + plugin.

      +
    • +
    +
December 2023 v1.0.2
-
Support spaces in Datasource name.
+
+
    +
  • +

    Support spaces in Datasource name.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
November 2023 v1.0.1
-
Resolved security issues in dependencies.
+
+
    +
  • +

    Resolved security issues in dependencies.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
November 2023 v1.0.0
-
The first release of the IBM RMF for z/OS Grafana - plugin is in the following GitHub repository: https://github.com/IBM/RMF.
+
+

The first release of the IBM RMF for z/OS Grafana + plugin is in the following GitHub repository: https://github.com/IBM/RMF.

+
diff --git a/docs/grafana/rmf-app/sitemap.xml b/docs/grafana/rmf-app/sitemap.xml index f6d6c65a..647cfc21 100644 --- a/docs/grafana/rmf-app/sitemap.xml +++ b/docs/grafana/rmf-app/sitemap.xml @@ -2,78 +2,78 @@ visual_grafana.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z rn.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z install_grafana_plugin.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z update_plugin.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z create_datasources.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z db_ovw.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z apply_visualize.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z query_lang.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z variables.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z alerts.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z historical_data.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z error_reports.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z ts_issues.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z grafana_via_zosmf.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z prereq_zosmf.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z grafana_config_parms.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z define_grafana_zosmf.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z access_grafana_zosmf.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z pdf_guide.html - 2025-04-04T10:38:00Z + 2025-05-13T12:20:14Z diff --git a/grafana/rmf-app/CHANGELOG.md b/grafana/rmf-app/CHANGELOG.md index b5ab5f5a..8c55b87d 100644 --- a/grafana/rmf-app/CHANGELOG.md +++ b/grafana/rmf-app/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 1.0.9 (2025-05-16) + +- IBM RMF for z/OS Grafana plugin has been enhanced to optimize the step size when querying and displaying time series data, based on the selected time range and panel size. This enhancement ensures that panels display the required number of data points. +- A bug has been fixed that was causing specific data points to be dropped from time series views, resulting in a flat line in the graphs. +- Fixed internally found defects. + ## 1.0.8 (2025-04-04) - A new option, Compression, has been added to the data source creation process. This option enables the RMF data source to request HTTP compression from the Data Distributed Server (DDS) during data retrieval, which improves the efficiency of data transfer. diff --git a/grafana/rmf-app/doc/src/conref.dita b/grafana/rmf-app/doc/src/conref.dita index a5d41628..7cf2cb80 100644 --- a/grafana/rmf-app/doc/src/conref.dita +++ b/grafana/rmf-app/doc/src/conref.dita @@ -5,6 +5,7 @@

IBM RMF for z/OS Grafana

+

RMF for z/OS Grafana

RMF for z/OS

Resource Measurement Facility for z/OS

Distributed Data Server

@@ -54,6 +55,7 @@ Verify the server’s certificate chain/hostname option is also enabled.

+

Fixed internally found defects.

diff --git a/grafana/rmf-app/doc/src/pdf/rmf_grafana.fo b/grafana/rmf-app/doc/src/pdf/rmf_grafana.fo new file mode 100644 index 00000000..29b6fbf0 --- /dev/null +++ b/grafana/rmf-app/doc/src/pdf/rmf_grafana.fo @@ -0,0 +1,2200 @@ +IBM RMF for z/OS Grafana Plugin User GuideoXygen PDF Chemistry Version 24.1 Build 2022-11-03T09:51:41ZtrueIBM RMF for z/OS Grafana Plugin User GuideContents1. IBM RMF for z/OS Grafana Plugin1.1. Overview1.2. Release notesWhat's newRequirements1.3. Installing the plugin1.4. Upgrading the plugin1.5. Creating RMF data sources1.6. RMF master dashboard1.7. Applying visualization to RMF data1.8. IBM RMF query languagesMetric query syntaxReport query syntax1.9. RMF Variable Query syntaxSyntax of the query without a filterSyntax of the query with a filter1.10. Alerts1.11. Historical data1.12. Error types1.13. Troubleshooting issues1.14. Grafana through z/OSMF1.14.1. PrerequisitesConfigure z/OSMFInstall GrafanaUser administrationConfigure JSON Web Token (JWT) support on z/OSMFConfigure JWT authentication on Grafana1.14.1.1. Grafana configuration parameters1.14.2. Defining the Grafana server1.14.3. Accessing the Grafana dashboard + + + + + + + + IBM RMF for z/OS Grafana Plugin User GuideIBM + RMF for z/OS Grafana Plugin User Guide + + | | + ContentsContents + + + 1. IBM RMF for z/OS + Grafana + Plugin + + 1.1. Overview + + + 1.2. Release + notes + + + 1.3. Installing the + plugin + + + 1.4. Upgrading the + plugin + + + 1.5. Creating RMF data + sources + + + 1.6. RMF master + dashboard + + + 1.7. Applying visualization to RMF + data + + + 1.8. IBM RMF query + languages + + + 1.9. RMF Variable Query + syntax + + + 1.10. Alerts + + + 1.11. Historical + data + + + 1.12. Error + types + + + 1.13. Troubleshooting + issues + + + 1.14. Grafana through + z/OSMF + + 1.14.1. Prerequisites + + + + 1.14.2. Defining + the Grafana + server + + + 1.14.3. Accessing + the Grafana + dashboard + + + + + Page Page + 1 - IBM RMF for z/OS Grafana Plugin | 1 - IBM RMF for z/OS Grafana Plugin1. IBM RMF for z/OS Grafana Plugin + + | 1.1 - Visualization of RMF Monitor III metrics in Grafana1.1. Visualization of RMF Monitor III + metrics in Grafana + + + Grafana is a + platform for monitoring and visualizing data. It enables + users to create, explore, and share dashboards that are + interactive and customizable. The IBM® RMF for z/OS + Grafana plugin provides effortless analysis and + visualization of Resource Measurement Facility for + z/OS (RMF for z/OS) Monitor III + metrics and reports within the Grafana platform. Thereby, + you can monitor and analyze the health and performance of + applications. + The IBM RMF for z/OS Grafana + plugin provides the following features: + You + can choose various visualization options, such as + graphs, charts, panels, and reports, to help you + understand your data's trends, patterns, and + variances. + You + can create dynamic and engaging dashboards by + piecing together various panels, each displaying a + unique visualization. + You + have the freedom to customize each panel based on + your requirements, including its appearance, size, + and the data queries it displays. + Grafana supports integration with numerous data + sources, which helps you fetch data from various + Distributed Data Servers (DDS) and display it in a unified + dashboard. + You + can set up alerts based on specific conditions or + thresholds in your RMF data. Grafana can trigger + notifications via email or other communication + channels when these conditions are met. + You + can define a dashboard variable to change the RMF + data displayed in your dashboard simply by selecting + a value from the drop-down list at the top. + + + + + | 1.2 - Release notes1.2. Release notes + + This article + covers the new features, system requirements, and known + issues of the IBM® RMF for z/OS Grafana plugin. + + What's + new + + May 2025 v1.0.9 + + + + IBM RMF + for z/OS Grafana plugin has been enhanced + to optimize the step size when querying and + displaying time series data, based on the selected + time range and panel size. This enhancement + ensures that panels display the required number of + data points. + + + A bug + has been fixed that was causing specific data + points to be dropped from time series views, + resulting in a flat line in the graphs. + + + Fixed + internally found defects. + + + + + + + + April 2025 v1.0.8 + + + + A new + option, Compression, has been added to the data + source creation process. This option enables the + RMF data source to request HTTP compression from + the Data Distributed Server (DDS) during data + retrieval, which improves the efficiency of data + transfer. See Creating RMF data + sources (on page ). + + + Fixed + certain scenarios of missing data within + dashboards for time series visualizations. + + + Fixed + internally found defects. + + + + November 2024 v1.0.7 + + Fixed internally found + defects. + + October 2024 v1.0.6 + + + + The + IBM RMF for z/OS Grafana plugin now allows + customizing banner and caption fields in IBM RMF + Report visualizations. + + + After + you modify any IBM + RMF data source and save the changes, you + no longer need to re-enter the password. + + + Improved + performance. + + + Fixed + internally found defects. + + + + + + + + August 2024 v1.0.5 + + + + When + creating the datasource, you now have the option + to specify the desired cache size in megabytes for + the datasource. + + + Fixed + internally found defects. + + + The + topic of Creating RMF data + sources (on page ) + has been updated per the new UI changes. + + + + June 2024 v1.0.4 + + + + The user + interface for creating the datasource has been + enhanced to improve the user experience. + + + Fixed + internally found defects. + + + The following dashboards are + updated: + Common Storage Activity (Timeline) + Common Storage Activity + Coupling Facility Overview (Timeline) + Coupling Facility Overview + Execution Velocity (Timeline) + Execution Velocity + General Activity (Timeline) + General Activity + Overall Image Activity (Timeline) + Overall Image Activity + Performance Index (Timeline) + Response Time (Timeline) + Response Time + XCF Activity (Timeline) + XCF Activity + Note: You must + re-import the dashboards to utilize the latest + enhancements in the dashboards. + + + The documentation updates for + v1.0.4 include the following changes: + + The + topic of Creating RMF data + sources (on page ) + has been updated as per the new UI changes. + + + The Upgrading the RMF for z/OS plugin on + Grafana (on page ) + topic is included to provide information about the + upgrade process. + + + + + + February 2024 v1.0.3 + + + + Fixed + specific issues related to the support of Grafana + v10.x.x. + + + Fixed + empty settings issue for IBM RMF data source + defined via Home / Apps / IBM RMF page. + + + Fixed + internally found defects. + + + The documentation updates for + v1.0.3 include the following changes: + + The Grafana through IBM z/OS Management + Facility (on page ) + topic explains more detailed setup instructions to + access Grafana from the z/OSMF server. + + + The RMF for z/OS plugin + installation (on page ) + section is updated to provide clear information + and guidance on installing the RMF for + z/OS plugin on different platforms based on + specific requirements. + + + The troubleshooting (on page ) + topic is provided to help users analyze and + resolve common issues that may occur while using + the IBM RMF for z/OS + Grafana plugin. + + + + + + December 2023 v1.0.2 + + + + Support + spaces in Datasource name. + + + Fixed + internally found defects. + + + + November 2023 v1.0.1 + + + + Resolved + security issues in dependencies. + + + Fixed + internally found defects. + + + + November 2023 v1.0.0 + + The + first release of the IBM RMF for z/OS + Grafana plugin is in the following GitHub + repository: https://github.com/IBM/RMF. + + + + + Requirements + You must have the following + software to use the IBM RMF for z/OS Grafana + plugin: + Resource Measurement Facility for z/OS + 3.1 + Distributed Data Server + IBM RMF for z/OS Grafana plugin 1.0.x + Grafana 9.5.1 or later + + + + + + | 1.3 - Installing the RMF for z/OS plugin on Grafana1.3. Installing the RMF for z/OS plugin on + Grafana + + + You must install + the IBM® RMF for z/OS Grafana plugin to + analyze and visualize RMF Monitor III metrics and + reports. + + + Before you begin + + You must have completed the + following tasks: + Installed RMF for z/OS + 3.1 + DDS and the functionality level must be + 3650 or higher. + Installed Grafana 9.5.1 or later. + You must be familiar working with Grafana. + + + + Procedure + + + 1. + Set the value of allow_loading_unsigned_plugins to ibm-rmf,ibm-rmf-datasource,ibm-rmf-report + in the [plugins] section of your custom + configuration file. + + The default configurations + for a Grafana installation are in the defaults.ini file. You can copy the default.ini file and rename it to custom.ini for customizing your Grafana + configuration. + The default location of the configuration file is as follows: + + + Operating systems + Default path to the + configuration file + + + + Windows® + WORKING_DIR/conf/defaults.ini + + + Linux® + /etc/grafana/grafana.ini + + + macOS® + /usr/local/etc/grafana/grafana.ini + + + + Note: You can + use the GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS + environment variable to override allow_loading_unsigned_plugins. + + + 2. + Choose any one of the methods + described in the following table to install the + RMF for z/OS plugin based on your + requirements: + + + + + Methods + Step # + + + + Installing the RMF for z/OS plugin in + the Grafana stand-alone application. + Perform steps 3 (on page ) + and 4 (on page ). + + + Installing the RMF for z/OS plugin + along with Grafana within the Docker + environment. + Perform steps 5 (on page ) + and 6 (on page ). + + + + + + 3. + Run the following command to + install the plugin by using Grafana CLI: + + grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf + Remember: You + must replace the value of <version> for the pluginURL option to version number of the + plugin to be installed. + + + 4. + Restart the Grafana server, + and then go to step 7 (on page ). + + 5. + Run the following command to + create a volume for storing the Grafana + state: + + docker volume create rmf-grafana-data + + + 6. + Run the following command to + create and run a container: + + docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image> + Remember: You + must replace the values of the following options + in the command: + <version> for the env option to the version number of the + plugin to be installed. + <image> to the version of the Grafana + image to be used. + + Note: + zCX/zLinux images are available at Container Images for IBM Z and + LinuxONE. + Similarly, images of other required platforms are + available at Docker + Hub. + + + 7. + To enable the RMF for + z/OS plugin on the Grafana UI, you must + perform the following sub-steps: + + a. + Enter the URL of Grafana in + your web browser. + + b. + Enter the username and + password of Grafana on the sign-in page. + + c. + Go to Administration > + Plugins. + + Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed. + + + d. + Enter RMF in the Search bar on the Plugins page. + + e. + Click IBM + RMF in the search results. + + f. + Click Enable. + + Note: After + you install the IBM RMF for z/OS + Grafana plugin, when you open IBM RMF on + the Plugins page of Grafana UI, an Invalid plugin + signature warning message is + displayed. + + + + + 8. Optional: + Verify the signature of the + IBM RMF Grafana plugin, which is signed with the + GPG key, by performing the following + sub-steps: + + a. + Download the PUBLIC_KEY.asc (GPG public key) + file. + The location of the file is as + follows:https://github.com/IBM/RMF/blob/main/grafana/rmf-app/PUBLIC_KEY.asc + + b. + Follow the instructions in + the Importing a public + key + section of the GPG user guide. + + c. + Download the IBM RMF + for z/OS Grafana plugin (ibm-rmf-grafana-x.y.z.zip) and signature + file (ibm-rmf-grafana-x.y.z.zip.asc) from https://github.com/IBM/RMF/releases. + + d. + Run the following command to + verify the signature: + + gpg --verify ibm-rmf-grafana-x.y.z.zip.asc ibm-rmf-grafana-x.y.z.zip + Where + x.y.z is the version number of the + IBM RMF for z/OS Grafana plugin. + For more + information, refer to the GPG + user guide. + + + + + + + + Results + You have installed the IBM RMF for + z/OS Grafana plugin. You can find the IBM + RMF plugin listed under the Apps + section. + + What to do next + You can add an RMF data source to fetch data from + Distributed Data Servers + (DDS). See Creating RMF data + sources (on page ). + + + + + Related + information + + Grafana CLI + documentation + docker run + command + docker volume create + command + + + + + + + | 1.4 - Upgrading the RMF for z/OS plugin on Grafana1.4. Upgrading the RMF for z/OS plugin on + Grafana + + + You must ensure + that the IBM RMF for z/OS Grafana plugin is up to date to + leverage its enhanced functionalities. You can do so by + either installing or upgrading to the latest version of the + plugin. + + About this task + The upgrade procedures differ based on the environment + you used to install the Grafana server. + + + Methods + Step # + + + + Upgrading the plugin in the Grafana stand-alone + application. + Perform steps 1 (on page ) + to 3 (on page ). + + + Upgrading the plugin in the Grafana within the + Docker environment. + Perfrom steps 4 (on page ) + to 7 (on page ). + + + + + + Procedure + + + 1. + Stop the Grafana + server. + + 2. + Run the following command to + upgrade the plugin by using Grafana CLI: + + grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf + Note: You must + replace the value of <version> for the pluginURL option with the plugin's version + number to be upgraded. + For example, if you want to install the v1.0.3 version of the plugin, the value of pluginURL is https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v1.0.3/ibm-rmf-grafana-1.0.3.zip. + + The CLI tool downloads the + mentioned version of the plugin and replaces the + existing files. + + 3. + Restart the Grafana server, + and then go to step 7 (on page ). + + 4. + Run the following command to + stop the docker container: + + docker stop rmf-grafana + Where + rmf-grafana is the name of the + container. + + + 5. + Run the following command to + remove the docker container: + + docker rm rmf-grafana + + + 6. + Run the following command to + upgrade the plugin by creating and running a + container: + + docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image> + Remember: You + must replace the values of the following options + in the command: + <version> for the env option to the version number of the + plugin to be upgraded. + <image> to the version of the Grafana + image used. + + + + 7. + Perform the following + sub-steps to re-import the dashboards. + After upgrading the plugin to + a new version, it is essential to re-import the + dashboard. This ensures that you are utilizing the + most up-to-date features in the dashboards.Tip: You can + find the updated dashboards for each release by + referring to the CHANGELOG + of the plugin. You do not need to re-import all + the dashboards. + + a. + Enter the URL of Grafana in + your web browser. + + b. + Enter the username and + password of Grafana on the sign-in page. + + c. + Go to Administration > + Plugins. + + Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed. + + + d. + Enter RMF in the Search bar on the Plugins page. + + e. + Click IBM + RMF in the search results. + + f. + Click Dashboards, and then click Re-import to re-import the + dashboards. + + + + + + + Results + You have updated the IBM RMF for + z/OS Grafana plugin. + + + + | 1.5 - Creating RMF data sources1.5. Creating RMF data sources + + To access RMF + Monitor III metrics in Grafana, you need to connect to the + Distributed Data Server (DDS) + by adding an RMF data source. + + + Before you begin + + + You + must have installed the RMF for z/OS Grafana plugin. + See Installing the RMF for z/OS plugin on + Grafana (on page ). + You + must know the hostname and port number of DDS. + + + + + Procedure + + + 1. + Go to Apps > + IBM + RMF > + Add + RMF Data Source. + Alternatively, you can click + Administration > + Data + sources > + + Add + new data source, then search for the + IBM RMF to choose a data source type.Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed. + + 2. + Enter a name for the data + source in the Name field. + + 3. Optional: + Set Default + + to ON to make the + added data source the default one. + + Note: When you + create new panels, the default data source is + preselected. + + + 4. + Enter the details for the + following fields in the HTTP section: + + + + + Fields + Action + + + + DDS + URL + Enter the URL of the DDS in this field.The + format of the URL is http://hostname:port_number[/path] or https://hostname:port_number[/path]Important: In + the DDS URL, the /path is optional, and you must + exclude it in the default network configuration. + However, it might be required in more advanced + setups, such as when DDS functions behind a + reverse proxy. + + + Timeout + Specify the duration, in seconds in this field, + for which Grafana is allowed to wait for a + connection to the DDS before it closes + the connection.The default value is 60. + + + Compression + This option is enabled by default, which means + that when RMF requests data from DDS, HTTP compression is utilized, + provided that the DDS is operating on a + maintenance level OA67541. The compression setting + is ignored if DDS is not at this + maintenance level.You can turn off HTTP + compression by setting the Compression option to OFF, resulting in + DDS data being always transferred in an + uncompressed format. + + + + + + 5. Optional: + Set the Skip + TLS Verify option to ON if you are + accepting any certificate presented by the DDS and + any hostname listed in that certificate. However, + this practice is not considered secure and is + typically used in development or testing + environments. + + Note: By + default, the Skip + TLS Verify option is set to OFF. + + + 6. + Set the Basic + Auth option to ON to create the + data source with basic authentication. + + 7. + Enter the credentials of the + DDS in the User and Password fields. + + Note: The + User and Password fields are visible only when you + enable the basic authentication. + + + 8. + Specify the size of the cache + (in MB) for the data source in the Size field. + + Remember: The + value must be greater than or equal to 128. The default + value is 1024. + + + 9. + Click Save + & test. + The Data source is + working message is displayed if the + connection to DDS succeeds. + + + + + Results + You have added the RMF data source. + + + What to do next + + You can refer + to the RMF master + dashboard (on page ) + topic for information about RMF master dashboard and its + features. + + + + + | 1.6 - RMF master dashboard1.6. RMF master dashboard + + IBM® RMF for z/OS + Grafana is a plugin provides custom panels for the RMF data + source and master dashboard that consists of RMF Charts, RMF + Reporting, and RMF Time Series dashboards. + Grafana provides a + highly flexible and customizable dashboard consisting of one + or more rows and panels. You can use various pre-configured + panels to construct queries and tailor the visualization to + meet your requirements. This enables you to create a + personalized dashboard that seamlessly interacts with data + from a configured Distributed Data Server + (DDS). For more information about creating and + managing dashboards, refer to the Grafana + documentation. + When you install the RMF for z/OS + Grafana plugin for the first time, all the dashboards are + imported automatically. You can view the dashboards by + navigating to Apps > + IBM + RMF > + Dashboards. The following table lists + the dashboards available in RMF Charts, RMF Reporting, and + RMF Time Series dashboards: + Table 1. RMF master + dashboardTable 1. RMF master + dashboard (continued) + + RMF Charts Dashboard + RMF + Reporting Dashboards + RMF Time Series Dashboards + + + + Common Storage + Activity + CACHDET + DSND + PROC + SYSINFO + Common Storage Activity + (Timeline) + + + Coupling Facility + Overview + CACHSUM + EADM + PROCU + SYSRG + Coupling Facility + Overview (Timeline) + + + Execution Velocity + CFACT + ENCLAVE + SPACED + SYSSUM + Execution Velocity + (Timeline) + + + General Activity + CFOVER + ENQ + SPACEG + USAGE + General Activity + (Timeline) + + + Overall Image + Activity + CFSYS + HSM + STOR + XCFGROUP + Overall Image Activity + (Timeline) + + + Performance Index + CHANNEL + IOQ + STORC + XCFOVW + Performance Index + (Timeline) + + + Response Time + CPC + JES + STORCR + XCFPATH + Response Time + + + Using & Delays + CRYOVW + LOCKSP + STORF + XCFSYS + Using & Delays + (Timeline) + + + XCF Activity + DELAY + LOCKSU + STORM + ZFSFS + XCF Activity + (Timeline) + + + Common Storage + Activity + DEV + OPD + STORR + ZFSKN + Common Storage Activity + (Timeline) + + + + DEVR + PCIE + STORS + ZFSOVW + + + + + The dashboard + interface offers several customization options for data + presentation. The following is the image of the master + dashboard from the IBM RMF for z/OS Grafana + plugin: + + You can click the + + option when there is a new version of the plugin, and then + re-import the dashboard by clicking the + icon. Similarly, if any of the dashboards is no longer + required, you can click the + icon to remove it from the master dashboard. + For more + information about available features in the Dashboard and + their descriptions, refer to the Grafana + documentation. + + + + | 1.7 - Applying visualization to RMF data1.7. Applying visualization to RMF + data + + By adding panels + to dashboards, you can effectively present your RMF data in + a visual format. Each panel must require at least one query + to display a significant visualization. + + Before you begin + You must have completed the + following tasks: + Installed the IBM RMF for z/OS + Grafana plugin. See Installing the RMF for z/OS plugin on + Grafana (on page ). + Added + a RMF data source in Grafana. See Creating RMF data + sources (on page ). + Understood query languages of the RMF. See IBM RMF query + languages (on page ). + + + + Procedure + + + 1. + Identify the dashboard for + which you want to add visualization. + + 2. + Perform one of the steps + described in the following table: + + + + + Step description + Step # + + + + If there are no panels added to the + dashboard + Perform step 3 (on page ). + + + If at least one panel is added to the + dashboard + Perform step 5 (on page ). + + + + + + 3. + Click + Add + visualization to add visualization to your + data. + + Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed. + + The Edit + panel is displayed. + + 4. + Go to step 6 (on page ). + + 5. + Click Add > + Visualization from the dashboard + header. + + + + The Edit + panel is displayed. + + 6. + Enter a name for the panel in + the Title field. + Optionally you can also + provide a description for the panel that you are + creating.When you add the description + for the panel, a notification icon + is displayed after the Panel title, as shown in the following + image: + + 7. + Select one of the + visualization types from the drop-down + menu: + + + You can + choose Report + for IBM RMF for z/OS or built-in Bar + chart Grafana visualization types from the + drop-down list. + + + 8. + Click the Query tab, and then enter a query in the + query language of the RMF data source. + + Note: You can + click + + Query to add multiple queries. + + + 9. + Click the Transformation tab, and then select a + transformation from the list. + Upon accessing the + transformation options, a dedicated row is + presented for configuration.Note: You can + click + Add + Transformation to add multiple + transformations to data. + + 10. + Select the existing data + sources from the Data + source drop-down list. + + 11. + Click the Time + Picker drop-down list to select relative + time range options and set custom absolute time + ranges. + + + + + 12. + Click the Refresh dashboard + + icon to query the RMF data source. + Grafana provides you with a + preview of your query results along with the + corresponding visualization. + + 13. Optional: + Click Apply to view your changes applied to the + dashboard. + + 14. + Click Save, and then enter a note describing the + changes you have made. + + 15. + Click Save to store the changes made to the + dashboard. + + + + + Results + You have applied visualization to the RMF + data. + + + What to do next + + Grafana + provides a range of visualizations that cater to + different use cases. For more information about the + built-in panels, options, and typical usage, refer to + the Grafana + documentation. + You can also + configure the panel options based on your requirements. + For more information refer to the Grafana + documentation. + You can add + multiple transformation to your data. When there are + multiple transformations, Grafana applies them + sequentially. Each transformation produces a result set + that is passed on to the next transformation in the + pipeline. Grafana provides several ways that you can + transform data. For entire list of transformations, + refer to the Grafana + documentation. + + + + + | 1.8 - IBM RMF query languages1.8. IBM RMF query languages + + In Grafana, + queries are essential for fetching and transforming data + from RMF data sources. + Executing a query + is a process that involves defining the data source, + specifying the desired data to retrieve, and applying + relevant filters or transformations. IBM RMF for + z/OS Grafana plugin provides a user-friendly RMF + query editor that maximizes its unique capabilities. Grafana + panels retrieve data for visualization from RMF data sources + via queries. + You can use the + following types of queries to retrieve data from the + specified RMF data source: + + Metric + query – Use this query to retrieve RMF Monitor III + metrics. + Report + query – Use this query to retrieve RMF Monitor III + reports. + + + Metric + query syntax + The syntax of + the Metric query is as follows: + resource_type.metric_description {qualifications} + Where: + resource_type is the type of + resource for which information is requested. You + must enter the appropriate value in the resource_type field.The + available resource types are documented in the z/OS RMF Monitor III resource + model + topic in the z/OS + Resource Measurement Facility Programmer's + Guide. + metric_description is the name of + the metric for the selected resource type.After + entering the resource type, you can choose the + metric description from the drop-down + list. + qualifications is an optional + parameter and can contain any or all the following + attributes separated by a comma: + ulq: The name of the resource type + at the upper level. + name: The name of the resource. + filter: The filter helps to focus on + the data of your interest when requesting a list + of values. You can + use one of the following values for the filter attribute: + PAT=< pattern> + Specifies one or more patterns that must match + the name part of a list element. + LB=<number> + Specifies a lower bound value. Only list elements + with values higher than the given lower bound are + returned. + UB=<number> + Specifies an upper bound value. Only list + elements with values lower than the established + upper bound are returned. + HI=<integer> + Only + the highest <integer> list elements are + returned (mutually exclusive with LO). + LO=<integer> + Only + the lowest <integer> list elements are + returned (mutually exclusive with HI). + ORD=< NA | ND | VA | VD | NN> + + + NA - Sort the list of names by their names in + ascending order. + ND – Sort the list of names by their names in + descending order. + VA – Sort the list of values by their values in + ascending order. + VD – Sort the list of values by their values in + descending order. + NN - If you do not want to have any order, you + can specify ORD=NN. + + + + workscope: To qualify a request for + performance data in more detail about address + spaces and WLM entities. You can use one of the + following values for the workscope attribute: + G - Global (no workscope required) + W - WLM workload + S - WLM service class + P - WLM service class period + R - WLM report class + J - Job + + + + Examples: + SYSPLEX.% total physical utilization (AAP) by partition + COUPLING_FACILITY.% processor utilization + CPC.% total physical utilization (shared IIP) + MVS_IMAGE.% delay by WLM report class period {name=RS21} + MVS_IMAGE.% workflow by WLM report class period {ulq=RS21,name=RS2*,filter=ORD=NA,workscope=,,G} + + + Report + query syntax + The syntax of + the Report query is as follows: + resource_type.REPORT.report_name + Where: + resource_type is the type of + resource for which information is requested. You + must enter the appropriate value in the resource_type field. + report_name is the name of the + report.You can + find the report names in the Interactive performance analysis with Monitor + III, + which is documented in the z/OS Resource Measurement + Facility Report Analysis.Note: You can + view reports on the Grafana dashboard only for the + resource types SYSPLEX and MVS_IMAGE. + + Examples: + SYSPLEX.REPORT.CACHSUM + SYSPLEX.REPORT.CPC + + + + + | 1.9 - RMF Variable Query syntax1.9. RMF Variable Query syntax + + Variables are a + powerful tool to create more interactive and dynamic + dashboards. They offer a way to replace hard-coded values in + metric queries and panel titles with placeholders for + values. + Variables make it easy to change the + data displayed in your dashboard simply by selecting a value + from the drop-down list at the top. Using variables in your + dashboard simplifies maintenance, particularly if you have + multiple identical data sources. Instead of creating + separate dashboards for each data source, you can create one + dashboard and use variables to change what you are + viewing.Important: It's + important to note that variables don't have a default + value. Each variable drop-down list in Dashboard + settings displays the variable list in the order it + appears. + You can define a + dashboard variable in Dashboard Settings > + Variables using Grafana's RMF + Variable Query syntax with and without a filter. + Syntax + of the query without a filterThe general syntax of the query + without a filter is as follows:SELECT <COLUMN_NAME> FROM RESOURCE WHERE condition1 or condition2 or condition3Note: The <COLUMN_NAME> is limited to label + and RESOURCE is limited to resource + only and cannot be used for other purposes.Where: + condition1: ULQ=Value + and + TYPE=Value + condition2: Name=Value + and + TYPE=Value + condition3: Name=Value + and + ULQ=Value + and + TYPE=Value + Examples for condition1: + select label from resource + where ulq="hostname of the DDS" and type="CHANNEL_PATH" + select label from resource + where ulq="hostname of the DDS" and type="ALL_CHANNELS" + Examples for condition2:select label from resource where + name="resource_name" and type="SYSPLEX"Examples for condition3: + select label from resource + where ulq="hostname of the DDS" and name="*" and type="CHANNEL_PATH" + select label from resource + where ulq="hostname of the DDS" and name="*" and type="ALL_CHANNELS" + + + Syntax + of the query with a filter + The general + syntax of the RMF query with a filter is as follows: + SELECT <COLUMN_NAME> FROM RESOURCE WHERE condition + Where condition is Name=Value and ULQ=Value and TYPE=Value and Filter= + Value + Examples for condition: + select label from resource where name="resource_name" and type="SYSPLEX" and filter="MVS_IMAGE" + + + To learn how + to effectively add and manage variables of your choice + in Grafana, you can refer to the Grafana + documentation. + + + + + | 1.10 - Introduction to Alerts1.10. Introduction to Alerts + + + Grafana Alerting + feature provides a reliable solution to detect and respond + to system issues in real time. + Through Grafana + monitoring capabilities, you can keep track of incoming + metrics data and configure the alerting system to detect + specific events or circumstances. When the system identifies + any issues, it automatically sends notifications to ensure + that you are up to date. With Grafana Alerting, you can + eliminate the need for manual monitoring and control system + outages that could lead to significant incidents. + For more + information about configuration of alerts and contact + points, refer to the Grafana + documentation. + + + + | 1.11 - Historical data collection1.11. Historical data collection + + + In Grafana, you + can view historical data using absolute and relative time + ranges. + + Viewing + historical data is a common practice across + organizations for various purposes. The importance and + use of historical data are significant in + decision-making, research, analysis, and planning. + Analyzing historical data provides valuable insights + into the status, usage, performance, and health of + various resources. + You can also + access cached metric data for queries, data sources, and + timestamp combinations that have already viewed by other + user on Grafana. This means that if any user requests + metrics data for the same query, datasource, and + timestamp, the cached data can be displayed faster than + a service call from DDS. If data for a particular + timestamp is not found in the cache, it will be fetched + by a service call from DDS. This feature can save you + time and provide a faster experience accessing metric + data. + CAUTION: When + you view data over extended time ranges, the system may + require considerable CPU resources on the host. + + + + + | 1.12 - Error reporting in the plugin1.12. Error reporting in the + plugin + + + Whenever you + encounter issues while using the IBM RMF for z/OS Grafana + plugin, you can view detailed error messages that contain + sufficient information to help you identify and troubleshoot + the problem. + By viewing these + error messages, you can quickly and efficiently troubleshoot + any issues you may encounter while using the IBM RMF for + z/OS Grafana plugin. + The errors that can occur vary in + severity and are classified into different types as + described in the following table: + + + Type + Error Code + Description + + + + Severe + S + A + critical error has arisen that will cause the task + you are currently performing to terminate + immediately.It is essential to take + necessary measures to prevent such errors to + ensure the smooth functioning of the IBM RMF + for z/OS Grafana plugin. + + + Eventual Action + E + An error of a transient nature has arisen but can + be resolved with an action by the user. + + + Warning + W + Receiving a warning message from the IBM RMF + for z/OS Grafana plugin is not indicative + of an error within the application. + + + Information + I + An information message informs the users about + changes or updates in the IBM RMF + for z/OS Grafana plugin.You need + not take any action in response, but it's + essential to stay up-to-date and be aware of these + updates. + + + + When an error + occurs, it is assigned a unique Error ID that can help + quickly identify the root cause of the issue by referring to + the log file. The Error ID is a combination of 10 characters + comprising lower and upper case alphabets. + In case of any + problems with the Distributed Data Server + (DDS), you can identify the issues by looking + into DDS-specific errors, which will be displayed + without any modifications. The messages issued by the Distributed + Data Server are documented in the Distributed Data Server messages - + GPM + topic in the z/OS + Resource Measurement Facility Messages and + Codes. + The following are + the examples of error messages that you may encounter while + using the IBM RMF for z/OS Grafana plugin: + + + Tip: To diagnose the + issue from the docker logs of the IBM RMF for + z/OS Grafana plugin, you can run the following + command: + docker logs <container_name> 2>&1 | grep "<unique error code shown in the error message>" + + + + | 1.13 - Troubleshooting issues1.13. Troubleshooting issues + + This section + guides how to analyze and address typical issues that may + arise when using the IBM® RMF for z/OS Grafana plugin. + + This article + is regularly updated with the latest information on + discovering and solving issues that may arise. You can + search through the article to find the precise + information you need. + You can open a + case by navigating to IBM + support + if you cannot find any solutions for the issue you + encountered. Before opening a case, gather all the + required information and provide the details to IBM + support for further investigation. + The following + table describes the details of issues and the + resolutions you can apply to fix the problems: + + + + Issues + Cause + Resolutions + + + + RMF Time Series + dashboards do not plot the Monitor 3 metrics data, + whereas RMF Reports and RMF Charts dashboards plot + correctly. + The proxy settings + configured by your network administrator block web + socket connections from the Grafana server. + The IBM RMF for z/OS Grafana plugin streams time series data to the clients through web socket connections. + Unblocking web sockets + and configuring the appropriate proxy settings is + necessary to ensure that web sockets with the name + "ws" in the URI work + correctly with the IBM RMF for z/OS + Grafana + plugin.You can contact your network administrator to modify the proxy configuration settings. + + + + + + + + | 1.14 - Grafana through IBM z/OS Management Facility1.14. Grafana through IBM z/OS + Management Facility + + + When you use + IBM® z/OS Management Facility to monitor + the performance of the z/OS sysplexes in your environment, + you can also access Grafana dashboards from z/OSMF. + You must complete certain tasks to + access Grafana through z/OSMF. The following table + lists the task flows to access Grafana from z/OSMF: + + + Tasks + More + information + + + + Complete the tasks + provided in the Prerequisites topic. + Prerequisites for accessing Grafana dashboards on + z/OSMF (on page ) + + + Install the RMF for z/OS + plugin on Grafana. + Installing the RMF for z/OS plugin on + Grafana (on page ) + + + Define Grafana servers as + target systems. + Defining the Grafana + server (on page ) + + + Access Grafana + dashboards + Accessing the Grafana + dashboard (on page ) + + + + + + 1.14.1. Prerequisites for accessing Grafana + dashboards on z/OSMF + + + Before you + can start working with Grafana dashboards through z/OSMF, there are some prerequisites that + you need to complete. + The following + sections describe each prerequisite in detail: + + Configure + z/OSMF + When + installing z/OS, z/OSMF is + automatically installed as a fundamental component + of the operating system. However, to use its + features, you must configure the z/OSMF nucleus on your system and add core + and optional services. This enables you to take + advantage of the many benefits that z/OSMF offers. For more information, refer + to the z/OS Management Facility + Configuration + Guide. + + + Install + Grafana + You must + install Grafana v9.5.1 or later. + For more + information, refer to the Grafana + documentation for detailed instructions on + installing Grafana and its dependencies and starting + the Grafana server on your system. + + + User + administration + You must + review the default user management settings provided + by the Grafana server to determine if you need any + additional permissions to be added for the + users. + For more + information, refer to the User + Management + section of the Grafana documentation. + + + Configure + JSON Web Token (JWT) support on z/OSMF + You must + configure the z/OSMF server to build + and use JSON Web Token (JWT) tokens. Because, by + default, the JWT function is turned off on the z/OSMF server. You can turn on the JWT + authentication by modifying the server's + configuration files directly. Once enabled, the JWT + function allows you to use JWT tokens to + authenticate and authorize user access to the + Grafana through the z/OSMF server. + When + configuring z/OSMF JWK files, it + is essential to use the jwksUri parameter. This parameter + specifies a URL for the JSON Web Key service, which + is necessary for building the JWK files. + The format + of the jwksUri parameter is as follows: + https://${hostname}:${port}/jwt/ibm/api/zOSMFBuilder/jwk + For + example, if your z/OSMF server is + running on https://abc.com:12345, + then the value of jwksUri is: + https://abc.com:12345/jwt/ibm/api/zOSMFBuilder/jwk + Where, + abc is the hostname where the z/OSMF server runs. + 12345 is the port number. + + You must + save the content of jwksUri as the jwks.json file and place it in the + following directory: + /PATH/TO/jwks.json + For + information about enabling the JWT function, refer + to the z/OS Management Facility + Configuration + Guide. + + + Configure + JWT authentication on Grafana + You must + configure Grafana to accept a JWT token in the HTTP + header. You can also verify the token's validity + using a JSON Web Key Set (JWKS) stored in a local + file. + As a + system administrator, when you install Grafana, you + can pass values for some of the individual + parameters in the .ini configuration file to configure JWT + authentication on Grafana. See Grafana configuration + parameters (on page ). + The default location of the + configuration file is as follows: + + + Operating systems + Default path to the + configuration file + + + + Windows® + WORKING_DIR/conf/defaults.ini + + + Linux® + /etc/grafana/grafana.ini + + + macOS® + /usr/local/etc/grafana/grafana.ini + + + + + + + 1.14.1.1. Grafana configuration + parameters + + You can find the information + about parameters you can use during the + configuration of JWT authentication on Grafana. + The + following table lists the minimum parameters that + you must configure to enable JWT authentication on + Grafana: + + + + Section + Parameters + Description + Values to + be configured for z/OSMF + + + + [auth.jwt] + enabled + Use this parameter to + allow JWT to authenticate on the Grafana + server.The default value is set to true. + true + + + enable_login_token + Upon successful + authentication proxy header validation, this + parameter provides the user with a login + token.The default value is set to false. + true + + + header_name + Use this parameter to + specify the header's name that holds a + token.The default value is set to X-JWT-Assertion. + X-Forwarded-Access-Token + + + username_claim + Use this parameter to + identify the user. + The sub claim is mandatory and needs to be present in a JWT, and it should mention the subject of the JWT.The default value is also set to sub. + sub + + + jwk_set_file + Use this parameter to + verify the token with a JSON Web Key Set loaded + from a JSON file. + /PATH/TO/jwks.json + + + cache_ttl + Use this parameter to + establish the duration for caching data retrieved + from the HTTP endpoint. + This parameter enables the user to store the data for a specified period, allowing for faster access and retrieval of information.The default value is set to 60m (minutes). + 60m + + + expect_claims + Use this parameter to + verify the validity of other claims that contain + JSON-encoded information. + When it comes to validation, only the exp, nbf, and iat claims are automatically checked by default.You must validate if you are using other claims such as iss, sub, aud, and jti. + {"iss": + "zOSMF"} + + + auto_sign_up + Use this parameter to + automatically create user profiles in Grafana + using the TSO ID of z/OSMF for users who do not have user + profiles in the Grafana + server.The default value is set to false. + true + + + url_login + Use this parameter to + enable JWT authentication in the URL. + The default value is set to false. + true + + + [server] + protocol + Use this parameter to + configure z/OSMF to work over + HTTPS.When you configure z/OSMF to work over HTTPS, it is recommended to configure Grafana to also work over HTTPS. This ensures the secure data transfer between the user's web browser and the Grafana server.The default value is set to http. + https + + + cert_file + Use this parameter to + specify the path to the certificate file when the + protocol parameter is set to https or h2. + /PATH/TO/certificate.crt + + + cert_key + Use this parameter to + specify the path to the certificate key file when + the protocol parameter is set to https or h2. + /PATH/TO/privateKey.key + + + [Security] + cookie_secure + Use this parameter if you + hosted the Grafana instance over + HTTPS.The default value is set to false. + true + + + cookie_samesite + Use this parameter to + prevent the browser from sharing cookies with + other + websites.The default value is set to lax. + disabled + + + allow_embedding + Use this parameter to + enable web browsers to display Grafana within + z/OSMF HTML <frame>, <iframe>, + <embed>, or <object> element. + The default value is set to false. + true + + + + For more + information about customizing the Grafana instance + by modifying the parameters in the configuration + file, refer to the following sections in the Grafana + documentation. + + Configure JWT + authentication + Configure + Grafana + + + + + + 1.14.2. Defining the Grafana + server + + You must + define the Grafana server as a target system in z/OSMF to access Grafana from the Resource + Monitoring page of z/OSMF. + + Before + you begin + You must have completed the + following tasks: + Completed the tasks provided in the Prerequisites + section. See Prerequisites for accessing Grafana dashboards on + z/OSMF (on page ). + Installed the IBM RMF for z/OS + Grafana plugin. See Installing the RMF for z/OS plugin on + Grafana (on page ). + + + + Procedure + + + 1. + Enter the URL of z/OSMF in a web browser. + + 2. + Log in to z/OSMF if you are not already logged + in. + + 3. + Double-click System + Status. + + 4. + Click Add + Entry from the Actions drop-down list. + + 5. + Perform the following steps + to add details about the Grafana server: + + a. + Enter a name for the Grafana + server in the Resource name field. + The Resource name is the required field, and + you must provide a unique name. The Resource name can contain up to 24 characters + including alphanumeric characters (A-Z, a-z, and 0-9) and special + characters (@ # $). Note: You must + note that the Resource name is not case sensitive. + Therefore, the entries with similar names but + different capitalization, such as SYS1 and Sys1 are considered + as identical by the system. + + b. + Enter the host name or IP + address of the Grafana server that you want to + access in the Host + name or IP address field. + The host name or IP address + can contain up to 4000 + characters. + + c. + Select Grafana from the Target + system type drop-down list. + + d. + Select the Use + HTTPS checkbox to enable secure + communication. + + e. + Enter the port number where + the Grafana server is hosted in the Port field. + + The + Port is the required field, and the + default port number is set to 3000. + Tip: + Alternatively, you can use up-down controls to specify the port + number. + + + + + 6. + Click OK. + + + + + Results + You have defined the Grafana server as the target + system. + + What + to do next + You can perform the following + tasks: + Modify or Remove the Grafana server by clicking + the Action drop-down menu from the System + Status page. + Access Grafana dashboards. See Accessing the Grafana + dashboard (on page ). + + + + + 1.14.3. Accessing the Grafana + dashboard + + You can + access the Grafana dashboard from the Resource + Monitoring page of z/OSMF to investigate the RMF Monitor III + metrics and reports. + + Before + you begin + You must have defined the Grafana server in z/OSMF. See Defining the Grafana + server (on page ). + + + Procedure + + + 1. + Enter the URL of z/OSMF in a web browser. + + 2. + Log in to z/OSMF if you are not already logged + in. + + 3. + Double-click Resource Monitoring. + + 4. + Select the Grafana server + that you want to access from the drop-down + list. + + 5. + Click OK. + + + + + Results + You have accessed Grafana from z/OSMF. + + What + to do next + You can perform the following + tasks: + View the dashboards by navigating to Apps > + IBM + RMF > + Dashboards. + Add a RMF data source to fetch data from Distributed Data Servers (DDS). See Creating RMF data + sources (on page ). + + + + + + + + + + + \ No newline at end of file diff --git a/grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.html b/grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.html new file mode 100644 index 00000000..c6b4a80c --- /dev/null +++ b/grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.html @@ -0,0 +1,1582 @@ + + + + + + +IBM RMF for z/OS Grafana Plugin User Guide
IBM RMF for z/OS Grafana Plugin User Guide
+
IBM RMF for z/OS Grafana Plugin User Guide
+
Grafana is a platform for monitoring and visualizing data. It enables users to create, explore, and share dashboards that are interactive and customizable. The
IBM
RMF for z/OS Grafana plugin provides effortless analysis and visualization of
Resource Measurement Facility for z/OS
(
RMF for z/OS
) Monitor III metrics and reports within the Grafana platform. Thereby, you can monitor and analyze the health and performance of applications.
This article covers the new features, system requirements, and known issues of the
IBM
RMF for z/OS Grafana plugin.
You must install the
IBM
RMF for z/OS Grafana plugin to analyze and visualize RMF Monitor III metrics and reports.
You must ensure that the
IBM RMF for z/OS Grafana
plugin is up to date to leverage its enhanced functionalities. You can do so by either installing or upgrading to the latest version of the plugin.
To access RMF Monitor III metrics in Grafana, you need to connect to the
Distributed Data Server
(
DDS
) by adding an RMF data source.
IBM
RMF for z/OS Grafana is a plugin provides custom panels for the RMF data source and master dashboard that consists of RMF Charts, RMF Reporting, and RMF Time Series dashboards.
By adding panels to dashboards, you can effectively present your RMF data in a visual format. Each panel must require at least one query to display a significant visualization.
In Grafana, queries are essential for fetching and transforming data from RMF data sources.
Variables are a powerful tool to create more interactive and dynamic dashboards. They offer a way to replace hard-coded values in metric queries and panel titles with placeholders for values.
Grafana Alerting feature provides a reliable solution to detect and respond to system issues in real time.
In Grafana, you can view historical data using absolute and relative time ranges.
Whenever you encounter issues while using the
IBM RMF for z/OS Grafana
plugin, you can view detailed error messages that contain sufficient information to help you identify and troubleshoot the problem.
This section guides how to analyze and address typical issues that may arise when using the
IBM
RMF for z/OS Grafana plugin.
When you use
IBM
z/OS Management Facility to monitor the performance of the z/OS sysplexes in your environment, you can also access Grafana dashboards from
z/OSMF
.
Before you can start working with Grafana dashboards through
z/OSMF
, there are some prerequisites that you need to complete.
You can find the information about parameters you can use during the configuration of JWT authentication on Grafana.
You must define the Grafana server as a target system in
z/OSMF
to access Grafana from the
Resource Monitoring
page of
z/OSMF
.
You can access the Grafana dashboard from the
Resource Monitoring
page of
z/OSMF
to investigate the RMF Monitor III metrics and reports.
+

IBM RMF for z/OS Grafana Plugin

+

Visualization of RMF Monitor III metrics in Grafana

+
+ +
+ +

Grafana is a platform for monitoring and visualizing data. It enables users to + create, explore, and share dashboards that are interactive and customizable. The IBM® RMF for z/OS Grafana plugin provides effortless analysis and + visualization of Resource Measurement Facility for z/OS (RMF for z/OS) Monitor III metrics and reports within the + Grafana platform. Thereby, you can monitor and analyze the health and performance of + applications.

+
The IBM RMF for z/OS Grafana plugin provides the following + features:
    +
  • You can choose various visualization options, such as graphs, charts, panels, + and reports, to help you understand your data's trends, patterns, and + variances.
  • + +
  • You can create dynamic and engaging dashboards by piecing together various + panels, each displaying a unique visualization.
  • +
  • You have the freedom to customize each panel based on your requirements, + including its appearance, size, and the data queries it displays.
  • +
  • Grafana supports integration with numerous data sources, which helps you fetch + data from various Distributed Data Servers (DDS) and display it in a unified + dashboard.
  • +
  • You can set up alerts based on specific conditions or thresholds in your RMF + data. Grafana can trigger notifications via email or other communication + channels when these conditions are met.
  • +
  • You can define a dashboard variable to change the RMF data displayed in your + dashboard simply by selecting a value from the drop-down list at the top.
  • +
+
+
+

Release notes

+ +

This article covers the new features, system requirements, and known issues of the + IBM® RMF for z/OS Grafana plugin.

+

What's new

+ +
+ +
May 2025 v1.0.9
+
+
    +
  • +

    IBM RMF for z/OS Grafana plugin has been + enhanced to optimize the step size when querying and displaying + time series data, based on the selected time range and panel + size. This enhancement ensures that panels display the required + number of data points.

    +
  • +
  • +

    A bug has been fixed that was causing specific data points to be + dropped from time series views, resulting in a flat line in the + graphs.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+ +
+
+
+
+ +
April 2025 v1.0.8
+
+
    +
  • +

    A new option, Compression, has been added + to the data source creation process. This option enables the RMF + data source to request HTTP compression from the Data + Distributed Server (DDS) during data retrieval, which improves + the efficiency of data transfer. See Creating RMF data sources.

    +
  • +
  • +

    Fixed certain scenarios of missing data within dashboards for + time series visualizations.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+ + +
November 2024 v1.0.7
+
+

Fixed internally found defects.

+ +
+ + +
October 2024 v1.0.6
+
+
    +
  • +

    The IBM RMF for z/OS Grafana plugin now + allows customizing banner and caption fields in IBM RMF Report + visualizations.

    +
  • +
  • +

    After you modify any IBM RMF data + source and save the changes, you no longer need to re-enter the + password.

    +
  • +
  • +

    Improved performance.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+ +
+
+
+
+ +
August 2024 v1.0.5
+
+
    +
  • +

    When creating the datasource, you now have the option to specify + the desired cache size in megabytes for the datasource.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +

    The topic of Creating RMF data sources has been + updated per the new UI changes.

    +
  • +
+
+ + +
June 2024 v1.0.4
+
+
    +
  • +

    The user interface for creating the datasource has been enhanced + to improve the user experience.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +
    The following dashboards are updated:
      +
    • Common Storage Activity (Timeline)
    • +
    • Common Storage Activity
    • +
    • Coupling Facility Overview (Timeline)
    • +
    • Coupling Facility Overview
    • +
    • Execution Velocity (Timeline)
    • +
    • Execution Velocity
    • +
    • General Activity (Timeline)
    • +
    • General Activity
    • +
    • Overall Image Activity (Timeline)
    • +
    • Overall Image Activity
    • +
    • Performance Index (Timeline)
    • +
    • Response Time (Timeline)
    • +
    • Response Time
    • +
    • XCF Activity (Timeline)
    • +
    • XCF Activity
    • +
    Note: You must re-import the + dashboards to utilize the latest enhancements in the + dashboards.
    +
  • +
  • +
    The documentation updates for v1.0.4 include the following + changes:
    +
  • +
+
+ + +
February 2024 v1.0.3
+
+
    +
  • +

    Fixed specific issues related to the support of Grafana + v10.x.x.

    +
  • +
  • +

    Fixed empty settings issue for IBM RMF data source defined via + Home / Apps / IBM RMF page.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +
    The documentation updates for v1.0.3 include the following + changes:
      +
    • +

      The Grafana + through IBM z/OS Management Facility topic + explains more detailed setup instructions to access + Grafana from the z/OSMF server.

      +
    • +
    • +

      The RMF for z/OS plugin + installation section is updated to provide + clear information and guidance on installing the RMF for z/OS plugin on + different platforms based on specific + requirements.

      +
    • +
    • +

      The troubleshooting topic is provided to help + users analyze and resolve common issues that may + occur while using the IBM RMF for z/OS Grafana + plugin.

      +
    • +
    +
  • +
+
+ + +
December 2023 v1.0.2
+
+
    +
  • +

    Support spaces in Datasource name.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+ + +
November 2023 v1.0.1
+
+
    +
  • +

    Resolved security issues in dependencies.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+ + +
November 2023 v1.0.0
+
+

The first release of the IBM RMF for z/OS Grafana + plugin is in the following GitHub repository: https://github.com/IBM/RMF.

+
+ +
+
+

Requirements

+ +
You must have the following software to use the IBM RMF for z/OS Grafana plugin:
    +
  • Resource Measurement Facility for z/OS + 3.1
  • +
  • Distributed Data Server
  • +
  • IBM RMF for z/OS Grafana plugin 1.0.x
  • +
  • Grafana 9.5.1 or later
  • +
+
+ +
+
+

Installing the RMF for z/OS plugin on Grafana

+
+ +
+ +

You must install the IBM® RMF for z/OS Grafana plugin to analyze + and visualize RMF Monitor III metrics and reports.

+

Before you begin

+
You must have completed the following tasks:
    +
  • Installed RMF for z/OS + 3.1 + DDS and the functionality level must + be 3650 or higher.
  • +
  • Installed Grafana 9.5.1 or later.
  • +
You must be familiar working with Grafana.
+
+

Procedure

  1. + Set the value of allow_loading_unsigned_plugins to + ibm-rmf,ibm-rmf-datasource,ibm-rmf-report in the + [plugins] section of your custom configuration + file. +
    +
    The default configurations for a Grafana installation are in the + defaults.ini file. You can copy the + default.ini file and rename it to + custom.ini for customizing your Grafana + configuration. +

    The default location of the configuration file is as follows:

    + + + + + + + + + + + +
    Operating systemsDefault path to the configuration file
    Windows®WORKING_DIR/conf/defaults.ini
    Linux®/etc/grafana/grafana.ini
    macOS®/usr/local/etc/grafana/grafana.ini
    +
    Note: You can use the + GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS + environment variable to override + allow_loading_unsigned_plugins.
    +
    +
  2. + Choose any one of the methods described in the following table to install the + RMF for z/OS plugin based on your requirements: +
    +
    + + + + + + + + +
    MethodsStep #
    Installing the RMF for z/OS + plugin in the Grafana stand-alone application.Perform steps 3 and 4.
    Installing the RMF for z/OS + plugin along with Grafana within the Docker environment.Perform steps 5 and 6.
    +
    +
  3. + Run the following command to install the plugin by using Grafana CLI: +
    +
    grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf
    +
    Remember: You must replace the value of + <version> for the pluginURL + option to version number of the plugin to be installed.
    +
    +
  4. + Restart the Grafana server, and then go to step 7. +
  5. + Run the following command to create a volume for storing the Grafana + state: +
    +
    docker volume create rmf-grafana-data
    +
    +
  6. + Run the following command to create and run a container: +
    +
    docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image>
    +
    Remember: You must replace the values of the + following options in the command:
      +
    • <version> for the env + option to the version number of the plugin to be installed.
    • +
    • <image> to the version of the Grafana image to + be used.
    • +
    +
    Note: zCX/zLinux images are available at Container Images for IBM Z and LinuxONE. + Similarly, images of other required platforms are available at Docker + Hub.
    +
    +
  7. + To enable the RMF for z/OS plugin on the Grafana + UI, you must perform the following sub-steps: +
      +
    1. + Enter the URL of Grafana in your web browser. +
    2. +
    3. + Enter the username and password of Grafana on the + sign-in page. +
    4. +
    5. + Go to Administration > Plugins. +
      +
      Note: The navigation of the user interface can differ based on the + Grafana version that is currently installed.
      +
      +
    6. +
    7. + Enter RMF in the Search bar + on the Plugins page. +
    8. +
    9. + Click IBM RMF in + the search results. +
    10. +
    11. + Click Enable. +
      +
      Note: After you install the IBM RMF for z/OS Grafana plugin, when you open + IBM RMF on the Plugins page of Grafana UI, an + Invalid plugin signature warning message is + displayed.
      +
      +
    12. +
    +
  8. Optional: + Verify the signature of the IBM RMF Grafana plugin, which is signed with the + GPG key, by performing the following sub-steps: +
      +
    1. + Download the PUBLIC_KEY.asc (GPG public key) + file. + +
    2. +
    3. + Follow the instructions in the Importing a public key section of the GPG + user guide. +
    4. +
    5. + Download the IBM RMF for z/OS Grafana plugin + (ibm-rmf-grafana-x.y.z.zip) and signature file + (ibm-rmf-grafana-x.y.z.zip.asc) from https://github.com/IBM/RMF/releases. +
    6. +
    7. + Run the following command to verify the signature: +
      +
      gpg --verify ibm-rmf-grafana-x.y.z.zip.asc ibm-rmf-grafana-x.y.z.zip
      +

      Where x.y.z is the version number + of the IBM RMF for z/OS Grafana plugin.

      +

      For more information, refer to the GPG user guide.

      +
      +
    8. +
    +
+

Results

You have installed the IBM RMF for z/OS Grafana plugin. You can find the IBM RMF plugin listed under the + Apps section.

+

What to do next

You can add an RMF data source to fetch data from Distributed Data Servers (DDS). See Creating RMF data sources.
+
+ +
+

Upgrading the RMF for z/OS plugin on Grafana

+
+ +
+ +

You must ensure that the IBM RMF for z/OS Grafana plugin is up + to date to leverage its enhanced functionalities. You can do so by either installing or + upgrading to the latest version of the plugin.

+

About this task

The upgrade procedures differ based on the environment you used to install the + Grafana server.
+ + + + + + + + +
MethodsStep #
Upgrading the plugin in the Grafana stand-alone application.Perform steps 1 to 3.
Upgrading the plugin in the Grafana within the Docker + environment.Perfrom steps 4 to 7.
+

Procedure

  1. + Stop the Grafana server. +
  2. + Run the following command to upgrade the plugin by using Grafana CLI: +
    +
    grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf
    +
    Note: You must replace the value of + <version> for the pluginURL + option with the plugin's version number to be upgraded. +

    For example, if you want to install the v1.0.3 version of the plugin, the value of pluginURL is https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v1.0.3/ibm-rmf-grafana-1.0.3.zip.

    +
    +
    The CLI tool downloads the mentioned version of the plugin and replaces + the existing files.
    +
  3. + Restart the Grafana server, and then go to step 7. +
  4. + Run the following command to stop the docker container: +
    +
    docker stop rmf-grafana
    +

    Where rmf-grafana is the name of the container.

    +
    +
  5. + Run the following command to remove the docker container: +
    +
    docker rm rmf-grafana
    +
    +
  6. + Run the following command to upgrade the plugin by creating and running a + container: +
    +
    docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image>
    +
    Remember: You must replace the values of the + following options in the command:
      +
    • <version> for the env + option to the version number of the plugin to be upgraded.
    • +
    • <image> to the version of the Grafana image + used.
    • +
    +
    +
  7. + Perform the following sub-steps to re-import the dashboards. +
    After upgrading the plugin to a new version, it is essential to re-import the + dashboard. This ensures that you are utilizing the most up-to-date features in + the dashboards.
    Tip: You can find the updated + dashboards for each release by referring to the CHANGELOG of the plugin. You do not need to + re-import all the dashboards.
    +
      +
    1. + Enter the URL of Grafana in your web browser. +
    2. +
    3. + Enter the username and password of Grafana on the + sign-in page. +
    4. +
    5. + Go to Administration > Plugins. +
      +
      Note: The navigation of the user interface can differ based on the + Grafana version that is currently installed.
      +
      +
    6. +
    7. + Enter RMF in the Search bar + on the Plugins page. +
    8. +
    9. + Click IBM RMF in + the search results. +
    10. +
    11. + Click Dashboards, and then click + Re-import to re-import the dashboards. +
    12. +
    +
+

Results

You have updated the IBM RMF for z/OS Grafana plugin.
+
+
+

Creating RMF data sources

+ +

To access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by + adding an RMF data source.

+

Before you begin

+ +
+

Procedure

  1. + Go to Apps > IBM RMF > Add RMF Data Source. +
    Alternatively, you can click Administration > Data sources > + Add new data source, then search for the IBM RMF to choose a data source type.
    Note: The navigation of the user interface can differ based on the + Grafana version that is currently installed.
    +
  2. + Enter a name for the data source in the Name + field. +
  3. Optional: + Set Default + to + ON to make the added data source the default + one. +
    +
    Note: When you create new panels, the default data source + is preselected.
    +
    +
  4. + Enter the details for the following fields in the HTTP + section: +
    +
    + + + + + + + + + + + +
    FieldsAction
    DDS URLEnter the URL of the DDS in this field.

    The format of the URL is + http://hostname:port_number[/path] + or + https://hostname:port_number[/path]

    Important: In the DDS URL, the + /path is + optional, and you must exclude it in the default network + configuration. However, it might be required in more advanced + setups, such as when DDS + functions behind a reverse proxy.
    TimeoutSpecify the duration, in seconds in this field, for which + Grafana is allowed to wait for a connection to the DDS before it closes the + connection.

    The default value is + 60.

    CompressionThis option is enabled by default, which means that when RMF + requests data from DDS, HTTP + compression is utilized, provided that the DDS is operating on a + maintenance level OA67541. The compression setting is ignored if DDS is not at this + maintenance level.

    You can turn off HTTP compression by setting + the Compression option to + OFF, resulting in DDS data being always + transferred in an uncompressed format.

    +
    +
  5. Optional: + Set the Skip TLS Verify option to + ON if you are accepting any certificate + presented by the DDS and any hostname listed in that certificate. However, this + practice is not considered secure and is typically used in development or + testing environments. +
    +
    Note: By default, the Skip TLS + Verify option is set to + OFF.
    +
    +
  6. + Set the Basic Auth option to + ON to create the data source with basic + authentication. +
  7. + Enter the credentials of the DDS in the + User and Password + fields. +
    +
    Note: The User and + Password fields are visible only when you enable + the basic authentication.
    +
    +
  8. + Specify the size of the cache (in MB) for the data source in the + Size field. +
    +
    Remember: The value must be greater than or + equal to 128. The default value is + 1024.
    +
    +
  9. + Click Save & test. +
    The Data source is working message is displayed if the + connection to DDS succeeds.
    +
+

Results

You have added the RMF data source.
+

What to do next

+

You can refer to the RMF master dashboard topic for information about RMF + master dashboard and its features.

+
+
+
+

RMF master dashboard

+ +

IBM® RMF for z/OS Grafana is a plugin provides custom panels for + the RMF data source and master dashboard that consists of RMF Charts, RMF Reporting, and RMF + Time Series dashboards.

+

Grafana provides a highly flexible and customizable dashboard consisting of one or more + rows and panels. You can use various pre-configured panels to construct queries and + tailor the visualization to meet your requirements. This enables you to create a + personalized dashboard that seamlessly interacts with data from a configured Distributed Data Server (DDS). For more information about creating and managing dashboards, refer to the Grafana documentation.

+
When you install the RMF for z/OS Grafana plugin for the first time, all the dashboards + are imported automatically. You can view the dashboards by navigating to Apps > IBM RMF > Dashboards. The following table lists the dashboards available in RMF Charts, RMF + Reporting, and RMF Time Series dashboards:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1. RMF master dashboard
RMF Charts DashboardRMF Reporting + DashboardsRMF Time Series Dashboards
Common Storage ActivityCACHDETDSNDPROCSYSINFOCommon Storage Activity (Timeline)
Coupling Facility OverviewCACHSUMEADMPROCUSYSRGCoupling Facility Overview (Timeline)
Execution VelocityCFACTENCLAVESPACEDSYSSUMExecution Velocity (Timeline)
General ActivityCFOVERENQSPACEGUSAGEGeneral Activity (Timeline)
Overall Image ActivityCFSYSHSMSTORXCFGROUPOverall Image Activity (Timeline)
Performance IndexCHANNELIOQSTORCXCFOVWPerformance Index (Timeline)
Response TimeCPCJESSTORCRXCFPATHResponse Time
Using & DelaysCRYOVWLOCKSPSTORFXCFSYSUsing & Delays (Timeline)
XCF ActivityDELAYLOCKSUSTORMZFSFSXCF Activity (Timeline)
Common Storage ActivityDEVOPDSTORRZFSKNCommon Storage Activity (Timeline)
DEVRPCIESTORSZFSOVW
+

The dashboard interface offers several customization options for data presentation. The + following is the image of the master dashboard from the IBM RMF for z/OS Grafana plugin:

+

default_dashboard_view

+

You can click the import_dashboard option when there is a new version of the plugin, and then re-import the + dashboard by clicking the reimport icon. Similarly, if any of the dashboards is no longer required, you can click + the icon to remove it + from the master dashboard.

+

For more information about available features in the Dashboard and their descriptions, + refer to the Grafana documentation.

+
+
+

Applying visualization to RMF data

+ +

By adding panels to dashboards, you can effectively present your RMF data in a visual + format. Each panel must require at least one query to display a significant + visualization.

+

Before you begin

You must have completed the following tasks:
+

Procedure

  1. + Identify the dashboard for which you want to add visualization. +
  2. + Perform one of the steps described in the following table: +
    +
    + + + + + + + + +
    Step descriptionStep #
    If there are no panels added to the dashboardPerform step 3.
    If at least one panel is added to the dashboardPerform step 5.
    +
    +
  3. + Click + Add visualization to add visualization to your + data. +
    +
    Note: The navigation of the user interface can differ based on the + Grafana version that is currently installed.
    +
    +
    The Edit panel is displayed.
    +
  4. + Go to step 6. +
  5. + Click Add > Visualization from the dashboard header. +
    +

    +
    +
    The Edit panel is displayed.
    +
  6. + Enter a name for the panel in the Title field. +
    Optionally you can also provide a description for the panel that you are + creating.

    When you add the description for the panel, a notification icon + is + displayed after the Panel title, as shown in the + following image:

    +
  7. + Select one of the visualization types from the drop-down menu: +
    +

    +

    You can choose Report for IBM RMF for z/OS or built-in + Bar chart Grafana visualization types from the + drop-down list.

    +
    +
  8. + Click the Query tab, and then enter a query in the query + language of the RMF data source. +
    +
    Note: You can click + Query to add + multiple queries.
    +
    +
  9. + Click the Transformation tab, and then select a + transformation from the list. +
    Upon accessing the transformation options, a dedicated row is presented for + configuration.
    Note: You can click + Add + Transformation to add multiple transformations to + data.
    +
  10. + Select the existing data sources from the Data source + drop-down list. +
  11. + Click the Time Picker drop-down list to select relative + time range options and set custom absolute time ranges. +
    +

    +
    +
  12. + Click the Refresh dashboard + icon to query the RMF + data source. +
    Grafana provides you with a preview of your query results along with the + corresponding visualization.
    +
  13. Optional: + Click Apply to view your changes applied to the + dashboard. +
  14. + Click Save, and then enter a note describing the changes + you have made. +
  15. + Click Save to store the changes made to the + dashboard. +
+

Results

You have applied visualization to the RMF data.
+

What to do next

+

Grafana provides a range of visualizations that cater to different use cases. For + more information about the built-in panels, options, and typical usage, refer to the + Grafana documentation.

+

You can also configure the panel options based on your requirements. For more + information refer to the Grafana documentation.

+

You can add multiple transformation to your data. When there are multiple + transformations, Grafana applies them sequentially. Each transformation produces a + result set that is passed on to the next transformation in the pipeline. Grafana + provides several ways that you can transform data. For entire list of + transformations, refer to the Grafana documentation.

+
+
+
+

IBM RMF query languages

+ +

In Grafana, queries are essential for fetching and transforming data from RMF data + sources.

+

Executing a query is a process that involves defining the data source, specifying the + desired data to retrieve, and applying relevant filters or transformations. IBM RMF for z/OS Grafana plugin provides a user-friendly RMF query + editor that maximizes its unique capabilities. Grafana panels retrieve data for + visualization from RMF data sources via queries.

+

You can use the following types of queries to retrieve data from the specified RMF data + source:

+
    +
  • Metric query – Use this query to retrieve RMF Monitor III metrics.
  • +
  • Report query – Use this query to retrieve RMF Monitor III reports.
  • +
+

Metric query syntax

+ +

The syntax of the Metric query is as follows:

+

resource_type.metric_description + {qualifications}

+
Where:
    +
  • resource_type is the type + of resource for which information is requested. You must enter the + appropriate value in the + resource_type field.

    The + available resource types are documented in the z/OS RMF Monitor III resource + model topic in the z/OS Resource Measurement Facility Programmer's + Guide.

  • +
  • metric_description is the name of the + metric for the selected resource type.

    After entering the resource type, + you can choose the metric description from the drop-down list.

  • +
  • qualifications is an optional parameter + and can contain any or all the following attributes separated by a comma:
      +
    • ulq: The name of the resource + type at the upper level.
    • +
    • name: The name of the + resource.
    • +
    • filter: The filter helps to + focus on the data of your interest when requesting a list of values. +
      You can use one of the following values for the + filter attribute:
      + +
      PAT=< pattern>
      +
      Specifies one or more patterns that must match the + name part of a list element.
      + + +
      LB=<number>
      +
      Specifies a lower bound value. Only list elements + with values higher than the given lower bound are + returned.
      + + +
      UB=<number>
      +
      Specifies an upper bound value. Only list elements + with values lower than the established upper bound + are returned.
      + + +
      HI=<integer>
      +
      Only the highest <integer> list elements are + returned (mutually exclusive with LO).
      + + +
      LO=<integer>
      +
      Only the lowest <integer> list elements are + returned (mutually exclusive with HI).
      + + +
      ORD=< NA | ND | VA | VD | NN>
      +
      +
        +
      • NA - Sort the list of names by their names in + ascending order.
      • +
      • ND – Sort the list of names by their names in + descending order.
      • +
      • VA – Sort the list of values by their values + in ascending order.
      • +
      • VD – Sort the list of values by their values + in descending order.
      • +
      • NN - If you do not want to have any order, you + can specify ORD=NN.
      • +
      +
      + +
    • +
    • workscope: To qualify a request + for performance data in more detail about address spaces and WLM + entities. You can use one of the following values for the workscope + attribute:
        +
      • G - Global (no workscope required)
      • +
      • W - WLM workload
      • +
      • S - WLM service class
      • +
      • P - WLM service class period
      • +
      • R - WLM report class
      • +
      • J - Job
      • +
    • +
  • +
+

Examples:

+
SYSPLEX.% total physical utilization (AAP) by partition
+
COUPLING_FACILITY.% processor utilization
+
CPC.% total physical utilization (shared IIP)
+
MVS_IMAGE.% delay by WLM report class period {name=RS21}
+ +
MVS_IMAGE.% workflow by WLM report class period {ulq=RS21,name=RS2*,filter=ORD=NA,workscope=,,G}
+
+

Report query syntax

+ +

The syntax of the Report query is as follows:

+

resource_type.REPORT.report_name

+
Where:
    +
  • resource_type is the type + of resource for which information is requested. You must enter the + appropriate value in the + resource_type field.
  • +
  • report_name is the name of the + report.

    You can find the report names in the Interactive performance analysis with + Monitor III, which is documented in the z/OS Resource Measurement Facility Report Analysis.

    Note: You can view reports on the Grafana dashboard only + for the resource types SYSPLEX and + MVS_IMAGE.
  • +
+

Examples:

+
SYSPLEX.REPORT.CACHSUM
+
SYSPLEX.REPORT.CPC
+
+
+
+

RMF Variable Query syntax

+ +

Variables are a powerful tool to create more interactive and dynamic dashboards. They + offer a way to replace hard-coded values in metric queries and panel titles with + placeholders for values.

+
Variables make it easy to change the data displayed in your dashboard simply by selecting + a value from the drop-down list at the top. Using variables in your dashboard simplifies + maintenance, particularly if you have multiple identical data sources. Instead of + creating separate dashboards for each data source, you can create one dashboard and use + variables to change what you are viewing.
Important: It's important to note that variables don't have a default value. Each variable + drop-down list in Dashboard settings displays the variable list in the order it + appears.
+

You can define a dashboard variable in Dashboard Settings > Variables using Grafana's RMF Variable Query syntax with and without a filter.

+

Syntax of the query without a filter

The + general syntax of the query without a filter is as follows:

SELECT + <COLUMN_NAME> FROM RESOURCE WHERE condition1 or + condition2 or + condition3

Note: The + <COLUMN_NAME> is limited to label and + RESOURCE is limited to resource only and cannot be used + for other purposes.
Where:
    +
  • condition1: + ULQ=Value + and + TYPE=Value
  • +
  • condition2: + Name=Value + and + TYPE=Value
  • +
  • condition3: + Name=Value + and + ULQ=Value + and + TYPE=Value
  • +
Examples for condition1:
    +
  • select label from resource where + ulq="hostname of the + DDS" and + type="CHANNEL_PATH"
  • +
  • select label from resource where + ulq="hostname of the + DDS" and + type="ALL_CHANNELS"
  • +

Examples for condition2:

select + label from resource where + name="resource_name" and + type="SYSPLEX"
Examples + for condition3:
    +
  • select label from resource where + ulq="hostname of the + DDS" and + name="*" and + type="CHANNEL_PATH"
  • +
  • select label from resource where + ulq="hostname of the + DDS" and + name="*" and + type="ALL_CHANNELS"
  • +
+

Syntax of the query with a filter

+ +

The general syntax of the RMF query with a filter is as follows:

+

SELECT <COLUMN_NAME> FROM RESOURCE WHERE + condition

+

Where condition is + Name=Value and + ULQ=Value and + TYPE=Value and + Filter= + Value

+

Examples for condition:

+

select label from resource where + name="resource_name" + and type="SYSPLEX" and + filter="MVS_IMAGE"

+
+
+

To learn how to effectively add and manage variables of your choice in Grafana, you + can refer to the Grafana documentation.

+
+
+
+

Introduction to Alerts

+
+ +
+ +

Grafana Alerting feature provides a reliable solution to detect and respond to system + issues in real time.

+

Through Grafana monitoring capabilities, you can keep track of incoming metrics data and + configure the alerting system to detect specific events or circumstances. When the + system identifies any issues, it automatically sends notifications to ensure that you + are up to date. With Grafana Alerting, you can eliminate the need for manual monitoring + and control system outages that could lead to significant incidents.

+

For more information about configuration of alerts and contact points, refer to the Grafana documentation.

+ +
+
+

Historical data collection

+
+ +
+ +

In Grafana, you can view historical data using absolute and relative time + ranges.

+
+

Viewing historical data is a common practice across organizations for various + purposes. The importance and use of historical data are significant in + decision-making, research, analysis, and planning. Analyzing historical data + provides valuable insights into the status, usage, performance, and health of + various resources.

+

You can also access cached metric data for queries, data sources, and timestamp + combinations that have already viewed by other user on Grafana. This means that if + any user requests metrics data for the same query, datasource, and timestamp, the + cached data can be displayed faster than a service call from DDS. If data for a + particular timestamp is not found in the cache, it will be fetched by a service call + from DDS. This feature can save you time and provide a faster experience accessing + metric data.

+
CAUTION: When you view data over extended time ranges, + the system may require considerable CPU resources on the host.
+ + + + +
+
+
+

Error reporting in the plugin

+
+ +
+ +

Whenever you encounter issues while using the IBM RMF for z/OS Grafana plugin, you can view detailed error messages + that contain sufficient information to help you identify and troubleshoot the + problem.

+

By viewing these error messages, you can quickly and efficiently troubleshoot any issues + you may encounter while using the IBM RMF for z/OS Grafana + plugin.

+
The errors that can occur vary in severity and are classified into different types as + described in the following table:
+ + + + + + + + + + + + + + + + + + + +
TypeError CodeDescription
SevereSA critical error has arisen that will cause the task you are currently + performing to terminate immediately.

It is essential to take necessary + measures to prevent such errors to ensure the smooth functioning of the + IBM RMF for z/OS Grafana plugin.

Eventual Action EAn error of a transient nature has arisen but can be resolved with an + action by the user.
WarningWReceiving a warning message from the IBM RMF for z/OS Grafana plugin is not indicative of an + error within the application.
InformationIAn information message informs the users about changes or updates in + the IBM RMF for z/OS Grafana plugin.

You need not + take any action in response, but it's essential to stay up-to-date and + be aware of these updates.

+

When an error occurs, it is assigned a unique Error ID that can help quickly identify the + root cause of the issue by referring to the log file. The Error ID is a combination of + 10 characters comprising lower and upper case alphabets.

+

In case of any problems with the Distributed Data Server (DDS), you can identify the issues by looking + into DDS-specific errors, which will be + displayed without any modifications. The messages issued by the Distributed Data Server are documented in the Distributed Data Server messages - GPM topic + in the z/OS Resource Measurement Facility Messages and Codes.

+

The following are the examples of error messages that you may encounter while using the + IBM RMF for z/OS Grafana plugin:

+

DDS_error

+

Error_plugin

+
Tip: To diagnose the issue from the docker logs of the IBM RMF for z/OS Grafana plugin, you can run the following command: +
docker logs <container_name> 2>&1 | grep "<unique error code shown in the error message>"
+
+
+

Troubleshooting issues

+ +

This section guides how to analyze and address typical issues that may arise when + using the IBM® RMF for z/OS Grafana plugin.

+
+

This article is regularly updated with the latest information on discovering and + solving issues that may arise. You can search through the article to find the + precise information you need.

+

You can open a case by navigating to IBM support if you cannot find any + solutions for the issue you encountered. Before opening a case, gather all the + required information and provide the details to IBM support for further + investigation.

+

The following table describes the details of issues and the resolutions you can apply + to fix the problems:

+
+ + + + + + + + + + + +
IssuesCauseResolutions
RMF Time Series dashboards do not plot the Monitor 3 metrics + data, whereas RMF Reports and RMF Charts dashboards plot + correctly.The proxy settings configured by your network administrator block + web socket connections from the Grafana server. +

The IBM RMF for z/OS Grafana plugin streams time series data to the clients through web socket connections.

Unblocking web sockets and configuring the appropriate proxy + settings is necessary to ensure that web sockets with the name + "ws" in the URI work correctly with + the IBM RMF for z/OS Grafana + plugin.

You can contact your network administrator to modify the proxy configuration settings.

+
+
+
+

Grafana through IBM z/OS Management Facility

+
+ +
+ +

When you use IBM® z/OS Management Facility to monitor the + performance of the z/OS sysplexes in your environment, you can also access Grafana + dashboards from z/OSMF.

+
You must complete certain tasks to access Grafana through z/OSMF. The following table lists the task flows + to access Grafana from z/OSMF:
+ + + + + + + + + + + + + + + + + + + + + +
TasksMore information
Complete the tasks provided in the Prerequisites topic.Prerequisites for accessing Grafana dashboards on z/OSMF
Install the RMF for z/OS plugin on Grafana.Installing the RMF for z/OS plugin on Grafana
Define Grafana servers as target systems.Defining the Grafana server
Access Grafana dashboardsAccessing the Grafana dashboard
+
+
+

Prerequisites for accessing Grafana dashboards on z/OSMF

+
+ +
+ +

Before you can start working with Grafana dashboards through z/OSMF, there are some prerequisites that you need to + complete.

+

The following sections describe each prerequisite in detail:

+

Configure z/OSMF

+ +

When installing z/OS, z/OSMF is automatically + installed as a fundamental component of the operating system. However, to use its + features, you must configure the z/OSMF + nucleus on your system and add core and optional services. This enables you to take + advantage of the many benefits that z/OSMF + offers. For more information, refer to the z/OS Management Facility Configuration Guide.

+
+

Install Grafana

+ +

You must install Grafana v9.5.1 or later.

+

For more information, refer to the Grafana documentation for detailed + instructions on installing Grafana and its dependencies and starting the Grafana + server on your system.

+
+

User administration

+ +

You must review the default user management settings provided by the Grafana server + to determine if you need any additional permissions to be added for the users.

+ +

For more information, refer to the User Management section of the Grafana + documentation.

+
+

Configure JSON Web Token (JWT) support on z/OSMF

+ +

You must configure the z/OSMF server to build + and use JSON Web Token (JWT) tokens. Because, by default, the JWT function is turned + off on the z/OSMF server. You can turn on the + JWT authentication by modifying the server's configuration files directly. Once + enabled, the JWT function allows you to use JWT tokens to authenticate and authorize + user access to the Grafana through the z/OSMF + server.

+

When configuring z/OSMF JWK files, it is + essential to use the jwksUri parameter. This parameter + specifies a URL for the JSON Web Key service, which is necessary for building the + JWK files.

+

The format of the jwksUri parameter is as follows:

+

https://${hostname}:${port}/jwt/ibm/api/zOSMFBuilder/jwk

+

For example, if your z/OSMF server is running + on https://abc.com:12345, then the value of jwksUri + is:

+

https://abc.com:12345/jwt/ibm/api/zOSMFBuilder/jwk

+
Where,
    +
  • abc is the hostname where the z/OSMF server runs.
  • +
  • 12345 is the port number.
  • +
+

You must save the content of jwksUri as the + jwks.json file and place it in the following directory:

+

/PATH/TO/jwks.json

+

For information about enabling the JWT function, refer to the z/OS Management Facility Configuration Guide.

+
+

Configure JWT authentication on Grafana

+ +

You must configure Grafana to accept a JWT token in the HTTP header. You can also + verify the token's validity using a JSON Web Key Set (JWKS) stored in a local + file.

+

As a system administrator, when you install Grafana, you can pass values for some of + the individual parameters in the .ini configuration file to + configure JWT authentication on Grafana. See Grafana configuration parameters.

+
The default location of the configuration file is as follows:
+ + + + + + + + + + + +
Operating systemsDefault path to the configuration file
Windows®WORKING_DIR/conf/defaults.ini
Linux®/etc/grafana/grafana.ini
macOS®/usr/local/etc/grafana/grafana.ini
+
+
+
+

Grafana configuration parameters

+ +

You can find the information about parameters you can use during the configuration of + JWT authentication on Grafana.

+

The following table lists the minimum parameters that you must configure to enable JWT + authentication on Grafana:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SectionParametersDescriptionValues to be configured for z/OSMF
[auth.jwt]enabledUse this parameter to allow JWT to authenticate on the Grafana + server.

The default value is set to true.

true
enable_login_tokenUpon successful authentication proxy header validation, this + parameter provides the user with a login + token.

The default value is set to false.

true
header_nameUse this parameter to specify the header's name that holds a + token.

The default value is set to X-JWT-Assertion.

X-Forwarded-Access-Token
username_claimUse this parameter to identify the user. +

The sub claim is mandatory and needs to be present in a JWT, and it should mention the subject of the JWT.

The default value is also set to sub.

sub
jwk_set_fileUse this parameter to verify the token with a JSON Web Key Set loaded + from a JSON file./PATH/TO/jwks.json
cache_ttlUse this parameter to establish the duration for caching data + retrieved from the HTTP endpoint. +

This parameter enables the user to store the data for a specified period, allowing for faster access and retrieval of information.

The default value is set to 60m (minutes).

60m
expect_claimsUse this parameter to verify the validity of other claims that + contain JSON-encoded information. +

When it comes to validation, only the exp, nbf, and iat claims are automatically checked by default.

You must validate if you are using other claims such as iss, sub, aud, and jti.

{"iss": "zOSMF"}
auto_sign_upUse this parameter to automatically create user profiles in Grafana + using the TSO ID of z/OSMF for users who do not have + user profiles in the Grafana + server.

The default value is set to false.

true
url_loginUse this parameter to enable JWT authentication in the URL. +

The default value is set to false.

true
[server]protocolUse this parameter to configure z/OSMF to work over + HTTPS.

When you configure z/OSMF to work over HTTPS, it is recommended to configure Grafana to also work over HTTPS. This ensures the secure data transfer between the user's web browser and the Grafana server.

The default value is set to http.

https
cert_fileUse this parameter to specify the path to the certificate file when + the protocol parameter is set to https or + h2./PATH/TO/certificate.crt
cert_keyUse this parameter to specify the path to the certificate key file + when the protocol parameter is set to https + or h2./PATH/TO/privateKey.key
[Security]cookie_secureUse this parameter if you hosted the Grafana instance over + HTTPS.

The default value is set to false.

true
cookie_samesiteUse this parameter to prevent the browser from sharing cookies with + other + websites.

The default value is set to lax.

disabled
allow_embeddingUse this parameter to enable web browsers to display Grafana within + z/OSMF HTML <frame>, + <iframe>, <embed>, or <object> element. +

The default value is set to false.

true
+

For more information about customizing the Grafana instance by modifying the parameters + in the configuration file, refer to the following sections in the Grafana + documentation.

+ +
+
+

Defining the Grafana server

+ +

You must define the Grafana server as a target system in z/OSMF to access Grafana from the Resource + Monitoring page of z/OSMF.

+

Before you begin

You must have completed the following tasks:
+

Procedure

  1. + Enter the URL of z/OSMF in a web browser. +
  2. + Log in to z/OSMF if + you are not already logged in. +
  3. + Double-click System Status. +
  4. + Click Add Entry from the Actions + drop-down list. +
  5. + Perform the following steps to add details about the Grafana server: +
      +
    1. + Enter a name for the Grafana server in the Resource + name field. +
      The Resource name is the required field, and + you must provide a unique name. The Resource name + can contain up to 24 characters including + alphanumeric characters (A-Z, + a-z, and + 0-9) and special characters + (@ # $).
      Note: You must note that the Resource name is not + case sensitive. Therefore, the entries with similar names but + different capitalization, such as SYS1 + and Sys1 are considered as identical by + the system.
      +
    2. +
    3. + Enter the host name or IP address of the Grafana server that you want + to access in the Host name or IP address + field. +
      The host name or IP address can contain up to + 4000 characters.
      +
    4. +
    5. + Select Grafana from the Target system + type drop-down list. +
    6. +
    7. + Select the Use HTTPS checkbox to enable secure + communication. +
    8. +
    9. + Enter the port number where the Grafana server is hosted in the + Port field. +
      +

      The Port is the required field, and the + default port number is set to 3000.

      +
      Tip: Alternatively, you can use + up-down controls to specify the port + number.
      +
      +
    10. +
    +
  6. + Click OK. +
+

Results

You have defined the Grafana server as the target + system.
+

What to do next

You can perform the following tasks:
    +
  • Modify or Remove the Grafana server by clicking the + Action drop-down menu from the System + Status page.
  • +
  • Access Grafana dashboards. See Accessing the Grafana dashboard.
  • +
+
+
+

Accessing the Grafana dashboard

+ +

You can access the Grafana dashboard from the Resource + Monitoring page of z/OSMF to + investigate the RMF Monitor III metrics and reports.

+

Before you begin

You must have defined the Grafana server in z/OSMF. See Defining the Grafana server.
+

Procedure

  1. + Enter the URL of z/OSMF in a web browser. +
  2. + Log in to z/OSMF if + you are not already logged in. +
  3. + Double-click Resource Monitoring. +
  4. + Select the Grafana server that you want to access from the drop-down + list. +
  5. + Click OK. +
+

Results

You have accessed Grafana from z/OSMF.
+

What to do next

You can perform the following tasks:
    +
  • View the dashboards by navigating to Apps > IBM RMF > Dashboards.
  • +
  • Add a RMF data source to fetch data from Distributed Data Servers (DDS). See Creating RMF data + sources.
  • +
+
+
\ No newline at end of file diff --git a/grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.xml b/grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.xml new file mode 100644 index 00000000..25e509ee --- /dev/null +++ b/grafana/rmf-app/doc/src/pdf/rmf_grafana.merged.xml @@ -0,0 +1,1723 @@ + + + + + + +IBM RMF for z/OS Grafana Plugin <ph class="- topic/ph " props="pdf">User Guide</ph> + IBM RMF for z/OS Grafana Plugin <ph class="- topic/ph " props="pdf">User Guide</ph> + IBM RMF for z/OS Grafana PluginOverviewGrafana is a platform for monitoring and visualizing data. It enables users to create, explore, and share dashboards that are interactive and customizable. The IBM RMF for z/OS Grafana plugin provides effortless analysis and visualization of Resource Measurement Facility for z/OS (RMF for z/OS) Monitor III metrics and reports within the Grafana platform. Thereby, you can monitor and analyze the health and performance of applications.Release notesThis article covers the new features, system requirements, and known issues of the IBM RMF for z/OS Grafana plugin.Installing the pluginYou must install the IBM RMF for z/OS Grafana plugin to analyze and visualize RMF Monitor III metrics and reports.Upgrading the pluginYou must ensure that the IBM RMF for z/OS Grafana plugin is up to date to leverage its enhanced functionalities. You can do so by either installing or upgrading to the latest version of the plugin.Creating RMF data sourcesTo access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by adding an RMF data source.RMF master dashboardIBM RMF for z/OS Grafana is a plugin provides custom panels for the RMF data source and master dashboard that consists of RMF Charts, RMF Reporting, and RMF Time Series dashboards.Applying visualization to RMF dataBy adding panels to dashboards, you can effectively present your RMF data in a visual format. Each panel must require at least one query to display a significant visualization.IBM RMF query languagesIn Grafana, queries are essential for fetching and transforming data from RMF data sources.RMF Variable Query syntaxVariables are a powerful tool to create more interactive and dynamic dashboards. They offer a way to replace hard-coded values in metric queries and panel titles with placeholders for values.AlertsGrafana Alerting feature provides a reliable solution to detect and respond to system issues in real time.Historical dataIn Grafana, you can view historical data using absolute and relative time ranges.Error typesWhenever you encounter issues while using the IBM RMF for z/OS Grafana plugin, you can view detailed error messages that contain sufficient information to help you identify and troubleshoot the problem.Troubleshooting issuesThis section guides how to analyze and address typical issues that may arise when using the IBM RMF for z/OS Grafana plugin.Grafana through z/OSMFWhen you use IBM z/OS Management Facility to monitor the performance of the z/OS sysplexes in your environment, you can also access Grafana dashboards from z/OSMF.PrerequisitesBefore you can start working with Grafana dashboards through z/OSMF, there are some prerequisites that you need to complete.Grafana configuration parametersYou can find the information about parameters you can use during the configuration of JWT authentication on Grafana.Defining the Grafana serverYou must define the Grafana server as a target system in z/OSMF to access Grafana from the Resource Monitoring page of z/OSMF.Accessing the Grafana dashboardYou can access the Grafana dashboard from the Resource Monitoring page of z/OSMF to investigate the RMF Monitor III metrics and reports. +<ph class="- topic/ph topic/title-wrapper ">IBM RMF for z/OS Grafana Plugin</ph> + <ph class="- topic/ph topic/title-wrapper ">Visualization of RMF Monitor III metrics in Grafana</ph> + + Overview + + Grafana is a platform for monitoring and visualizing data. It enables users to + create, explore, and share dashboards that are interactive and customizable. The IBM RMF for z/OS Grafana plugin provides effortless analysis and + visualization of Resource Measurement Facility for z/OS (RMF for z/OS) Monitor III metrics and reports within the + Grafana platform. Thereby, you can monitor and analyze the health and performance of + applications. + +

The IBM RMF for z/OS Grafana plugin provides the following + features:

    +
  • You can choose various visualization options, such as graphs, charts, panels, + and reports, to help you understand your data's trends, patterns, and + variances.
  • + +
  • You can create dynamic and engaging dashboards by piecing together various + panels, each displaying a unique visualization.
  • +
  • You have the freedom to customize each panel based on your requirements, + including its appearance, size, and the data queries it displays.
  • +
  • Grafana supports integration with numerous data sources, which helps you fetch + data from various Distributed Data Servers (DDS) and display it in a unified + dashboard.
  • +
  • You can set up alerts based on specific conditions or thresholds in your RMF + data. Grafana can trigger notifications via email or other communication + channels when these conditions are met.
  • +
  • You can define a dashboard variable to change the RMF data displayed in your + dashboard simply by selecting a value from the drop-down list at the top.
  • +

+
+
+ <ph class="- topic/ph topic/title-wrapper ">Release notes</ph> + This article covers the new features, system requirements, and known issues of the + IBM RMF for z/OS Grafana plugin. + +
+ What's new +
+ +
May 2025 v1.0.9
+
+
    +
  • +

    IBM RMF for z/OS Grafana plugin has been + enhanced to optimize the step size when querying and displaying + time series data, based on the selected time range and panel + size. This enhancement ensures that panels display the required + number of data points.

    +
  • +
  • +

    A bug has been fixed that was causing specific data points to be + dropped from time series views, resulting in a flat line in the + graphs.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+
+
+
+
+
+ +
April 2025 v1.0.8
+
+
    +
  • +

    A new option, Compression, has been added + to the data source creation process. This option enables the RMF + data source to request HTTP compression from the Data + Distributed Server (DDS) during data retrieval, which improves + the efficiency of data transfer. See Creating RMF data sourcesTo access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by adding an RMF data source..

    +
  • +
  • +

    Fixed certain scenarios of missing data within dashboards for + time series visualizations.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+
+ +
November 2024 v1.0.7
+
+

Fixed internally found defects.

+ +
+
+ +
October 2024 v1.0.6
+
+
    +
  • +

    The IBM RMF for z/OS Grafana plugin now + allows customizing banner and caption fields in IBM RMF Report + visualizations.

    +
  • +
  • +

    After you modify any IBM RMF data + source and save the changes, you no longer need to re-enter the + password.

    +
  • +
  • +

    Improved performance.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+
+
+
+
+
+ +
August 2024 v1.0.5
+
+
    +
  • +

    When creating the datasource, you now have the option to specify + the desired cache size in megabytes for the datasource.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +

    The topic of Creating RMF data sourcesTo access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by adding an RMF data source. has been + updated per the new UI changes.

    +
  • +
+
+
+ +
June 2024 v1.0.4
+
+
    +
  • +

    The user interface for creating the datasource has been enhanced + to improve the user experience.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +

    The following dashboards are updated:

      +
    • Common Storage Activity (Timeline)
    • +
    • Common Storage Activity
    • +
    • Coupling Facility Overview (Timeline)
    • +
    • Coupling Facility Overview
    • +
    • Execution Velocity (Timeline)
    • +
    • Execution Velocity
    • +
    • General Activity (Timeline)
    • +
    • General Activity
    • +
    • Overall Image Activity (Timeline)
    • +
    • Overall Image Activity
    • +
    • Performance Index (Timeline)
    • +
    • Response Time (Timeline)
    • +
    • Response Time
    • +
    • XCF Activity (Timeline)
    • +
    • XCF Activity
    • +
    You must re-import the + dashboards to utilize the latest enhancements in the + dashboards.

    +
  • +
  • +

    The documentation updates for v1.0.4 include the following + changes:

      +
    • +

      The topic of Creating RMF data sourcesTo access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by adding an RMF data source. + has been updated as per the new UI changes.

      +
    • +
    • +

      The Upgrading the RMF for z/OS plugin on GrafanaYou must ensure that the IBM RMF for z/OS Grafana plugin is up to date to leverage its enhanced functionalities. You can do so by either installing or upgrading to the latest version of the plugin. topic is + included to provide information about the upgrade + process.

      +
    • +

    +
  • +
+
+
+ +
February 2024 v1.0.3
+
+
    +
  • +

    Fixed specific issues related to the support of Grafana + v10.x.x.

    +
  • +
  • +

    Fixed empty settings issue for IBM RMF data source defined via + Home / Apps / IBM RMF page.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
  • +

    The documentation updates for v1.0.3 include the following + changes:

      +
    • +

      The Grafana + through IBM z/OS Management FacilityWhen you use IBM z/OS Management Facility to monitor the performance of the z/OS sysplexes in your environment, you can also access Grafana dashboards from z/OSMF. topic + explains more detailed setup instructions to access + Grafana from the z/OSMF server.

      +
    • +
    • +

      The RMF for z/OS plugin + installationYou must install the IBM RMF for z/OS Grafana plugin to analyze and visualize RMF Monitor III metrics and reports. section is updated to provide + clear information and guidance on installing the RMF for z/OS plugin on + different platforms based on specific + requirements.

      +
    • +
    • +

      The troubleshootingThis section guides how to analyze and address typical issues that may arise when using the IBM RMF for z/OS Grafana plugin. topic is provided to help + users analyze and resolve common issues that may + occur while using the IBM RMF for z/OS Grafana + plugin.

      +
    • +

    +
  • +
+
+
+ +
December 2023 v1.0.2
+
+
    +
  • +

    Support spaces in Datasource name.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+
+ +
November 2023 v1.0.1
+
+
    +
  • +

    Resolved security issues in dependencies.

    +
  • +
  • +

    Fixed internally found defects.

    +
  • +
+
+
+ +
November 2023 v1.0.0
+
+

The first release of the IBM RMF for z/OS Grafana + plugin is in the following GitHub repository: https://github.com/IBM/RMF.

+
+
+
+
+
+ Requirements +

You must have the following software to use the IBM RMF for z/OS Grafana plugin:

    +
  • Resource Measurement Facility for z/OS + 3.1
  • +
  • Distributed Data Server
  • +
  • IBM RMF for z/OS Grafana plugin 1.0.x
  • +
  • Grafana 9.5.1 or later
  • +

+
+ +
+
+ <ph class="- topic/ph topic/title-wrapper ">Installing the RMF for z/OS plugin on Grafana</ph> + + Installing the plugin + + You must install the IBM RMF for z/OS Grafana plugin to analyze + and visualize RMF Monitor III metrics and reports. + + +

You must have completed the following tasks:

    +
  • Installed RMF for z/OS + 3.1 + DDS and the functionality level must + be 3650 or higher.
  • +
  • Installed Grafana 9.5.1 or later.
  • +
You must be familiar working with Grafana.

+
+ + + Set the value of allow_loading_unsigned_plugins to + ibm-rmf,ibm-rmf-datasource,ibm-rmf-report in the + [plugins] section of your custom configuration + file. + +

The default configurations for a Grafana installation are in the + defaults.ini file. You can copy the + default.ini file and rename it to + custom.ini for customizing your Grafana + configuration. + The default location of the configuration file is as follows: + + Operating systems + Default path to the configuration file + + + Windows + WORKING_DIR/conf/defaults.ini + + + Linux + /etc/grafana/grafana.ini + + + macOS + /usr/local/etc/grafana/grafana.ini + +

+ You can use the + GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS + environment variable to override + allow_loading_unsigned_plugins. +
+
+ + Choose any one of the methods described in the following table to install the + RMF for z/OS plugin based on your requirements: + + + + Methods + Step # + + + Installing the RMF for z/OS + plugin in the Grafana stand-alone application. + Perform steps 3 and 4. + + + Installing the RMF for z/OS + plugin along with Grafana within the Docker environment. + Perform steps 5 and 6. + + + + + + Run the following command to install the plugin by using Grafana CLI: + + grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf + You must replace the value of + <version> for the pluginURL + option to version number of the plugin to be installed. + + + + + + Restart the Grafana server, and then go to step 7. + + + Run the following command to create a volume for storing the Grafana + state: + + docker volume create rmf-grafana-data + + + + Run the following command to create and run a container: + + docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image> + You must replace the values of the + following options in the command:
    +
  • <version> for the env + option to the version number of the plugin to be installed.
  • +
  • <image> to the version of the Grafana image to + be used.
  • +
+ zCX/zLinux images are available at Container Images for IBM Z and LinuxONE. + Similarly, images of other required platforms are available at Docker + Hub. +
+
+ + To enable the RMF for z/OS plugin on the Grafana + UI, you must perform the following sub-steps: + + + Enter the URL of Grafana in your web browser. + + + Enter the username and password of Grafana on the + sign-in page. + + + Go to AdministrationPlugins. + + The navigation of the user interface can differ based on the + Grafana version that is currently installed. + + + + Enter RMF in the Search bar + on the Plugins page. + + + Click IBM RMF in + the search results. + + + Click Enable. + + After you install the IBM RMF for z/OS Grafana plugin, when you open + IBM RMF on the Plugins page of Grafana UI, an + Invalid plugin signature warning message is + displayed. + + + + + + Verify the signature of the IBM RMF Grafana plugin, which is signed with the + GPG key, by performing the following sub-steps: + + + Download the PUBLIC_KEY.asc (GPG public key) + file. + The location of the file is as + follows: + + + Follow the instructions in the Importing a public key section of the GPG + user guide. + + + Download the IBM RMF for z/OS Grafana plugin + (ibm-rmf-grafana-x.y.z.zip) and signature file + (ibm-rmf-grafana-x.y.z.zip.asc) from https://github.com/IBM/RMF/releases. + + + Run the following command to verify the signature: + + gpg --verify ibm-rmf-grafana-x.y.z.zip.asc ibm-rmf-grafana-x.y.z.zip +

Where x.y.z is the version number + of the IBM RMF for z/OS Grafana plugin.

+

For more information, refer to the GPG user guide.

+
+
+
+
+
+ You have installed the IBM RMF for z/OS Grafana plugin. You can find the IBM RMF plugin listed under the + Apps section.

+ You can add an RMF data source to fetch data from Distributed Data Servers (DDS). See Creating RMF data sourcesTo access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by adding an RMF data source.. +
+ + Grafana CLI documentation + docker run command + docker volume create command + +
+ <ph class="- topic/ph topic/title-wrapper ">Upgrading the RMF for z/OS plugin on Grafana</ph> + + Upgrading the plugin + + You must ensure that the IBM RMF for z/OS Grafana plugin is up + to date to leverage its enhanced functionalities. You can do so by either installing or + upgrading to the latest version of the plugin. + + The upgrade procedures differ based on the environment you used to install the + Grafana server. + + Methods + Step # + + + Upgrading the plugin in the Grafana stand-alone application. + Perform steps 1 to 3. + + + Upgrading the plugin in the Grafana within the Docker + environment. + Perfrom steps 4 to 7. + + + + + Stop the Grafana server. + + + Run the following command to upgrade the plugin by using Grafana CLI: + + grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf + You must replace the value of + <version> for the pluginURL + option with the plugin's version number to be upgraded. + For example, if you want to install the v1.0.3 version of the plugin, the value of pluginURL is https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v1.0.3/ibm-rmf-grafana-1.0.3.zip. + + The CLI tool downloads the mentioned version of the plugin and replaces + the existing files. + + + Restart the Grafana server, and then go to step 7. + + + Run the following command to stop the docker container: + + docker stop rmf-grafana +

Where rmf-grafana is the name of the container.

+
+
+ + Run the following command to remove the docker container: + + docker rm rmf-grafana + + + + Run the following command to upgrade the plugin by creating and running a + container: + + docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image> + You must replace the values of the + following options in the command:
    +
  • <version> for the env + option to the version number of the plugin to be upgraded.
  • +
  • <image> to the version of the Grafana image + used.
  • +
+
+
+ + Perform the following sub-steps to re-import the dashboards. + After upgrading the plugin to a new version, it is essential to re-import the + dashboard. This ensures that you are utilizing the most up-to-date features in + the dashboards.You can find the updated + dashboards for each release by referring to the CHANGELOG of the plugin. You do not need to + re-import all the dashboards. + + + Enter the URL of Grafana in your web browser. + + + Enter the username and password of Grafana on the + sign-in page. + + + Go to AdministrationPlugins. + + The navigation of the user interface can differ based on the + Grafana version that is currently installed. + + + + Enter RMF in the Search bar + on the Plugins page. + + + Click IBM RMF in + the search results. + + + Click Dashboards, and then click + Re-import to re-import the dashboards. + + + +
+ You have updated the IBM RMF for z/OS Grafana plugin. +
+
+ <ph class="- topic/ph topic/title-wrapper ">Creating RMF data sources</ph> + To access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by + adding an RMF data source. + + +
    +
  • You must have installed the RMF for z/OS Grafana plugin. See Installing the RMF for z/OS plugin on GrafanaYou must install the IBM RMF for z/OS Grafana plugin to analyze and visualize RMF Monitor III metrics and reports..
  • +
  • You must know the hostname and port number of DDS.
  • +
+
+ + + Go to AppsIBM RMFAdd RMF Data Source. + Alternatively, you can click AdministrationData sources+ Add new data source, then search for the IBM RMF to choose a data source type.The navigation of the user interface can differ based on the + Grafana version that is currently installed. + + + Enter a name for the data source in the Name + field. + + + Set Default + to + ON to make the added data source the default + one. + + When you create new panels, the default data source + is preselected. + + + + Enter the details for the following fields in the HTTP + section: + + + + Fields + Action + + + DDS URL + Enter the URL of the DDS in this field.

The format of the URL is + http://hostname:port_number[/path] + or + https://hostname:port_number[/path]

In the DDS URL, the + /path is + optional, and you must exclude it in the default network + configuration. However, it might be required in more advanced + setups, such as when DDS + functions behind a reverse proxy.
+
+ + Timeout + Specify the duration, in seconds in this field, for which + Grafana is allowed to wait for a connection to the DDS before it closes the + connection.

The default value is + 60.

+
+ + Compression + This option is enabled by default, which means that when RMF + requests data from DDS, HTTP + compression is utilized, provided that the DDS is operating on a + maintenance level OA67541. The compression setting is ignored if DDS is not at this + maintenance level.

You can turn off HTTP compression by setting + the Compression option to + OFF, resulting in DDS data being always + transferred in an uncompressed format.

+
+
+
+
+ + Set the Skip TLS Verify option to + ON if you are accepting any certificate + presented by the DDS and any hostname listed in that certificate. However, this + practice is not considered secure and is typically used in development or + testing environments. + + By default, the Skip TLS + Verify option is set to + OFF. + + + + Set the Basic Auth option to + ON to create the data source with basic + authentication. + + + Enter the credentials of the DDS in the + User and Password + fields. + + The User and + Password fields are visible only when you enable + the basic authentication. + + + + Specify the size of the cache (in MB) for the data source in the + Size field. + + The value must be greater than or + equal to 128. The default value is + 1024. + + + + Click Save & test. + The Data source is working message is displayed if the + connection to DDS succeeds. + +
+ You have added the RMF data source. + +

You can refer to the RMF master dashboardIBM RMF for z/OS Grafana is a plugin provides custom panels for the RMF data source and master dashboard that consists of RMF Charts, RMF Reporting, and RMF Time Series dashboards. topic for information about RMF + master dashboard and its features.

+
+
+
+ <ph class="- topic/ph topic/title-wrapper ">RMF master dashboard</ph> + IBM RMF for z/OS Grafana is a plugin provides custom panels for + the RMF data source and master dashboard that consists of RMF Charts, RMF Reporting, and RMF + Time Series dashboards. + +

Grafana provides a highly flexible and customizable dashboard consisting of one or more + rows and panels. You can use various pre-configured panels to construct queries and + tailor the visualization to meet your requirements. This enables you to create a + personalized dashboard that seamlessly interacts with data from a configured Distributed Data Server (DDS). For more information about creating and managing dashboards, refer to the Grafana documentation.

+

When you install the RMF for z/OS Grafana plugin for the first time, all the dashboards + are imported automatically. You can view the dashboards by navigating to AppsIBM RMFDashboards. The following table lists the dashboards available in RMF Charts, RMF + Reporting, and RMF Time Series dashboards: + <ph class="- topic/ph topic/title-wrapper ">RMF master dashboard</ph> + + + + + + + + + + RMF Charts Dashboard + RMF Reporting + Dashboards + RMF Time Series Dashboards + + + + + Common Storage Activity + CACHDET + DSND + PROC + SYSINFO + Common Storage Activity (Timeline) + + + Coupling Facility Overview + CACHSUM + EADM + PROCU + SYSRG + Coupling Facility Overview (Timeline) + + + Execution Velocity + CFACT + ENCLAVE + SPACED + SYSSUM + Execution Velocity (Timeline) + + + General Activity + CFOVER + ENQ + SPACEG + USAGE + General Activity (Timeline) + + + Overall Image Activity + CFSYS + HSM + STOR + XCFGROUP + Overall Image Activity (Timeline) + + + Performance Index + CHANNEL + IOQ + STORC + XCFOVW + Performance Index (Timeline) + + + Response Time + CPC + JES + STORCR + XCFPATH + Response Time + + + Using & Delays + CRYOVW + LOCKSP + STORF + XCFSYS + Using & Delays (Timeline) + + + XCF Activity + DELAY + LOCKSU + STORM + ZFSFS + XCF Activity (Timeline) + + + Common Storage Activity + DEV + OPD + STORR + ZFSKN + Common Storage Activity (Timeline) + + + + DEVR + PCIE + STORS + ZFSOVW + + + + +

+

The dashboard interface offers several customization options for data presentation. The + following is the image of the master dashboard from the IBM RMF for z/OS Grafana plugin:

+

+ default_dashboard_view +

+

You can click the + import_dashboard + option when there is a new version of the plugin, and then re-import the + dashboard by clicking the + reimport + icon. Similarly, if any of the dashboards is no longer required, you can click + the icon to remove it + from the master dashboard.

+

For more information about available features in the Dashboard and their descriptions, + refer to the Grafana documentation.

+
+
+ <ph class="- topic/ph topic/title-wrapper ">Applying visualization to RMF data</ph> + By adding panels to dashboards, you can effectively present your RMF data in a visual + format. Each panel must require at least one query to display a significant + visualization. + + You must have completed the following tasks:
    +
  • Installed the IBM RMF for z/OS Grafana plugin. See Installing the RMF for z/OS plugin on GrafanaYou must install the IBM RMF for z/OS Grafana plugin to analyze and visualize RMF Monitor III metrics and reports..
  • +
  • Added a RMF data source in Grafana. See Creating RMF data sourcesTo access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by adding an RMF data source..
  • +
  • Understood query languages of the RMF. See IBM RMF query languagesIn Grafana, queries are essential for fetching and transforming data from RMF data sources..
  • +
+ + + Identify the dashboard for which you want to add visualization. + + + Perform one of the steps described in the following table: + + + + Step description + Step # + + + If there are no panels added to the dashboard + Perform step 3. + + + If at least one panel is added to the dashboard + Perform step 5. + + + + + + Click + Add visualization to add visualization to your + data. + + The navigation of the user interface can differ based on the + Grafana version that is currently installed. + + The Edit panel is displayed. + + + Go to step 6. + + + Click AddVisualization from the dashboard header. + +

+
+ The Edit panel is displayed. +
+ + Enter a name for the panel in the Title field. + Optionally you can also provide a description for the panel that you are + creating.

When you add the description for the panel, a notification icon + is + displayed after the Panel title, as shown in the + following image:

+
+ + Select one of the visualization types from the drop-down menu: + +

+

You can choose Report for IBM RMF for z/OS or built-in + Bar chart Grafana visualization types from the + drop-down list.

+
+
+ + Click the Query tab, and then enter a query in the query + language of the RMF data source. + + You can click + Query to add + multiple queries. + + + + Click the Transformation tab, and then select a + transformation from the list. + Upon accessing the transformation options, a dedicated row is presented for + configuration.You can click + Add + Transformation to add multiple transformations to + data. + + + Select the existing data sources from the Data source + drop-down list. + + + Click the Time Picker drop-down list to select relative + time range options and set custom absolute time ranges. + +

+
+
+ + Click the Refresh dashboard + icon to query the RMF + data source. + Grafana provides you with a preview of your query results along with the + corresponding visualization. + + + Click Apply to view your changes applied to the + dashboard. + + + Click Save, and then enter a note describing the changes + you have made. + + + Click Save to store the changes made to the + dashboard. + +
+ You have applied visualization to the RMF data. + +

Grafana provides a range of visualizations that cater to different use cases. For + more information about the built-in panels, options, and typical usage, refer to the + Grafana documentation.

+

You can also configure the panel options based on your requirements. For more + information refer to the Grafana documentation.

+

You can add multiple transformation to your data. When there are multiple + transformations, Grafana applies them sequentially. Each transformation produces a + result set that is passed on to the next transformation in the pipeline. Grafana + provides several ways that you can transform data. For entire list of + transformations, refer to the Grafana documentation.

+
+
+
+ <ph class="- topic/ph topic/title-wrapper ">IBM RMF query languages</ph> + In Grafana, queries are essential for fetching and transforming data from RMF data + sources. + +

Executing a query is a process that involves defining the data source, specifying the + desired data to retrieve, and applying relevant filters or transformations. IBM RMF for z/OS Grafana plugin provides a user-friendly RMF query + editor that maximizes its unique capabilities. Grafana panels retrieve data for + visualization from RMF data sources via queries.

+

You can use the following types of queries to retrieve data from the specified RMF data + source:

+
    +
  • Metric query – Use this query to retrieve RMF Monitor III metrics.
  • +
  • Report query – Use this query to retrieve RMF Monitor III reports.
  • +
+
+ Metric query syntax +

The syntax of the Metric query is as follows:

+

resource_type.metric_description + {qualifications}

+

Where:

    +
  • resource_type is the type + of resource for which information is requested. You must enter the + appropriate value in the + resource_type field.

    The + available resource types are documented in the z/OS RMF Monitor III resource + model topic in the z/OS Resource Measurement Facility Programmer's + Guide.

  • +
  • metric_description is the name of the + metric for the selected resource type.

    After entering the resource type, + you can choose the metric description from the drop-down list.

  • +
  • qualifications is an optional parameter + and can contain any or all the following attributes separated by a comma:
      +
    • ulq: The name of the resource + type at the upper level.
    • +
    • name: The name of the + resource.
    • +
    • filter: The filter helps to + focus on the data of your interest when requesting a list of values. +

      You can use one of the following values for the + filter attribute:

      + +
      PAT=< pattern>
      +
      Specifies one or more patterns that must match the + name part of a list element.
      +
      + +
      LB=<number>
      +
      Specifies a lower bound value. Only list elements + with values higher than the given lower bound are + returned.
      +
      + +
      UB=<number>
      +
      Specifies an upper bound value. Only list elements + with values lower than the established upper bound + are returned.
      +
      + +
      HI=<integer>
      +
      Only the highest <integer> list elements are + returned (mutually exclusive with LO).
      +
      + +
      LO=<integer>
      +
      Only the lowest <integer> list elements are + returned (mutually exclusive with HI).
      +
      + +
      ORD=< NA | ND | VA | VD | NN>
      +
      +
        +
      • NA - Sort the list of names by their names in + ascending order.
      • +
      • ND – Sort the list of names by their names in + descending order.
      • +
      • VA – Sort the list of values by their values + in ascending order.
      • +
      • VD – Sort the list of values by their values + in descending order.
      • +
      • NN - If you do not want to have any order, you + can specify ORD=NN.
      • +
      +
      +
      +

    • +
    • workscope: To qualify a request + for performance data in more detail about address spaces and WLM + entities. You can use one of the following values for the workscope + attribute:
        +
      • G - Global (no workscope required)
      • +
      • W - WLM workload
      • +
      • S - WLM service class
      • +
      • P - WLM service class period
      • +
      • R - WLM report class
      • +
      • J - Job
      • +
    • +
  • +

+

Examples:

+ SYSPLEX.% total physical utilization (AAP) by partition + COUPLING_FACILITY.% processor utilization + CPC.% total physical utilization (shared IIP) + MVS_IMAGE.% delay by WLM report class period {name=RS21} + + MVS_IMAGE.% workflow by WLM report class period {ulq=RS21,name=RS2*,filter=ORD=NA,workscope=,,G} +
+
+ Report query syntax +

The syntax of the Report query is as follows:

+

resource_type.REPORT.report_name

+

Where:

    +
  • resource_type is the type + of resource for which information is requested. You must enter the + appropriate value in the + resource_type field.
  • +
  • report_name is the name of the + report.

    You can find the report names in the Interactive performance analysis with + Monitor III, which is documented in the z/OS Resource Measurement Facility Report Analysis.

    You can view reports on the Grafana dashboard only + for the resource types SYSPLEX and + MVS_IMAGE.
  • +

+

Examples:

+ SYSPLEX.REPORT.CACHSUM + SYSPLEX.REPORT.CPC +
+
+
+ <ph class="- topic/ph topic/title-wrapper ">RMF Variable Query syntax</ph> + Variables are a powerful tool to create more interactive and dynamic dashboards. They + offer a way to replace hard-coded values in metric queries and panel titles with + placeholders for values. + +

Variables make it easy to change the data displayed in your dashboard simply by selecting + a value from the drop-down list at the top. Using variables in your dashboard simplifies + maintenance, particularly if you have multiple identical data sources. Instead of + creating separate dashboards for each data source, you can create one dashboard and use + variables to change what you are viewing.It's important to note that variables don't have a default value. Each variable + drop-down list in Dashboard settings displays the variable list in the order it + appears.

+

You can define a dashboard variable in Dashboard SettingsVariables using Grafana's RMF Variable Query syntax with and without a filter.

+
Syntax of the query without a filter

The + general syntax of the query without a filter is as follows:

SELECT + <COLUMN_NAME> FROM RESOURCE WHERE condition1 or + condition2 or + condition3

The + <COLUMN_NAME> is limited to label and + RESOURCE is limited to resource only and cannot be used + for other purposes.

Where:

    +
  • condition1: + ULQ=Value + and + TYPE=Value
  • +
  • condition2: + Name=Value + and + TYPE=Value
  • +
  • condition3: + Name=Value + and + ULQ=Value + and + TYPE=Value
  • +

Examples for condition1:

    +
  • select label from resource where + ulq="hostname of the + DDS" and + type="CHANNEL_PATH"
  • +
  • select label from resource where + ulq="hostname of the + DDS" and + type="ALL_CHANNELS"
  • +

Examples for condition2:

select + label from resource where + name="resource_name" and + type="SYSPLEX"

Examples + for condition3:

    +
  • select label from resource where + ulq="hostname of the + DDS" and + name="*" and + type="CHANNEL_PATH"
  • +
  • select label from resource where + ulq="hostname of the + DDS" and + name="*" and + type="ALL_CHANNELS"
  • +

+
+ Syntax of the query with a filter +

The general syntax of the RMF query with a filter is as follows:

+

SELECT <COLUMN_NAME> FROM RESOURCE WHERE + condition

+

Where condition is + Name=Value and + ULQ=Value and + TYPE=Value and + Filter= + Value

+

Examples for condition:

+

select label from resource where + name="resource_name" + and type="SYSPLEX" and + filter="MVS_IMAGE"

+
+ +

To learn how to effectively add and manage variables of your choice in Grafana, you + can refer to the Grafana documentation.

+
+
+
+ <ph class="- topic/ph topic/title-wrapper ">Introduction to Alerts</ph> + + Alerts + + Grafana Alerting feature provides a reliable solution to detect and respond to system + issues in real time. + +

Through Grafana monitoring capabilities, you can keep track of incoming metrics data and + configure the alerting system to detect specific events or circumstances. When the + system identifies any issues, it automatically sends notifications to ensure that you + are up to date. With Grafana Alerting, you can eliminate the need for manual monitoring + and control system outages that could lead to significant incidents.

+

For more information about configuration of alerts and contact points, refer to the Grafana documentation.

+ +
+
+ <ph class="- topic/ph topic/title-wrapper ">Historical data collection</ph> + + Historical data + + In Grafana, you can view historical data using absolute and relative time + ranges. + +
+

Viewing historical data is a common practice across organizations for various + purposes. The importance and use of historical data are significant in + decision-making, research, analysis, and planning. Analyzing historical data + provides valuable insights into the status, usage, performance, and health of + various resources.

+

You can also access cached metric data for queries, data sources, and timestamp + combinations that have already viewed by other user on Grafana. This means that if + any user requests metrics data for the same query, datasource, and timestamp, the + cached data can be displayed faster than a service call from DDS. If data for a + particular timestamp is not found in the cache, it will be fetched by a service call + from DDS. This feature can save you time and provide a faster experience accessing + metric data.

+ When you view data over extended time ranges, + the system may require considerable CPU resources on the host. + + + + +
+
+
+ <ph class="- topic/ph topic/title-wrapper ">Error reporting in the plugin</ph> + + Error types + + Whenever you encounter issues while using the IBM RMF for z/OS Grafana plugin, you can view detailed error messages + that contain sufficient information to help you identify and troubleshoot the + problem. + +

By viewing these error messages, you can quickly and efficiently troubleshoot any issues + you may encounter while using the IBM RMF for z/OS Grafana + plugin.

+

The errors that can occur vary in severity and are classified into different types as + described in the following table: + + Type + Error Code + Description + + + Severe + S + A critical error has arisen that will cause the task you are currently + performing to terminate immediately.

It is essential to take necessary + measures to prevent such errors to ensure the smooth functioning of the + IBM RMF for z/OS Grafana plugin.

+ + + Eventual Action + E + An error of a transient nature has arisen but can be resolved with an + action by the user. + + + Warning + W + Receiving a warning message from the IBM RMF for z/OS Grafana plugin is not indicative of an + error within the application. + + + Information + I + An information message informs the users about changes or updates in + the IBM RMF for z/OS Grafana plugin.

You need not + take any action in response, but it's essential to stay up-to-date and + be aware of these updates.

+
+

+

When an error occurs, it is assigned a unique Error ID that can help quickly identify the + root cause of the issue by referring to the log file. The Error ID is a combination of + 10 characters comprising lower and upper case alphabets.

+

In case of any problems with the Distributed Data Server (DDS), you can identify the issues by looking + into DDS-specific errors, which will be + displayed without any modifications. The messages issued by the Distributed Data Server are documented in the Distributed Data Server messages - GPM topic + in the z/OS Resource Measurement Facility Messages and Codes.

+

The following are the examples of error messages that you may encounter while using the + IBM RMF for z/OS Grafana plugin:

+

+ DDS_error +

+

+ Error_plugin +

+ To diagnose the issue from the docker logs of the IBM RMF for z/OS Grafana plugin, you can run the following command: + docker logs <container_name> 2>&1 | grep "<unique error code shown in the error message>" +
+
+ <ph class="- topic/ph topic/title-wrapper ">Troubleshooting issues</ph> + This section guides how to analyze and address typical issues that may arise when + using the IBM RMF for z/OS Grafana plugin. + +
+

This article is regularly updated with the latest information on discovering and + solving issues that may arise. You can search through the article to find the + precise information you need.

+

You can open a case by navigating to IBM support if you cannot find any + solutions for the issue you encountered. Before opening a case, gather all the + required information and provide the details to IBM support for further + investigation.

+

The following table describes the details of issues and the resolutions you can apply + to fix the problems:

+ + + + + + + + Issues + Cause + Resolutions + + + + + RMF Time Series dashboards do not plot the Monitor 3 metrics + data, whereas RMF Reports and RMF Charts dashboards plot + correctly. + The proxy settings configured by your network administrator block + web socket connections from the Grafana server. + The IBM RMF for z/OS Grafana plugin streams time series data to the clients through web socket connections. + Unblocking web sockets and configuring the appropriate proxy + settings is necessary to ensure that web sockets with the name + "ws" in the URI work correctly with + the IBM RMF for z/OS Grafana + plugin.You can contact your network administrator to modify the proxy configuration settings. + + + +
+
+
+
+ <ph class="- topic/ph topic/title-wrapper ">Grafana through <ph class="- topic/ph ">IBM z/OS Management Facility</ph></ph> + + Grafana through z/OSMF + + When you use IBM z/OS Management Facility to monitor the + performance of the z/OS sysplexes in your environment, you can also access Grafana + dashboards from z/OSMF. + +

You must complete certain tasks to access Grafana through z/OSMF. The following table lists the task flows + to access Grafana from z/OSMF: + + + + + + Tasks + More information + + + + + Complete the tasks provided in the Prerequisites topic. + Prerequisites for accessing Grafana dashboards on z/OSMFBefore you can start working with Grafana dashboards through z/OSMF, there are some prerequisites that you need to complete. + + + Install the RMF for z/OS plugin on Grafana. + Installing the RMF for z/OS plugin on GrafanaYou must install the IBM RMF for z/OS Grafana plugin to analyze and visualize RMF Monitor III metrics and reports. + + + Define Grafana servers as target systems. + Defining the Grafana serverYou must define the Grafana server as a target system in z/OSMF to access Grafana from the Resource Monitoring page of z/OSMF. + + + Access Grafana dashboards + Accessing the Grafana dashboardYou can access the Grafana dashboard from the Resource Monitoring page of z/OSMF to investigate the RMF Monitor III metrics and reports. + + + +

+
+ + <ph class="- topic/ph topic/title-wrapper ">Prerequisites for accessing Grafana dashboards on <ph class="- topic/ph ">z/OSMF</ph></ph> + + Prerequisites + + Before you can start working with Grafana dashboards through z/OSMF, there are some prerequisites that you need to + complete. + +

The following sections describe each prerequisite in detail:

+
+ Configure <ph class="- topic/ph ">z/OSMF</ph> +

When installing z/OS, z/OSMF is automatically + installed as a fundamental component of the operating system. However, to use its + features, you must configure the z/OSMF + nucleus on your system and add core and optional services. This enables you to take + advantage of the many benefits that z/OSMF + offers. For more information, refer to the z/OS Management Facility Configuration Guide.

+
+
+ Install Grafana +

You must install Grafana v9.5.1 or later.

+

For more information, refer to the Grafana documentation for detailed + instructions on installing Grafana and its dependencies and starting the Grafana + server on your system.

+
+
+ User administration +

You must review the default user management settings provided by the Grafana server + to determine if you need any additional permissions to be added for the users.

+ +

For more information, refer to the User Management section of the Grafana + documentation.

+
+
+ Configure JSON Web Token (JWT) support on <ph class="- topic/ph ">z/OSMF</ph> +

You must configure the z/OSMF server to build + and use JSON Web Token (JWT) tokens. Because, by default, the JWT function is turned + off on the z/OSMF server. You can turn on the + JWT authentication by modifying the server's configuration files directly. Once + enabled, the JWT function allows you to use JWT tokens to authenticate and authorize + user access to the Grafana through the z/OSMF + server.

+

When configuring z/OSMF JWK files, it is + essential to use the jwksUri parameter. This parameter + specifies a URL for the JSON Web Key service, which is necessary for building the + JWK files.

+

The format of the jwksUri parameter is as follows:

+

https://${hostname}:${port}/jwt/ibm/api/zOSMFBuilder/jwk

+

For example, if your z/OSMF server is running + on https://abc.com:12345, then the value of jwksUri + is:

+

https://abc.com:12345/jwt/ibm/api/zOSMFBuilder/jwk

+

Where,

    +
  • abc is the hostname where the z/OSMF server runs.
  • +
  • 12345 is the port number.
  • +

+

You must save the content of jwksUri as the + jwks.json file and place it in the following directory:

+

/PATH/TO/jwks.json

+

For information about enabling the JWT function, refer to the z/OS Management Facility Configuration Guide.

+
+
+ Configure JWT authentication on Grafana +

You must configure Grafana to accept a JWT token in the HTTP header. You can also + verify the token's validity using a JSON Web Key Set (JWKS) stored in a local + file.

+

As a system administrator, when you install Grafana, you can pass values for some of + the individual parameters in the .ini configuration file to + configure JWT authentication on Grafana. See Grafana configuration parametersYou can find the information about parameters you can use during the configuration of JWT authentication on Grafana..

+

The default location of the configuration file is as follows: + + Operating systems + Default path to the configuration file + + + Windows + WORKING_DIR/conf/defaults.ini + + + Linux + /etc/grafana/grafana.ini + + + macOS + /usr/local/etc/grafana/grafana.ini + +

+
+ + + <ph class="- topic/ph topic/title-wrapper ">Grafana configuration parameters</ph> + You can find the information about parameters you can use during the configuration of + JWT authentication on Grafana. + +

The following table lists the minimum parameters that you must configure to enable JWT + authentication on Grafana:

+ + + + + + + + + Section + Parameters + Description + Values to be configured for z/OSMF + + + + + [auth.jwt] + enabled + Use this parameter to allow JWT to authenticate on the Grafana + server.The default value is set to true. + true + + + enable_login_token + Upon successful authentication proxy header validation, this + parameter provides the user with a login + token.The default value is set to false. + true + + + header_name + Use this parameter to specify the header's name that holds a + token.The default value is set to X-JWT-Assertion. + X-Forwarded-Access-Token + + + username_claim + Use this parameter to identify the user. + The sub claim is mandatory and needs to be present in a JWT, and it should mention the subject of the JWT.The default value is also set to sub. + sub + + + jwk_set_file + Use this parameter to verify the token with a JSON Web Key Set loaded + from a JSON file. + /PATH/TO/jwks.json + + + cache_ttl + Use this parameter to establish the duration for caching data + retrieved from the HTTP endpoint. + This parameter enables the user to store the data for a specified period, allowing for faster access and retrieval of information.The default value is set to 60m (minutes). + 60m + + + expect_claims + Use this parameter to verify the validity of other claims that + contain JSON-encoded information. + When it comes to validation, only the exp, nbf, and iat claims are automatically checked by default.You must validate if you are using other claims such as iss, sub, aud, and jti. + {"iss": "zOSMF"} + + + auto_sign_up + Use this parameter to automatically create user profiles in Grafana + using the TSO ID of z/OSMF for users who do not have + user profiles in the Grafana + server.The default value is set to false. + true + + + url_login + Use this parameter to enable JWT authentication in the URL. + The default value is set to false. + true + + + [server] + protocol + Use this parameter to configure z/OSMF to work over + HTTPS.When you configure z/OSMF to work over HTTPS, it is recommended to configure Grafana to also work over HTTPS. This ensures the secure data transfer between the user's web browser and the Grafana server.The default value is set to http. + https + + + cert_file + Use this parameter to specify the path to the certificate file when + the protocol parameter is set to https or + h2. + /PATH/TO/certificate.crt + + + cert_key + Use this parameter to specify the path to the certificate key file + when the protocol parameter is set to https + or h2. + /PATH/TO/privateKey.key + + + [Security] + cookie_secure + Use this parameter if you hosted the Grafana instance over + HTTPS.The default value is set to false. + true + + + cookie_samesite + Use this parameter to prevent the browser from sharing cookies with + other + websites.The default value is set to lax. + disabled + + + allow_embedding + Use this parameter to enable web browsers to display Grafana within + z/OSMF HTML <frame>, + <iframe>, <embed>, or <object> element. + The default value is set to false. + true + + + +
+

For more information about customizing the Grafana instance by modifying the parameters + in the configuration file, refer to the following sections in the Grafana + documentation.

+
    +
  • Configure JWT authentication
  • +
  • Configure Grafana
  • +
+ +
+ <ph class="- topic/ph topic/title-wrapper ">Defining the Grafana server</ph> + You must define the Grafana server as a target system in z/OSMF to access Grafana from the Resource + Monitoring page of z/OSMF. + + You must have completed the following tasks:
    +
  • Completed the tasks provided in the Prerequisites section. See Prerequisites for accessing Grafana dashboards on z/OSMFBefore you can start working with Grafana dashboards through z/OSMF, there are some prerequisites that you need to complete..
  • +
  • Installed the IBM RMF for z/OS Grafana plugin. See Installing the RMF for z/OS plugin on GrafanaYou must install the IBM RMF for z/OS Grafana plugin to analyze and visualize RMF Monitor III metrics and reports..
  • +
+ + + Enter the URL of z/OSMF in a web browser. + + + Log in to z/OSMF if + you are not already logged in. + + + Double-click System Status. + + + Click Add Entry from the Actions + drop-down list. + + + Perform the following steps to add details about the Grafana server: + + + Enter a name for the Grafana server in the Resource + name field. + The Resource name is the required field, and + you must provide a unique name. The Resource name + can contain up to 24 characters including + alphanumeric characters (A-Z, + a-z, and + 0-9) and special characters + (@ # $). You must note that the Resource name is not + case sensitive. Therefore, the entries with similar names but + different capitalization, such as SYS1 + and Sys1 are considered as identical by + the system. + + + Enter the host name or IP address of the Grafana server that you want + to access in the Host name or IP address + field. + The host name or IP address can contain up to + 4000 characters. + + + Select Grafana from the Target system + type drop-down list. + + + Select the Use HTTPS checkbox to enable secure + communication. + + + Enter the port number where the Grafana server is hosted in the + Port field. + +

The Port is the required field, and the + default port number is set to 3000.

+ Alternatively, you can use + up-down controls to specify the port + number. +
+
+
+
+ + Click OK. + +
+ You have defined the Grafana server as the target + system. + You can perform the following tasks:
    +
  • Modify or Remove the Grafana server by clicking the + Action drop-down menu from the System + Status page.
  • +
  • Access Grafana dashboards. See Accessing the Grafana dashboardYou can access the Grafana dashboard from the Resource Monitoring page of z/OSMF to investigate the RMF Monitor III metrics and reports..
  • +
+
+
+ <ph class="- topic/ph topic/title-wrapper ">Accessing the Grafana dashboard</ph> + You can access the Grafana dashboard from the Resource + Monitoring page of z/OSMF to + investigate the RMF Monitor III metrics and reports. + + You must have defined the Grafana server in z/OSMF. See Defining the Grafana serverYou must define the Grafana server as a target system in z/OSMF to access Grafana from the Resource Monitoring page of z/OSMF.. + + + Enter the URL of z/OSMF in a web browser. + + + Log in to z/OSMF if + you are not already logged in. + + + Double-click Resource Monitoring. + + + Select the Grafana server that you want to access from the drop-down + list. + + + Click OK. + + + You have accessed Grafana from z/OSMF. + You can perform the following tasks:
    +
  • View the dashboards by navigating to AppsIBM RMFDashboards.
  • +
  • Add a RMF data source to fetch data from Distributed Data Servers (DDS). See Creating RMF data + sourcesTo access RMF Monitor III metrics in Grafana, you need to connect to the Distributed Data Server (DDS) by adding an RMF data source..
  • +
+
+
\ No newline at end of file diff --git a/grafana/rmf-app/doc/src/pdf/rmf_grafana.pdf b/grafana/rmf-app/doc/src/pdf/rmf_grafana.pdf index 4e4cd1f09519ad6792833a01650e491bdab0c365..171c79a43bdb04744e8f43bbc6d0b7204a0f4418 100644 GIT binary patch delta 274888 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

1Kv0~U>5}|GMW$6ZW4I?4LX|@dgTo&4vsW2 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Æk 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÷3RZq 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 z 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 R*$#`r*ejZuxp=!O{tu#TK7;@O delta 274232 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%0DpbP7riPszTq8XT#n_cp7 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 QxY?e#S;gGk)tjvHAL={W=Kufz diff --git a/grafana/rmf-app/doc/src/pdf/rmf_grafana.style.xml b/grafana/rmf-app/doc/src/pdf/rmf_grafana.style.xml new file mode 100644 index 00000000..00661d35 --- /dev/null +++ b/grafana/rmf-app/doc/src/pdf/rmf_grafana.style.xml @@ -0,0 +1,2386 @@ + | | Page Page | | | | + + + + + + + + + + + + + + + IBM RMF for z/OS Grafana Plugin User Guide + + +

+
ContentsContents
+
IBM RMF for z/OS Grafana Plugin User + Guide
+
+
.
+
+
.
Grafana is a platform for monitoring and visualizing + data. It enables users to create, explore, and share + dashboards that are interactive and customizable. The +
IBM
RMF for z/OS Grafana + plugin provides effortless analysis and visualization of +
Resource Measurement Facility for z/OS
(
RMF for + z/OS
) Monitor III metrics and reports within + the Grafana platform. Thereby, you can monitor and + analyze the health and performance of + applications.
+
+
+
.
This article covers the new features, system + requirements, and known issues of the
IBM
+ RMF for z/OS Grafana plugin.
+
+
+
.
You + must install the
IBM
RMF for z/OS Grafana + plugin to analyze and visualize RMF Monitor III metrics + and reports.
+
+
+
.
You + must ensure that the
IBM RMF for z/OS Grafana
+ plugin is up to date to leverage its enhanced + functionalities. You can do so by either installing or + upgrading to the latest version of the + plugin.
+
+
+
.
To + access RMF Monitor III metrics in Grafana, you need to + connect to the
Distributed Data Server
+ (
DDS
) by adding an RMF data + source.
+
+
+
.
IBM
RMF for z/OS Grafana is + a plugin provides custom panels for the RMF data source + and master dashboard that consists of RMF Charts, RMF + Reporting, and RMF Time Series dashboards.
+
+
+
.
By + adding panels to dashboards, you can effectively present + your RMF data in a visual format. Each panel must + require at least one query to display a significant + visualization.
+
+
+
.
In + Grafana, queries are essential for fetching and + transforming data from RMF data sources.
+
+
+
.
Variables are a powerful tool to create more + interactive and dynamic dashboards. They offer a way to + replace hard-coded values in metric queries and panel + titles with placeholders for values.
+
+
+
.
Grafana Alerting feature provides a reliable solution + to detect and respond to system issues in real + time.
+
+
+
.
In + Grafana, you can view historical data using absolute and + relative time ranges.
+
+
+
.
Whenever you encounter issues while using the
IBM RMF for + z/OS Grafana
plugin, you can view detailed + error messages that contain sufficient information to + help you identify and troubleshoot the + problem.
+
+
+
.
This section guides how to analyze and address typical + issues that may arise when using the
IBM
+ RMF for z/OS Grafana plugin.
+
+
+
.
When you use
IBM
z/OS Management + Facility to monitor the performance of the z/OS + sysplexes in your environment, you can also access + Grafana dashboards from
z/OSMF
.
+
+
.
Before you can start working with Grafana + dashboards through
z/OSMF
, there are some + prerequisites that you need to complete.
+
+
+
+ +
You can find the information + about parameters you can use during the + configuration of JWT authentication on + Grafana.
+
+
+
+
+
.
You must define the Grafana server as a target + system in
z/OSMF
to access Grafana + from the
Resource + Monitoring
page of
z/OSMF
.
+
+
+
.
You can access the Grafana dashboard from the
Resource + Monitoring
page of
z/OSMF
to investigate the RMF Monitor III + metrics and reports.
+
+
+
+
+
+

- | - . IBM RMF for z/OS Grafana Plugin

+
+

| - . OverviewVisualization of RMF Monitor III + metrics in Grafana

+
+ +
+
+

Grafana is a + platform for monitoring and visualizing data. It enables + users to create, explore, and share dashboards that are + interactive and customizable. The IBM® RMF for z/OS + Grafana plugin provides effortless analysis and + visualization of Resource Measurement Facility for + z/OS (RMF for z/OS) Monitor III + metrics and reports within the Grafana platform. Thereby, + you can monitor and analyze the health and performance of + applications.

+
The IBM RMF for z/OS Grafana + plugin provides the following features:
    +
  • You + can choose various visualization options, such as + graphs, charts, panels, and reports, to help you + understand your data's trends, patterns, and + variances.
  • +
  • You + can create dynamic and engaging dashboards by + piecing together various panels, each displaying a + unique visualization.
  • +
  • You + have the freedom to customize each panel based on + your requirements, including its appearance, size, + and the data queries it displays.
  • +
  • Grafana supports integration with numerous data + sources, which helps you fetch data from various + Distributed Data Servers (DDS) and display it in a unified + dashboard.
  • +
  • You + can set up alerts based on specific conditions or + thresholds in your RMF data. Grafana can trigger + notifications via email or other communication + channels when these conditions are met.
  • +
  • You + can define a dashboard variable to change the RMF + data displayed in your dashboard simply by selecting + a value from the drop-down list at the top.
  • +
+
+
+
+

| - . Release notes

+
+

This article + covers the new features, system requirements, and known + issues of the IBM® RMF for z/OS Grafana plugin.

+
+

What's + new

+
+
May 2025 v1.0.9
+
+
    +
  • +

    IBM RMF + for z/OS Grafana plugin has been enhanced + to optimize the step size when querying and + displaying time series data, based on the selected + time range and panel size. This enhancement + ensures that panels display the required number of + data points.

    +
  • +
  • +

    A bug + has been fixed that was causing specific data + points to be dropped from time series views, + resulting in a flat line in the graphs.

    +
  • +
  • +

    Fixed + internally found defects.

    +
  • +
+
+
+
+
+
+
April 2025 v1.0.8
+
+
    +
  • +

    A new + option, Compression, has been added to the data + source creation process. This option enables the + RMF data source to request HTTP compression from + the Data Distributed Server (DDS) during data + retrieval, which improves the efficiency of data + transfer. See Creating RMF data + sources (on page ).

    +
  • +
  • +

    Fixed + certain scenarios of missing data within + dashboards for time series visualizations.

    +
  • +
  • +

    Fixed + internally found defects.

    +
  • +
+
+
November 2024 v1.0.7
+
+

Fixed internally found + defects.

+
+
October 2024 v1.0.6
+
+
    +
  • +

    The + IBM RMF for z/OS Grafana plugin now allows + customizing banner and caption fields in IBM RMF + Report visualizations.

    +
  • +
  • +

    After + you modify any IBM + RMF data source and save the changes, you + no longer need to re-enter the password.

    +
  • +
  • +

    Improved + performance.

    +
  • +
  • +

    Fixed + internally found defects.

    +
  • +
+
+
+
+
+
+
August 2024 v1.0.5
+
+
    +
  • +

    When + creating the datasource, you now have the option + to specify the desired cache size in megabytes for + the datasource.

    +
  • +
  • +

    Fixed + internally found defects.

    +
  • +
  • +

    The + topic of Creating RMF data + sources (on page ) + has been updated per the new UI changes.

    +
  • +
+
+
June 2024 v1.0.4
+
+ +
+
February 2024 v1.0.3
+
+ +
+
December 2023 v1.0.2
+
+
    +
  • +

    Support + spaces in Datasource name.

    +
  • +
  • +

    Fixed + internally found defects.

    +
  • +
+
+
November 2023 v1.0.1
+
+
    +
  • +

    Resolved + security issues in dependencies.

    +
  • +
  • +

    Fixed + internally found defects.

    +
  • +
+
+
November 2023 v1.0.0
+
+

The + first release of the IBM RMF for z/OS + Grafana plugin is in the following GitHub + repository: https://github.com/IBM/RMF.

+
+
+
+
+

Requirements

+
You must have the following + software to use the IBM RMF for z/OS Grafana + plugin:
    +
  • Resource Measurement Facility for z/OS + 3.1
  • +
  • Distributed Data Server
  • +
  • IBM RMF for z/OS Grafana plugin 1.0.x
  • +
  • Grafana 9.5.1 or later
  • +
+
+
+
+
+

| - . Installing the pluginInstalling the RMF for z/OS plugin on + Grafana

+
+ +
+
+

You must install + the IBM® RMF for z/OS Grafana plugin to + analyze and visualize RMF Monitor III metrics and + reports.

+
+
+

Before you begin

+
+
You must have completed the + following tasks:
    +
  • Installed RMF for z/OS + 3.1 + DDS and the functionality level must be + 3650 or higher.
  • +
  • Installed Grafana 9.5.1 or later.
  • +
You must be familiar working with Grafana.
+
+
+
+

Procedure

+
+
    +
  1. + Set the value of allow_loading_unsigned_plugins to ibm-rmf,ibm-rmf-datasource,ibm-rmf-report + in the [plugins] section of your custom + configuration file. +
    +
    The default configurations + for a Grafana installation are in the defaults.ini file. You can copy the default.ini file and rename it to custom.ini for customizing your Grafana + configuration. +

    The default location of the configuration file is as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Operating systemsDefault path to the + configuration file
    Windows®WORKING_DIR/conf/defaults.ini
    Linux®/etc/grafana/grafana.ini
    macOS®/usr/local/etc/grafana/grafana.ini
    +
    +
    Note: You can + use the GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS + environment variable to override allow_loading_unsigned_plugins.
    +
    +
  2. +
  3. + Choose any one of the methods + described in the following table to install the + RMF for z/OS plugin based on your + requirements: +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    MethodsStep #
    Installing the RMF for z/OS plugin in + the Grafana stand-alone application.Perform steps 3 (on page ) + and 4 (on page ).
    Installing the RMF for z/OS plugin + along with Grafana within the Docker + environment.Perform steps 5 (on page ) + and 6 (on page ).
    +
    +
    +
  4. +
  5. + Run the following command to + install the plugin by using Grafana CLI: +
    +
    grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf
    +
    Remember: You + must replace the value of <version> for the pluginURL option to version number of the + plugin to be installed.
    +
    +
  6. +
  7. + Restart the Grafana server, + and then go to step 7 (on page ). +
  8. +
  9. + Run the following command to + create a volume for storing the Grafana + state: +
    +
    docker volume create rmf-grafana-data
    +
    +
  10. +
  11. + Run the following command to + create and run a container: +
    +
    docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image>
    +
    Remember: You + must replace the values of the following options + in the command:
      +
    • <version> for the env option to the version number of the + plugin to be installed.
    • +
    • <image> to the version of the Grafana + image to be used.
    • +
    +
    Note: + zCX/zLinux images are available at Container Images for IBM Z and + LinuxONE. + Similarly, images of other required platforms are + available at Docker + Hub.
    +
    +
  12. +
  13. + To enable the RMF for + z/OS plugin on the Grafana UI, you must + perform the following sub-steps: +
      +
    1. + Enter the URL of Grafana in + your web browser. +
    2. +
    3. + Enter the username and + password of Grafana on the sign-in page. +
    4. +
    5. + Go to Administration > + Plugins. +
      +
      Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed.
      +
      +
    6. +
    7. + Enter RMF in the Search bar on the Plugins page. +
    8. +
    9. + Click IBM + RMF in the search results. +
    10. +
    11. + Click Enable. +
      +
      Note: After + you install the IBM RMF for z/OS + Grafana plugin, when you open IBM RMF on + the Plugins page of Grafana UI, an Invalid plugin + signature warning message is + displayed.
      +
      +
    12. +
    +
  14. +
  15. Optional: + Verify the signature of the + IBM RMF Grafana plugin, which is signed with the + GPG key, by performing the following + sub-steps: +
      +
    1. + Download the PUBLIC_KEY.asc (GPG public key) + file. + +
    2. +
    3. + Follow the instructions in + the Importing a public + key + section of the GPG user guide. +
    4. +
    5. + Download the IBM RMF + for z/OS Grafana plugin (ibm-rmf-grafana-x.y.z.zip) and signature + file (ibm-rmf-grafana-x.y.z.zip.asc) from https://github.com/IBM/RMF/releases. +
    6. +
    7. + Run the following command to + verify the signature: +
      +
      gpg --verify ibm-rmf-grafana-x.y.z.zip.asc ibm-rmf-grafana-x.y.z.zip
      +

      Where + x.y.z is the version number of the + IBM RMF for z/OS Grafana plugin.

      +

      For more + information, refer to the GPG + user guide.

      +
      +
    8. +
    +
  16. +
+
+
+

Results

+
You have installed the IBM RMF for + z/OS Grafana plugin. You can find the IBM + RMF plugin listed under the Apps + section.

+
+

What to do next

+
You can add an RMF data source to fetch data from + Distributed Data Servers + (DDS). See Creating RMF data + sources (on page ).
+
+ +
+
+

| - . Upgrading the pluginUpgrading the RMF for z/OS plugin on + Grafana

+
+ +
+
+

You must ensure + that the IBM RMF for z/OS Grafana plugin is up to date to + leverage its enhanced functionalities. You can do so by + either installing or upgrading to the latest version of the + plugin.

+
+

About this task

+
The upgrade procedures differ based on the environment + you used to install the Grafana server.
+ + + + + + + + + + + + + + + + + + + + + +
MethodsStep #
Upgrading the plugin in the Grafana stand-alone + application.Perform steps 1 (on page ) + to 3 (on page ).
Upgrading the plugin in the Grafana within the + Docker environment.Perfrom steps 4 (on page ) + to 7 (on page ).
+
+
+
+

Procedure

+
+
    +
  1. + Stop the Grafana + server. +
  2. +
  3. + Run the following command to + upgrade the plugin by using Grafana CLI: +
    +
    grafana cli --pluginUrl https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip plugins install ibm-rmf
    +
    Note: You must + replace the value of <version> for the pluginURL option with the plugin's version + number to be upgraded. +

    For example, if you want to install the v1.0.3 version of the plugin, the value of pluginURL is https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v1.0.3/ibm-rmf-grafana-1.0.3.zip.

    +
    +
    The CLI tool downloads the + mentioned version of the plugin and replaces the + existing files.
    +
  4. +
  5. + Restart the Grafana server, + and then go to step 7 (on page ). +
  6. +
  7. + Run the following command to + stop the docker container: +
    +
    docker stop rmf-grafana
    +

    Where + rmf-grafana is the name of the + container.

    +
    +
  8. +
  9. + Run the following command to + remove the docker container: +
    +
    docker rm rmf-grafana
    +
    +
  10. +
  11. + Run the following command to + upgrade the plugin by creating and running a + container: +
    +
    docker run --name rmf-grafana --hostname rmf-grafana --detach --restart unless-stopped --volume rmf-grafana-data:/var/lib/grafana --publish 3000:3000 --env "GF_INSTALL_PLUGINS=https://github.com/IBM/RMF/releases/download/ibm-rmf-grafana/v<version>/ibm-rmf-grafana-<version>.zip;ibm-rmf" --env "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=ibm-rmf,ibm-rmf-datasource,ibm-rmf-report" <image>
    +
    Remember: You + must replace the values of the following options + in the command:
      +
    • <version> for the env option to the version number of the + plugin to be upgraded.
    • +
    • <image> to the version of the Grafana + image used.
    • +
    +
    +
  12. +
  13. + Perform the following + sub-steps to re-import the dashboards. +
    After upgrading the plugin to + a new version, it is essential to re-import the + dashboard. This ensures that you are utilizing the + most up-to-date features in the dashboards.
    Tip: You can + find the updated dashboards for each release by + referring to the CHANGELOG + of the plugin. You do not need to re-import all + the dashboards.
    +
      +
    1. + Enter the URL of Grafana in + your web browser. +
    2. +
    3. + Enter the username and + password of Grafana on the sign-in page. +
    4. +
    5. + Go to Administration > + Plugins. +
      +
      Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed.
      +
      +
    6. +
    7. + Enter RMF in the Search bar on the Plugins page. +
    8. +
    9. + Click IBM + RMF in the search results. +
    10. +
    11. + Click Dashboards, and then click Re-import to re-import the + dashboards. +
    12. +
    +
  14. +
+
+
+

Results

+
You have updated the IBM RMF for + z/OS Grafana plugin.
+
+
+
+

| - . Creating RMF data sources

+
+

To access RMF + Monitor III metrics in Grafana, you need to connect to the + Distributed Data Server (DDS) + by adding an RMF data source.

+
+
+

Before you begin

+
+ +
+
+
+

Procedure

+
+
    +
  1. + Go to Apps > + IBM + RMF > + Add + RMF Data Source. +
    Alternatively, you can click + Administration > + Data + sources > + + Add + new data source, then search for the + IBM RMF to choose a data source type.
    Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed.
    +
  2. +
  3. + Enter a name for the data + source in the Name field. +
  4. +
  5. Optional: + Set Default + + to ON to make the + added data source the default one. +
    +
    Note: When you + create new panels, the default data source is + preselected.
    +
    +
  6. +
  7. + Enter the details for the + following fields in the HTTP section: +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldsAction
    DDS + URLEnter the URL of the DDS in this field.

    The + format of the URL is http://hostname:port_number[/path] or https://hostname:port_number[/path]

    Important: In + the DDS URL, the /path is optional, and you must + exclude it in the default network configuration. + However, it might be required in more advanced + setups, such as when DDS functions behind a + reverse proxy.
    TimeoutSpecify the duration, in seconds in this field, + for which Grafana is allowed to wait for a + connection to the DDS before it closes + the connection.

    The default value is 60.

    CompressionThis option is enabled by default, which means + that when RMF requests data from DDS, HTTP compression is utilized, + provided that the DDS is operating on a + maintenance level OA67541. The compression setting + is ignored if DDS is not at this + maintenance level.

    You can turn off HTTP + compression by setting the Compression option to OFF, resulting in + DDS data being always transferred in an + uncompressed format.

    +
    +
    +
  8. +
  9. Optional: + Set the Skip + TLS Verify option to ON if you are + accepting any certificate presented by the DDS and + any hostname listed in that certificate. However, + this practice is not considered secure and is + typically used in development or testing + environments. +
    +
    Note: By + default, the Skip + TLS Verify option is set to OFF.
    +
    +
  10. +
  11. + Set the Basic + Auth option to ON to create the + data source with basic authentication. +
  12. +
  13. + Enter the credentials of the + DDS in the User and Password fields. +
    +
    Note: The + User and Password fields are visible only when you + enable the basic authentication.
    +
    +
  14. +
  15. + Specify the size of the cache + (in MB) for the data source in the Size field. +
    +
    Remember: The + value must be greater than or equal to 128. The default + value is 1024.
    +
    +
  16. +
  17. + Click Save + & test. +
    The Data source is + working message is displayed if the + connection to DDS succeeds.
    +
  18. +
+
+
+

Results

+
You have added the RMF data source.
+
+
+

What to do next

+
+

You can refer + to the RMF master + dashboard (on page ) + topic for information about RMF master dashboard and its + features.

+
+
+
+
+

| - . RMF master dashboard

+
+

IBM® RMF for z/OS + Grafana is a plugin provides custom panels for the RMF data + source and master dashboard that consists of RMF Charts, RMF + Reporting, and RMF Time Series dashboards.

+

Grafana provides a + highly flexible and customizable dashboard consisting of one + or more rows and panels. You can use various pre-configured + panels to construct queries and tailor the visualization to + meet your requirements. This enables you to create a + personalized dashboard that seamlessly interacts with data + from a configured Distributed Data Server + (DDS). For more information about creating and + managing dashboards, refer to the Grafana + documentation.

+
When you install the RMF for z/OS + Grafana plugin for the first time, all the dashboards are + imported automatically. You can view the dashboards by + navigating to Apps > + IBM + RMF > + Dashboards. The following table lists + the dashboards available in RMF Charts, RMF Reporting, and + RMF Time Series dashboards:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1. RMF master + dashboard (continued)
RMF Charts DashboardRMF + Reporting DashboardsRMF Time Series Dashboards
Common Storage + ActivityCACHDETDSNDPROCSYSINFOCommon Storage Activity + (Timeline)
Coupling Facility + OverviewCACHSUMEADMPROCUSYSRGCoupling Facility + Overview (Timeline)
Execution VelocityCFACTENCLAVESPACEDSYSSUMExecution Velocity + (Timeline)
General ActivityCFOVERENQSPACEGUSAGEGeneral Activity + (Timeline)
Overall Image + ActivityCFSYSHSMSTORXCFGROUPOverall Image Activity + (Timeline)
Performance IndexCHANNELIOQSTORCXCFOVWPerformance Index + (Timeline)
Response TimeCPCJESSTORCRXCFPATHResponse Time
Using & DelaysCRYOVWLOCKSPSTORFXCFSYSUsing & Delays + (Timeline)
XCF ActivityDELAYLOCKSUSTORMZFSFSXCF Activity + (Timeline)
Common Storage + ActivityDEVOPDSTORRZFSKNCommon Storage Activity + (Timeline)
+ DEVRPCIESTORSZFSOVW +
+
+

The dashboard + interface offers several customization options for data + presentation. The following is the image of the master + dashboard from the IBM RMF for z/OS Grafana + plugin:

+

default_dashboard_view

+

You can click the + import_dashboard + option when there is a new version of the plugin, and then + re-import the dashboard by clicking the reimport + icon. Similarly, if any of the dashboards is no longer + required, you can click the + icon to remove it from the master dashboard.

+

For more + information about available features in the Dashboard and + their descriptions, refer to the Grafana + documentation.

+
+
+
+

| - . Applying visualization to RMF + data

+
+

By adding panels + to dashboards, you can effectively present your RMF data in + a visual format. Each panel must require at least one query + to display a significant visualization.

+
+

Before you begin

+
You must have completed the + following tasks:
+
+
+

Procedure

+
+
    +
  1. + Identify the dashboard for + which you want to add visualization. +
  2. +
  3. + Perform one of the steps + described in the following table: +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    Step descriptionStep #
    If there are no panels added to the + dashboardPerform step 3 (on page ).
    If at least one panel is added to the + dashboardPerform step 5 (on page ).
    +
    +
    +
  4. +
  5. + Click + Add + visualization to add visualization to your + data. +
    +
    Note: The + navigation of the user interface can differ based + on the Grafana version that is currently + installed.
    +
    +
    The Edit + panel is displayed.
    +
  6. +
  7. + Go to step 6 (on page ). +
  8. +
  9. + Click Add > + Visualization from the dashboard + header. +
    +

    +
    +
    The Edit + panel is displayed.
    +
  10. +
  11. + Enter a name for the panel in + the Title field. +
    Optionally you can also + provide a description for the panel that you are + creating.

    When you add the description + for the panel, a notification icon + is displayed after the Panel title, as shown in the following + image:

    +
  12. +
  13. + Select one of the + visualization types from the drop-down + menu: +
    +

    +

    You can + choose Report + for IBM RMF for z/OS or built-in Bar + chart Grafana visualization types from the + drop-down list.

    +
    +
  14. +
  15. + Click the Query tab, and then enter a query in the + query language of the RMF data source. +
    +
    Note: You can + click + + Query to add multiple queries.
    +
    +
  16. +
  17. + Click the Transformation tab, and then select a + transformation from the list. +
    Upon accessing the + transformation options, a dedicated row is + presented for configuration.
    Note: You can + click + Add + Transformation to add multiple + transformations to data.
    +
  18. +
  19. + Select the existing data + sources from the Data + source drop-down list. +
  20. +
  21. + Click the Time + Picker drop-down list to select relative + time range options and set custom absolute time + ranges. +
    +

    +
    +
  22. +
  23. + Click the Refresh dashboard + + icon to query the RMF data source. +
    Grafana provides you with a + preview of your query results along with the + corresponding visualization.
    +
  24. +
  25. Optional: + Click Apply to view your changes applied to the + dashboard. +
  26. +
  27. + Click Save, and then enter a note describing the + changes you have made. +
  28. +
  29. + Click Save to store the changes made to the + dashboard. +
  30. +
+
+
+

Results

+
You have applied visualization to the RMF + data.
+
+
+

What to do next

+
+

Grafana + provides a range of visualizations that cater to + different use cases. For more information about the + built-in panels, options, and typical usage, refer to + the Grafana + documentation.

+

You can also + configure the panel options based on your requirements. + For more information refer to the Grafana + documentation.

+

You can add + multiple transformation to your data. When there are + multiple transformations, Grafana applies them + sequentially. Each transformation produces a result set + that is passed on to the next transformation in the + pipeline. Grafana provides several ways that you can + transform data. For entire list of transformations, + refer to the Grafana + documentation.

+
+
+
+
+

| - . IBM RMF query languages

+
+

In Grafana, + queries are essential for fetching and transforming data + from RMF data sources.

+

Executing a query + is a process that involves defining the data source, + specifying the desired data to retrieve, and applying + relevant filters or transformations. IBM RMF for + z/OS Grafana plugin provides a user-friendly RMF + query editor that maximizes its unique capabilities. Grafana + panels retrieve data for visualization from RMF data sources + via queries.

+

You can use the + following types of queries to retrieve data from the + specified RMF data source:

+
    +
  • Metric + query – Use this query to retrieve RMF Monitor III + metrics.
  • +
  • Report + query – Use this query to retrieve RMF Monitor III + reports.
  • +
+
+

Metric + query syntax

+

The syntax of + the Metric query is as follows:

+

resource_type.metric_description {qualifications}

+
Where:
    +
  • resource_type is the type of + resource for which information is requested. You + must enter the appropriate value in the resource_type field.

    The + available resource types are documented in the z/OS RMF Monitor III resource + model + topic in the z/OS + Resource Measurement Facility Programmer's + Guide.

  • +
  • metric_description is the name of + the metric for the selected resource type.

    After + entering the resource type, you can choose the + metric description from the drop-down + list.

  • +
  • qualifications is an optional + parameter and can contain any or all the following + attributes separated by a comma:
      +
    • ulq: The name of the resource type + at the upper level.
    • +
    • name: The name of the resource.
    • +
    • filter: The filter helps to focus on + the data of your interest when requesting a list + of values.
      You can + use one of the following values for the filter attribute:
      +
      PAT=< pattern>
      +
      Specifies one or more patterns that must match + the name part of a list element.
      +
      LB=<number>
      +
      Specifies a lower bound value. Only list elements + with values higher than the given lower bound are + returned.
      +
      UB=<number>
      +
      Specifies an upper bound value. Only list + elements with values lower than the established + upper bound are returned.
      +
      HI=<integer>
      +
      Only + the highest <integer> list elements are + returned (mutually exclusive with LO).
      +
      LO=<integer>
      +
      Only + the lowest <integer> list elements are + returned (mutually exclusive with HI).
      +
      ORD=< NA | ND | VA | VD | NN>
      +
      +
        +
      • NA - Sort the list of names by their names in + ascending order.
      • +
      • ND – Sort the list of names by their names in + descending order.
      • +
      • VA – Sort the list of values by their values in + ascending order.
      • +
      • VD – Sort the list of values by their values in + descending order.
      • +
      • NN - If you do not want to have any order, you + can specify ORD=NN.
      • +
      +
      +
    • +
    • workscope: To qualify a request for + performance data in more detail about address + spaces and WLM entities. You can use one of the + following values for the workscope attribute:
        +
      • G - Global (no workscope required)
      • +
      • W - WLM workload
      • +
      • S - WLM service class
      • +
      • P - WLM service class period
      • +
      • R - WLM report class
      • +
      • J - Job
      • +
    • +
  • +
+

Examples:

+
SYSPLEX.% total physical utilization (AAP) by partition
+
COUPLING_FACILITY.% processor utilization
+
CPC.% total physical utilization (shared IIP)
+
MVS_IMAGE.% delay by WLM report class period {name=RS21}
+
MVS_IMAGE.% workflow by WLM report class period {ulq=RS21,name=RS2*,filter=ORD=NA,workscope=,,G}
+
+
+

Report + query syntax

+

The syntax of + the Report query is as follows:

+

resource_type.REPORT.report_name

+
Where:
    +
  • resource_type is the type of + resource for which information is requested. You + must enter the appropriate value in the resource_type field.
  • +
  • report_name is the name of the + report.

    You can + find the report names in the Interactive performance analysis with Monitor + III, + which is documented in the z/OS Resource Measurement + Facility Report Analysis.

    Note: You can + view reports on the Grafana dashboard only for the + resource types SYSPLEX and MVS_IMAGE.
  • +
+

Examples:

+
SYSPLEX.REPORT.CACHSUM
+
SYSPLEX.REPORT.CPC
+
+
+
+
+

| - . RMF Variable Query syntax

+
+

Variables are a + powerful tool to create more interactive and dynamic + dashboards. They offer a way to replace hard-coded values in + metric queries and panel titles with placeholders for + values.

+
Variables make it easy to change the + data displayed in your dashboard simply by selecting a value + from the drop-down list at the top. Using variables in your + dashboard simplifies maintenance, particularly if you have + multiple identical data sources. Instead of creating + separate dashboards for each data source, you can create one + dashboard and use variables to change what you are + viewing.
Important: It's + important to note that variables don't have a default + value. Each variable drop-down list in Dashboard + settings displays the variable list in the order it + appears.
+

You can define a + dashboard variable in Dashboard Settings > + Variables using Grafana's RMF + Variable Query syntax with and without a filter.

+

Syntax + of the query without a filter

The general syntax of the query + without a filter is as follows:

SELECT <COLUMN_NAME> FROM RESOURCE WHERE condition1 or condition2 or condition3

Note: The <COLUMN_NAME> is limited to label + and RESOURCE is limited to resource + only and cannot be used for other purposes.
Where:
    +
  • condition1: ULQ=Value + and + TYPE=Value
  • +
  • condition2: Name=Value + and + TYPE=Value
  • +
  • condition3: Name=Value + and + ULQ=Value + and + TYPE=Value
  • +
Examples for condition1:
    +
  • select label from resource + where ulq="hostname of the DDS" and type="CHANNEL_PATH"
  • +
  • select label from resource + where ulq="hostname of the DDS" and type="ALL_CHANNELS"
  • +

Examples for condition2:

select label from resource where + name="resource_name" and type="SYSPLEX"
Examples for condition3:
    +
  • select label from resource + where ulq="hostname of the DDS" and name="*" and type="CHANNEL_PATH"
  • +
  • select label from resource + where ulq="hostname of the DDS" and name="*" and type="ALL_CHANNELS"
  • +
+
+

Syntax + of the query with a filter

+

The general + syntax of the RMF query with a filter is as follows:

+

SELECT <COLUMN_NAME> FROM RESOURCE WHERE condition

+

Where condition is Name=Value and ULQ=Value and TYPE=Value and Filter= + Value

+

Examples for condition:

+

select label from resource where name="resource_name" and type="SYSPLEX" and filter="MVS_IMAGE"

+
+
+

To learn how + to effectively add and manage variables of your choice + in Grafana, you can refer to the Grafana + documentation.

+
+
+
+
+

| - . AlertsIntroduction to Alerts

+
+ +
+
+

Grafana Alerting + feature provides a reliable solution to detect and respond + to system issues in real time.

+

Through Grafana + monitoring capabilities, you can keep track of incoming + metrics data and configure the alerting system to detect + specific events or circumstances. When the system identifies + any issues, it automatically sends notifications to ensure + that you are up to date. With Grafana Alerting, you can + eliminate the need for manual monitoring and control system + outages that could lead to significant incidents.

+

For more + information about configuration of alerts and contact + points, refer to the Grafana + documentation.

+
+
+
+

| - . Historical dataHistorical data collection

+
+ +
+
+

In Grafana, you + can view historical data using absolute and relative time + ranges.

+
+

Viewing + historical data is a common practice across + organizations for various purposes. The importance and + use of historical data are significant in + decision-making, research, analysis, and planning. + Analyzing historical data provides valuable insights + into the status, usage, performance, and health of + various resources.

+

You can also + access cached metric data for queries, data sources, and + timestamp combinations that have already viewed by other + user on Grafana. This means that if any user requests + metrics data for the same query, datasource, and + timestamp, the cached data can be displayed faster than + a service call from DDS. If data for a particular + timestamp is not found in the cache, it will be fetched + by a service call from DDS. This feature can save you + time and provide a faster experience accessing metric + data.

+
CAUTION: When + you view data over extended time ranges, the system may + require considerable CPU resources on the host.
+
+
+
+
+

| - . Error typesError reporting in the + plugin

+
+ +
+
+

Whenever you + encounter issues while using the IBM RMF for z/OS Grafana + plugin, you can view detailed error messages that contain + sufficient information to help you identify and troubleshoot + the problem.

+

By viewing these + error messages, you can quickly and efficiently troubleshoot + any issues you may encounter while using the IBM RMF for + z/OS Grafana plugin.

+
The errors that can occur vary in + severity and are classified into different types as + described in the following table:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeError CodeDescription
SevereSA + critical error has arisen that will cause the task + you are currently performing to terminate + immediately.

It is essential to take + necessary measures to prevent such errors to + ensure the smooth functioning of the IBM RMF + for z/OS Grafana plugin.

Eventual Action EAn error of a transient nature has arisen but can + be resolved with an action by the user.
WarningWReceiving a warning message from the IBM RMF + for z/OS Grafana plugin is not indicative + of an error within the application.
InformationIAn information message informs the users about + changes or updates in the IBM RMF + for z/OS Grafana plugin.

You need + not take any action in response, but it's + essential to stay up-to-date and be aware of these + updates.

+
+

When an error + occurs, it is assigned a unique Error ID that can help + quickly identify the root cause of the issue by referring to + the log file. The Error ID is a combination of 10 characters + comprising lower and upper case alphabets.

+

In case of any + problems with the Distributed Data Server + (DDS), you can identify the issues by looking + into DDS-specific errors, which will be displayed + without any modifications. The messages issued by the Distributed + Data Server are documented in the Distributed Data Server messages - + GPM + topic in the z/OS + Resource Measurement Facility Messages and + Codes.

+

The following are + the examples of error messages that you may encounter while + using the IBM RMF for z/OS Grafana plugin:

+

DDS_error

+

Error_plugin

+
Tip: To diagnose the + issue from the docker logs of the IBM RMF for + z/OS Grafana plugin, you can run the following + command: +
docker logs <container_name> 2>&1 | grep "<unique error code shown in the error message>"
+
+
+
+

| - . Troubleshooting issues

+
+

This section + guides how to analyze and address typical issues that may + arise when using the IBM® RMF for z/OS Grafana plugin.

+
+

This article + is regularly updated with the latest information on + discovering and solving issues that may arise. You can + search through the article to find the precise + information you need.

+

You can open a + case by navigating to IBM + support + if you cannot find any solutions for the issue you + encountered. Before opening a case, gather all the + required information and provide the details to IBM + support for further investigation.

+

The following + table describes the details of issues and the + resolutions you can apply to fix the problems:

+
+ + + + + + + + + + + + + + + + + + + + +
+
IssuesCauseResolutions
RMF Time Series + dashboards do not plot the Monitor 3 metrics data, + whereas RMF Reports and RMF Charts dashboards plot + correctly.The proxy settings + configured by your network administrator block web + socket connections from the Grafana server. +

The IBM RMF for z/OS Grafana plugin streams time series data to the clients through web socket connections.

Unblocking web sockets + and configuring the appropriate proxy settings is + necessary to ensure that web sockets with the name + "ws" in the URI work + correctly with the IBM RMF for z/OS + Grafana + plugin.

You can contact your network administrator to modify the proxy configuration settings.

+
+
+
+
+
+

| - . Grafana through z/OSMFGrafana through IBM z/OS + Management Facility

+
+ +
+
+

When you use + IBM® z/OS Management Facility to monitor + the performance of the z/OS sysplexes in your environment, + you can also access Grafana dashboards from z/OSMF.

+
You must complete certain tasks to + access Grafana through z/OSMF. The following table + lists the task flows to access Grafana from z/OSMF:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
TasksMore + information
Complete the tasks + provided in the Prerequisites topic.Prerequisites for accessing Grafana dashboards on + z/OSMF (on page )
Install the RMF for z/OS + plugin on Grafana.Installing the RMF for z/OS plugin on + Grafana (on page )
Define Grafana servers as + target systems.Defining the Grafana + server (on page )
Access Grafana + dashboardsAccessing the Grafana + dashboard (on page )
+
+
+
+

. PrerequisitesPrerequisites for accessing Grafana + dashboards on z/OSMF

+
+ +
+
+

Before you + can start working with Grafana dashboards through z/OSMF, there are some prerequisites that + you need to complete.

+

The following + sections describe each prerequisite in detail:

+
+

Configure + z/OSMF

+

When + installing z/OS, z/OSMF is + automatically installed as a fundamental component + of the operating system. However, to use its + features, you must configure the z/OSMF nucleus on your system and add core + and optional services. This enables you to take + advantage of the many benefits that z/OSMF offers. For more information, refer + to the z/OS Management Facility + Configuration + Guide.

+
+
+

Install + Grafana

+

You must + install Grafana v9.5.1 or later.

+

For more + information, refer to the Grafana + documentation for detailed instructions on + installing Grafana and its dependencies and starting + the Grafana server on your system.

+
+
+

User + administration

+

You must + review the default user management settings provided + by the Grafana server to determine if you need any + additional permissions to be added for the + users.

+

For more + information, refer to the User + Management + section of the Grafana documentation.

+
+
+

Configure + JSON Web Token (JWT) support on z/OSMF

+

You must + configure the z/OSMF server to build + and use JSON Web Token (JWT) tokens. Because, by + default, the JWT function is turned off on the z/OSMF server. You can turn on the JWT + authentication by modifying the server's + configuration files directly. Once enabled, the JWT + function allows you to use JWT tokens to + authenticate and authorize user access to the + Grafana through the z/OSMF server.

+

When + configuring z/OSMF JWK files, it + is essential to use the jwksUri parameter. This parameter + specifies a URL for the JSON Web Key service, which + is necessary for building the JWK files.

+

The format + of the jwksUri parameter is as follows:

+

https://${hostname}:${port}/jwt/ibm/api/zOSMFBuilder/jwk

+

For + example, if your z/OSMF server is + running on https://abc.com:12345, + then the value of jwksUri is:

+

https://abc.com:12345/jwt/ibm/api/zOSMFBuilder/jwk

+
Where,
    +
  • abc is the hostname where the z/OSMF server runs.
  • +
  • 12345 is the port number.
  • +
+

You must + save the content of jwksUri as the jwks.json file and place it in the + following directory:

+

/PATH/TO/jwks.json

+

For + information about enabling the JWT function, refer + to the z/OS Management Facility + Configuration + Guide.

+
+
+

Configure + JWT authentication on Grafana

+

You must + configure Grafana to accept a JWT token in the HTTP + header. You can also verify the token's validity + using a JSON Web Key Set (JWKS) stored in a local + file.

+

As a + system administrator, when you install Grafana, you + can pass values for some of the individual + parameters in the .ini configuration file to configure JWT + authentication on Grafana. See Grafana configuration + parameters (on page ).

+
The default location of the + configuration file is as follows:
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Operating systemsDefault path to the + configuration file
Windows®WORKING_DIR/conf/defaults.ini
Linux®/etc/grafana/grafana.ini
macOS®/usr/local/etc/grafana/grafana.ini
+
+
+
+
+

. Grafana configuration + parameters

+
+

You can find the information + about parameters you can use during the + configuration of JWT authentication on Grafana.

+

The + following table lists the minimum parameters that + you must configure to enable JWT authentication on + Grafana:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
SectionParametersDescriptionValues to + be configured for z/OSMF
[auth.jwt]enabledUse this parameter to + allow JWT to authenticate on the Grafana + server.

The default value is set to true.

true
enable_login_tokenUpon successful + authentication proxy header validation, this + parameter provides the user with a login + token.

The default value is set to false.

true
header_nameUse this parameter to + specify the header's name that holds a + token.

The default value is set to X-JWT-Assertion.

X-Forwarded-Access-Token
username_claimUse this parameter to + identify the user. +

The sub claim is mandatory and needs to be present in a JWT, and it should mention the subject of the JWT.

The default value is also set to sub.

sub
jwk_set_fileUse this parameter to + verify the token with a JSON Web Key Set loaded + from a JSON file./PATH/TO/jwks.json
cache_ttlUse this parameter to + establish the duration for caching data retrieved + from the HTTP endpoint. +

This parameter enables the user to store the data for a specified period, allowing for faster access and retrieval of information.

The default value is set to 60m (minutes).

60m
expect_claimsUse this parameter to + verify the validity of other claims that contain + JSON-encoded information. +

When it comes to validation, only the exp, nbf, and iat claims are automatically checked by default.

You must validate if you are using other claims such as iss, sub, aud, and jti.

{"iss": + "zOSMF"}
auto_sign_upUse this parameter to + automatically create user profiles in Grafana + using the TSO ID of z/OSMF for users who do not have user + profiles in the Grafana + server.

The default value is set to false.

true
url_loginUse this parameter to + enable JWT authentication in the URL. +

The default value is set to false.

true
[server]protocolUse this parameter to + configure z/OSMF to work over + HTTPS.

When you configure z/OSMF to work over HTTPS, it is recommended to configure Grafana to also work over HTTPS. This ensures the secure data transfer between the user's web browser and the Grafana server.

The default value is set to http.

https
cert_fileUse this parameter to + specify the path to the certificate file when the + protocol parameter is set to https or h2./PATH/TO/certificate.crt
cert_keyUse this parameter to + specify the path to the certificate key file when + the protocol parameter is set to https or h2./PATH/TO/privateKey.key
[Security]cookie_secureUse this parameter if you + hosted the Grafana instance over + HTTPS.

The default value is set to false.

true
cookie_samesiteUse this parameter to + prevent the browser from sharing cookies with + other + websites.

The default value is set to lax.

disabled
allow_embeddingUse this parameter to + enable web browsers to display Grafana within + z/OSMF HTML <frame>, <iframe>, + <embed>, or <object> element. +

The default value is set to false.

true
+
+

For more + information about customizing the Grafana instance + by modifying the parameters in the configuration + file, refer to the following sections in the Grafana + documentation.

+ +
+
+
+
+

. Defining the Grafana + server

+
+

You must + define the Grafana server as a target system in z/OSMF to access Grafana from the Resource + Monitoring page of z/OSMF.

+
+

Before + you begin

+
You must have completed the + following tasks:
+
+
+

Procedure

+
+
    +
  1. + Enter the URL of z/OSMF in a web browser. +
  2. +
  3. + Log in to z/OSMF if you are not already logged + in. +
  4. +
  5. + Double-click System + Status. +
  6. +
  7. + Click Add + Entry from the Actions drop-down list. +
  8. +
  9. + Perform the following steps + to add details about the Grafana server: +
      +
    1. + Enter a name for the Grafana + server in the Resource name field. +
      The Resource name is the required field, and + you must provide a unique name. The Resource name can contain up to 24 characters + including alphanumeric characters (A-Z, a-z, and 0-9) and special + characters (@ # $).
      Note: You must + note that the Resource name is not case sensitive. + Therefore, the entries with similar names but + different capitalization, such as SYS1 and Sys1 are considered + as identical by the system.
      +
    2. +
    3. + Enter the host name or IP + address of the Grafana server that you want to + access in the Host + name or IP address field. +
      The host name or IP address + can contain up to 4000 + characters.
      +
    4. +
    5. + Select Grafana from the Target + system type drop-down list. +
    6. +
    7. + Select the Use + HTTPS checkbox to enable secure + communication. +
    8. +
    9. + Enter the port number where + the Grafana server is hosted in the Port field. +
      +

      The + Port is the required field, and the + default port number is set to 3000.

      +
      Tip: + Alternatively, you can use up-down controls to specify the port + number.
      +
      +
    10. +
    +
  10. +
  11. + Click OK. +
  12. +
+
+
+

Results

+
You have defined the Grafana server as the target + system.
+
+

What + to do next

+
You can perform the following + tasks:
+
+
+
+

. Accessing the Grafana + dashboard

+
+

You can + access the Grafana dashboard from the Resource + Monitoring page of z/OSMF to investigate the RMF Monitor III + metrics and reports.

+
+

Before + you begin

+
You must have defined the Grafana server in z/OSMF. See Defining the Grafana + server (on page ).
+
+
+

Procedure

+
+
    +
  1. + Enter the URL of z/OSMF in a web browser. +
  2. +
  3. + Log in to z/OSMF if you are not already logged + in. +
  4. +
  5. + Double-click Resource Monitoring. +
  6. +
  7. + Select the Grafana server + that you want to access from the drop-down + list. +
  8. +
  9. + Click OK. +
  10. +
+
+
+

Results

+
You have accessed Grafana from z/OSMF.
+
+

What + to do next

+
You can perform the following + tasks:
    +
  • View the dashboards by navigating to Apps > + IBM + RMF > + Dashboards.
  • +
  • Add a RMF data source to fetch data from Distributed Data Servers (DDS). See Creating RMF data + sources (on page ).
  • +
+
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/grafana/rmf-app/doc/src/rn.dita b/grafana/rmf-app/doc/src/rn.dita index 7f914075..0a8654ce 100644 --- a/grafana/rmf-app/doc/src/rn.dita +++ b/grafana/rmf-app/doc/src/rn.dita @@ -8,44 +8,91 @@
What's new
+ +
May 2025 v1.0.9
+
+
    +
  • +

    plugin has been + enhanced to optimize the step size when querying and displaying + time series data, based on the selected time range and panel + size. This enhancement ensures that panels display the required + number of data points.

    +
  • +
  • +

    A bug has been fixed that was causing specific data points to be + dropped from time series views, resulting in a flat line in the + graphs.

    +
  • +
  • +

    +

  • +
+
+
+
+
+
+
April 2025 v1.0.8
    -
  • A new option, Compression, has been added to - the data source creation process. This option enables the RMF data - source to request HTTP compression from the Data Distributed Server - (DDS) during data retrieval, which improves the efficiency of data - transfer. See .
  • -
  • Fixed certain scenarios of missing data within dashboards for time - series visualizations.
  • -
  • Fixed internally found defects.
  • +
  • +

    A new option, Compression, has been added + to the data source creation process. This option enables the RMF + data source to request HTTP compression from the Data + Distributed Server (DDS) during data retrieval, which improves + the efficiency of data transfer. See .

    +
  • +
  • +

    Fixed certain scenarios of missing data within dashboards for + time series visualizations.

    +
  • +
  • +

    +

November 2024 v1.0.7
-
Fixed internally found defects.
    -
  • Fixed internally found defects.
  • -
  • You can now download - plugin documentation as a PDF file. See .
  • -
+
+

+

    +
  • +

    +

  • +
  • +

    You can now download plugin documentation as a PDF file. See .

    +
  • +
+
October 2024 v1.0.6
    -
  • The plugin now allows - customizing banner and caption fields in IBM RMF Report - visualizations.
  • -
  • After you modify any data source - and save the changes, you no longer need to re-enter the - password.
  • -
  • Improved performance.
  • -
  • Fixed internally found defects.
  • +
  • +

    The plugin now + allows customizing banner and caption fields in IBM RMF Report + visualizations.

    +
  • +
  • +

    After you modify any data + source and save the changes, you no longer need to re-enter the + password.

    +
  • +
  • +

    Improved performance.

    +
  • +
  • +

    +

@@ -57,11 +104,17 @@
August 2024 v1.0.5
    -
  • When creating the datasource, you now have the option to specify the - desired cache size in megabytes for the datasource.
  • -
  • Fixed internally found defects.
  • -
  • The topic of has been updated - per the new UI changes.
  • +
  • +

    When creating the datasource, you now have the option to specify + the desired cache size in megabytes for the datasource.

    +
  • +
  • +

    +

  • +
  • +

    The topic of has been + updated per the new UI changes.

    +
@@ -69,38 +122,48 @@
June 2024 v1.0.4
    -
  • The user interface for creating the datasource has been enhanced to - improve the user experience.
  • -
  • Fixed internally found defects.
  • -
  • The following dashboards are updated:
      -
    • Common Storage Activity (Timeline)
    • -
    • Common Storage Activity
    • -
    • Coupling Facility Overview (Timeline)
    • -
    • Coupling Facility Overview
    • -
    • Execution Velocity (Timeline)
    • -
    • Execution Velocity
    • -
    • General Activity (Timeline)
    • -
    • General Activity
    • -
    • Overall Image Activity (Timeline)
    • -
    • Overall Image Activity
    • -
    • Performance Index (Timeline)
    • -
    • Response Time (Timeline)
    • -
    • Response Time
    • -
    • XCF Activity (Timeline)
    • -
    • XCF Activity
    • -
    • - You must re-import the - dashboards to utilize the latest enhancements in the - dashboards. -
    • -
  • -
  • The documentation updates for v1.0.4 include the following - changes:
      -
    • The topic of has been - updated as per the new UI changes.
    • -
    • The topic is included to - provide information about the upgrade process.
    • -
  • +
  • +

    The user interface for creating the datasource has been enhanced + to improve the user experience.

    +
  • +
  • +

    +

  • +
  • +

    The following dashboards are updated:

      +
    • Common Storage Activity (Timeline)
    • +
    • Common Storage Activity
    • +
    • Coupling Facility Overview (Timeline)
    • +
    • Coupling Facility Overview
    • +
    • Execution Velocity (Timeline)
    • +
    • Execution Velocity
    • +
    • General Activity (Timeline)
    • +
    • General Activity
    • +
    • Overall Image Activity (Timeline)
    • +
    • Overall Image Activity
    • +
    • Performance Index (Timeline)
    • +
    • Response Time (Timeline)
    • +
    • Response Time
    • +
    • XCF Activity (Timeline)
    • +
    • XCF Activity
    • +
    You must re-import the + dashboards to utilize the latest enhancements in the + dashboards.

    +
  • +
  • +

    The documentation updates for v1.0.4 include the following + changes:

      +
    • +

      The topic of + has been updated as per the new UI changes.

      +
    • +
    • +

      The topic is + included to provide information about the upgrade + process.

      +
    • +

    +
@@ -108,45 +171,82 @@
February 2024 v1.0.3
    -
  • Fixed specific issues related to the support of Grafana - v10.x.x.
  • -
  • Fixed empty settings issue for IBM RMF data source defined via - Home / Apps / IBM RMF page.
  • -
  • Fixed internally found defects.
  • -
  • The documentation updates for v1.0.3 include the following - changes:
      -
    • The Grafana through IBM - z/OS Management Facility topic explains more - detailed setup instructions to access Grafana from the - z/OSMF server.
    • -
    • The plugin - installation section is updated to provide clear - information and guidance on installing the plugin on - different platforms based on specific requirements.
    • -
    • The troubleshooting topic - is provided to help users analyze and resolve common issues - that may occur while using the plugin.
    • -
  • +
  • +

    Fixed specific issues related to the support of Grafana + v10.x.x.

    +
  • +
  • +

    Fixed empty settings issue for IBM RMF data source defined via + Home / Apps / IBM RMF page.

    +
  • +
  • +

    +

  • +
  • +

    The documentation updates for v1.0.3 include the following + changes:

      +
    • +

      The Grafana + through IBM z/OS Management Facility topic + explains more detailed setup instructions to access + Grafana from the z/OSMF server.

      +
    • +
    • +

      The plugin + installation section is updated to provide + clear information and guidance on installing the plugin on + different platforms based on specific + requirements.

      +
    • +
    • +

      The troubleshooting topic is provided to help + users analyze and resolve common issues that may + occur while using the + plugin.

      +
    • +

    +
December 2023 v1.0.2
-
Support spaces in Datasource name.
+
+
    +
  • +

    Support spaces in Datasource name.

    +
  • +
  • +

    +

  • +
+
November 2023 v1.0.1
-
Resolved security issues in dependencies.
+
+
    +
  • +

    Resolved security issues in dependencies.

    +
  • +
  • +

    +

  • +
+
November 2023 v1.0.0
-
The first release of the - plugin is in the following GitHub repository: https://github.com/IBM/RMF.
+
+

The first release of the + plugin is in the following GitHub repository: https://github.com/IBM/RMF.

+
From 9bfcd0cf8ab80b81ec29fd13a703ba88bdf3bbf5 Mon Sep 17 00:00:00 2001 From: Ramanath Shanbhag Date: Wed, 14 May 2025 13:43:53 +0530 Subject: [PATCH 04/10] v109 doc changes Signed-off-by: Ramanath Shanbhag --- grafana/rmf-app/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grafana/rmf-app/CHANGELOG.md b/grafana/rmf-app/CHANGELOG.md index 8c55b87d..98f4ff07 100644 --- a/grafana/rmf-app/CHANGELOG.md +++ b/grafana/rmf-app/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log -## 1.0.9 (2025-05-16) +## 1.0.9 (2025-05-xx) - IBM RMF for z/OS Grafana plugin has been enhanced to optimize the step size when querying and displaying time series data, based on the selected time range and panel size. This enhancement ensures that panels display the required number of data points. - A bug has been fixed that was causing specific data points to be dropped from time series views, resulting in a flat line in the graphs. From 2b61a20a8e1b4280b7ace416aede45c0b1dcbe94 Mon Sep 17 00:00:00 2001 From: Dmitry Nikolaev Date: Mon, 19 May 2025 09:25:33 +0200 Subject: [PATCH 05/10] Fix regression and streaming delay bugs Signed-off-by: Dmitry Nikolaev --- grafana/rmf-app/.golangci.yml | 3 +- grafana/rmf-app/BUILD.md | 8 +- grafana/rmf-app/makefile | 2 +- grafana/rmf-app/package.json | 2 +- grafana/rmf-app/pkg/plugin/cache/channel.go | 63 ++++++ .../pkg/plugin/cache/{cache.go => frame.go} | 20 +- grafana/rmf-app/pkg/plugin/channel.go | 82 -------- grafana/rmf-app/pkg/plugin/config.go | 2 +- grafana/rmf-app/pkg/plugin/datasource.go | 186 ++++------------- grafana/rmf-app/pkg/plugin/dds/client.go | 12 +- grafana/rmf-app/pkg/plugin/dds/request.go | 5 +- grafana/rmf-app/pkg/plugin/frame/utils.go | 43 ++++ grafana/rmf-app/pkg/plugin/query.go | 188 ++++++++++++++++++ 13 files changed, 366 insertions(+), 250 deletions(-) create mode 100644 grafana/rmf-app/pkg/plugin/cache/channel.go rename grafana/rmf-app/pkg/plugin/cache/{cache.go => frame.go} (78%) delete mode 100644 grafana/rmf-app/pkg/plugin/channel.go create mode 100644 grafana/rmf-app/pkg/plugin/query.go diff --git a/grafana/rmf-app/.golangci.yml b/grafana/rmf-app/.golangci.yml index 18201ee5..18d44a27 100644 --- a/grafana/rmf-app/.golangci.yml +++ b/grafana/rmf-app/.golangci.yml @@ -1,4 +1,4 @@ -version: "2" +version: '2' run: allow-parallel-runners: true linters: @@ -11,7 +11,6 @@ linters: - durationcheck - errchkjson - errorlint - - exhaustive - fatcontext - gocheckcompilerdirectives - gochecksumtype diff --git a/grafana/rmf-app/BUILD.md b/grafana/rmf-app/BUILD.md index 63c6d061..811c1179 100644 --- a/grafana/rmf-app/BUILD.md +++ b/grafana/rmf-app/BUILD.md @@ -2,9 +2,9 @@ ## Pre-requisites -- `NodeJS`: >=16 -- `Yarn`: 1.x.x -- `Go`: >=1.21 +- `NodeJS`: see `package.json` +- `Yarn`: see `package.json` +- `Go`: see `go.mod` - `GNU Make`: >=3.81 - `jq`: >=v1.6 - `zip`: >=3.0 @@ -16,4 +16,4 @@ - Navigate to the directory `grafana/rmf-app`. - Execute the command: `make all`. This creates the `./build` directory and once successful you can find the - `ibm-rmf-grafana-.zip` and `ibm-rmf-grafana-.zip.md5` files there. + `ibm-rmf-grafana-.zip` and `ibm-rmf-grafana-.zip.md5` files there. diff --git a/grafana/rmf-app/makefile b/grafana/rmf-app/makefile index 48dc5e7d..2cc2fcb2 100644 --- a/grafana/rmf-app/makefile +++ b/grafana/rmf-app/makefile @@ -16,7 +16,7 @@ all: clean build zip ## Executes clean build and zip tasks ##@ Dependencies node_modules: package.json yarn.lock - yarn install --frozen-lockfile + yarn install --immutable deps-frontend: node_modules ## Install Node.js dependencies diff --git a/grafana/rmf-app/package.json b/grafana/rmf-app/package.json index dc62ac66..27503125 100644 --- a/grafana/rmf-app/package.json +++ b/grafana/rmf-app/package.json @@ -66,7 +66,7 @@ "webpack-virtual-modules": "^0.6.2" }, "engines": { - "node": ">=20" + "node": ">=22" }, "dependencies": { "@emotion/css": "^11.13.5", diff --git a/grafana/rmf-app/pkg/plugin/cache/channel.go b/grafana/rmf-app/pkg/plugin/cache/channel.go new file mode 100644 index 00000000..776b3d7c --- /dev/null +++ b/grafana/rmf-app/pkg/plugin/cache/channel.go @@ -0,0 +1,63 @@ +/** +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + */ + +package cache + +import ( + "encoding/json" + "time" + + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/frame" + "github.com/VictoriaMetrics/fastcache" + "github.com/grafana/grafana-plugin-sdk-go/backend" +) + +type ChannelCache struct { + cache *fastcache.Cache +} + +type Channel struct { + Resource string + TimeRange backend.TimeRange + Absolute bool + Step time.Duration + Fields frame.SeriesFields +} + +func NewChannelCache(size int) *ChannelCache { + return &ChannelCache{cache: fastcache.New(size * 1024 * 1024)} +} + +func (cc *ChannelCache) Reset() { + cc.cache.Reset() +} + +func (cc *ChannelCache) Get(path string) (*Channel, error) { + var c Channel + b := cc.cache.Get(nil, []byte(path)) + err := json.Unmarshal(b, &c) + return &c, err +} + +func (cc *ChannelCache) Set(path string, c *Channel) error { + b, err := json.Marshal(*c) + if err != nil { + return err + } + cc.cache.Set([]byte(path), b) + return nil +} diff --git a/grafana/rmf-app/pkg/plugin/cache/cache.go b/grafana/rmf-app/pkg/plugin/cache/frame.go similarity index 78% rename from grafana/rmf-app/pkg/plugin/cache/cache.go rename to grafana/rmf-app/pkg/plugin/cache/frame.go index ea16bc72..ea903afa 100644 --- a/grafana/rmf-app/pkg/plugin/cache/cache.go +++ b/grafana/rmf-app/pkg/plugin/cache/frame.go @@ -28,19 +28,19 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/data" ) -type Cache struct { +type FrameCache struct { cache *fastcache.Cache } -func NewFrameCache(size int) *Cache { - return &Cache{cache: fastcache.New(size * 1024 * 1024)} +func NewFrameCache(size int) *FrameCache { + return &FrameCache{cache: fastcache.New(size * 1024 * 1024)} } -func (fc *Cache) Reset() { +func (fc *FrameCache) Reset() { fc.cache.Reset() } -func Key(r *dds.Request, wide bool) []byte { +func FrameKey(r *dds.Request, wide bool) []byte { format := "long" if wide { format = "wide" @@ -48,10 +48,10 @@ func Key(r *dds.Request, wide bool) []byte { return []byte(fmt.Sprintf("%s[%s]@%d-%d", r.Resource, format, r.TimeRange.From.UnixMilli(), r.TimeRange.To.UnixMilli())) } -func (fc *Cache) GetFrame(r *dds.Request, wide bool) *data.Frame { +func (fc *FrameCache) Get(r *dds.Request, wide bool) *data.Frame { logger := log.Logger.With("func", "GetFrame") var frame data.Frame - key := Key(r, wide) + key := FrameKey(r, wide) buf := fc.cache.GetBig(nil, key) if buf != nil { err := json.Unmarshal(buf, &frame) @@ -65,9 +65,9 @@ func (fc *Cache) GetFrame(r *dds.Request, wide bool) *data.Frame { return nil } -func (fc *Cache) SaveFrame(f *data.Frame, r *dds.Request, wide bool) error { - key := Key(r, wide) - frame := fc.GetFrame(r, wide) +func (fc *FrameCache) Set(f *data.Frame, r *dds.Request, wide bool) error { + key := FrameKey(r, wide) + frame := fc.Get(r, wide) if frame != nil { return nil } diff --git a/grafana/rmf-app/pkg/plugin/channel.go b/grafana/rmf-app/pkg/plugin/channel.go deleted file mode 100644 index 4c6d9280..00000000 --- a/grafana/rmf-app/pkg/plugin/channel.go +++ /dev/null @@ -1,82 +0,0 @@ -/** -* (C) Copyright IBM Corp. 2023, 2025. -* (C) Copyright Rocket Software, Inc. 2023-2025. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. - */ - -package plugin - -import ( - "encoding/base64" - "errors" - "strconv" - "strings" - "time" - - "github.com/google/uuid" -) - -const Sep = ":" - -func encodeChannelPath(res string, from time.Time, to time.Time, absolute bool, interval time.Duration) string { - absFlag := "0" - if absolute { - absFlag = "1" - } - path := res + - Sep + strconv.FormatInt(from.Unix(), 10) + - Sep + strconv.FormatInt(to.Unix(), 10) + - Sep + absFlag + - Sep + strconv.FormatInt(int64(interval.Seconds()), 10) + - Sep + uuid.NewString()[:8] - return base64.StdEncoding.EncodeToString([]byte(path)) -} - -func decodeChannelPath(b string) (string, time.Time, time.Time, bool, time.Duration, error) { - var ( - res string - from time.Time - to time.Time - absolute bool - interval time.Duration - ) - path, err := base64.StdEncoding.DecodeString(b) - if err != nil { - return res, from, to, absolute, interval, err - } - parts := strings.Split(string(path), Sep) - if len(parts) != 6 { - return res, from, to, absolute, interval, errors.New("invalid number of elements") - } - res = parts[0] - if timestamp, err := strconv.ParseInt(parts[1], 10, 64); err != nil { - return res, from, to, absolute, interval, err - } else { - from = time.Unix(timestamp, 0) - } - if timestamp, err := strconv.ParseInt(parts[2], 10, 64); err != nil { - return res, from, to, absolute, interval, err - } else { - to = time.Unix(timestamp, 0) - } - if parts[3] == "1" { - absolute = true - } - if d, err := strconv.ParseInt(parts[4], 10, 64); err != nil { - return res, from, to, absolute, interval, err - } else { - interval = time.Duration(d) * time.Second - } - return res, from, to, absolute, interval, nil -} diff --git a/grafana/rmf-app/pkg/plugin/config.go b/grafana/rmf-app/pkg/plugin/config.go index 40c5c6eb..5ab25b57 100644 --- a/grafana/rmf-app/pkg/plugin/config.go +++ b/grafana/rmf-app/pkg/plugin/config.go @@ -90,7 +90,7 @@ func (ds *RMFDatasource) getConfig(settings backend.DataSourceInstanceSettings) } } if config.CacheSize, err = strconv.Atoi(config.JSON.CacheSizeRaw); err != nil { - logger.Warn("cache size is not valid, applying default", "cacheSize", config.JSON.CacheSizeRaw, "err", err) + logger.Warn("cache size is not valid, applying default", "cacheSizeRaw", config.JSON.CacheSizeRaw) config.CacheSize = DefaultCacheSizeMB } if config.CacheSize < MinimalCacheSizeMB { diff --git a/grafana/rmf-app/pkg/plugin/datasource.go b/grafana/rmf-app/pkg/plugin/datasource.go index e13f8920..790ed575 100644 --- a/grafana/rmf-app/pkg/plugin/datasource.go +++ b/grafana/rmf-app/pkg/plugin/datasource.go @@ -30,12 +30,10 @@ import ( "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" "github.com/grafana/grafana-plugin-sdk-go/data" - "github.com/grafana/grafana-plugin-sdk-go/live" "golang.org/x/sync/singleflight" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/cache" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/dds" - "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/frame" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/log" ) @@ -51,15 +49,17 @@ var ( _ backend.StreamHandler = (*RMFDatasource)(nil) ) +const ChannelCacheSizeMB = 64 const SdsDelay = 5 * time.Second const TimeSeriesType = "TimeSeries" type RMFDatasource struct { - uid string - name string - cache *cache.Cache - ddsClient *dds.Client - single singleflight.Group + uid string + name string + channelCache *cache.ChannelCache + frameCache *cache.FrameCache + ddsClient *dds.Client + single singleflight.Group } // NewRMFDatasource creates a new instance of the RMF datasource. @@ -74,7 +74,8 @@ func NewRMFDatasource(ctx context.Context, settings backend.DataSourceInstanceSe // nolint:contextcheck ds.ddsClient = dds.NewClient(config.URL, config.Username, config.Password, config.Timeout, config.JSON.TlsSkipVerify, config.JSON.DisableCompression) - ds.cache = cache.NewFrameCache(config.CacheSize) + ds.channelCache = cache.NewChannelCache(ChannelCacheSizeMB) + ds.frameCache = cache.NewFrameCache(config.CacheSize) logger.Info("initialized a datasource", "uid", settings.UID, "name", settings.Name, "url", config.URL, "timeout", config.Timeout, "cacheSize", config.CacheSize, @@ -89,7 +90,8 @@ func (ds *RMFDatasource) Dispose() { logger := log.Logger.With("func", "Dispose") // Recover from any panic so as to not bring down this backend datasource defer log.LogAndRecover(logger) - ds.cache.Reset() + ds.channelCache.Reset() + ds.frameCache.Reset() ds.ddsClient.Close() logger.Info("disposed datasource", "uid", ds.uid, "name", ds.name) } @@ -179,14 +181,6 @@ func (ds *RMFDatasource) CallResource(ctx context.Context, req *backend.CallReso } } -type RequestParams struct { - Resource struct { - Value string `json:"value"` - } `json:"selectedResource"` - AbsoluteTime bool `json:"absoluteTimeSelected"` - VisType string `json:"selectedVisualisationType"` -} - // QueryData handles multiple queries and returns multiple responses. // req contains the queries []DataQuery (where each query contains RefID as a unique identifier). // The QueryDataResponse contains a map of RefID to the response for each query, and each response @@ -224,7 +218,7 @@ func (ds *RMFDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe for _, query := range req.Queries { wg.Add(1) - go func(q backend.DataQuery) { + go func(q *backend.DataQuery) { defer wg.Done() var response *backend.DataResponse @@ -233,29 +227,28 @@ func (ds *RMFDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe if err != nil { response = &backend.DataResponse{Status: backend.StatusBadRequest, Error: err} + } else if params.Resource.Value == "" { + response = &backend.DataResponse{Status: backend.StatusOK} } else { mintime := ds.ddsClient.GetCachedMintime() if params.VisType == TimeSeriesType { // Initialize time series stream - from := q.TimeRange.From - f := frame.TaggedFrame(from, "No data yet...") - path := encodeChannelPath(params.Resource.Value, from, q.TimeRange.To, params.AbsoluteTime, q.Interval) - channel := live.Channel{ - Scope: live.ScopeDatasource, - Namespace: req.PluginContext.DataSourceInstanceSettings.UID, - Path: path, + step := getStep(mintime, q.Interval) + f, err := ds.getFirstTSFrame(¶ms, q.TimeRange, step) + if err != nil { + response = &backend.DataResponse{Status: backend.StatusInternal, Error: err} + } else { + response = &backend.DataResponse{Frames: data.Frames{f}} } - f.SetMeta(&data.FrameMeta{Channel: channel.String()}) - response = &backend.DataResponse{Frames: data.Frames{f}} } else { // Query non-timeseries data r := dds.NewRequest(params.Resource.Value, q.TimeRange.From, q.TimeRange.To, mintime) response = &backend.DataResponse{} // FIXME: doesn't it need to be cached? - if newFrame, err := ds.getFrame(ctx, r, false); err != nil { - // nolint:errorlint - if cause, ok := errors.Unwrap(err).(*dds.Message); ok { - response.Error = cause + if newFrame, err := ds.getFrame(r, false); err != nil { + var msg *dds.Message + if errors.As(err, &msg) { + response.Error = err response.Status = backend.StatusBadRequest } else { response.Error = log.FrameErrorWithId(logger, err) @@ -267,7 +260,7 @@ func (ds *RMFDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe } } responseChan <- ResponseWithId{refId: q.RefID, response: response} - }(query) + }(&query) } @@ -288,52 +281,32 @@ func (ds *RMFDatasource) RunStream(ctx context.Context, req *backend.RunStreamRe // Recover from any panic so as to not bring down this backend datasource defer log.LogAndRecover(logger) - res, from, to, absolute, interval, err := decodeChannelPath(string(req.Path)) + // res, from, to, absolute, interval, err := decodeChannelPath(string(req.Path)) + c, err := ds.channelCache.Get(req.Path) if err != nil { - logger.Error("unable to decode channel path", "err", err) + logger.Error("unable to find channel", "err", err) return nil } + step := c.Step + absolute := c.Absolute + from := c.TimeRange.From + to := c.TimeRange.To + fields := c.Fields - // Calculate the most appropriate interval length, i.e. time series step. - // There's no ideal solution. We assume that it aligns with one hour. - // If it doesn't, streaming will still work, but some queries will miss cache. - mintime := ds.ddsClient.GetCachedMintime() - n := 3600 / int(mintime.Seconds()) - step := time.Hour // The maximum possible - for i := 1; i <= n; i++ { - if n%i == 0 && time.Duration(i)*mintime >= interval { - step = time.Duration(i) * mintime - break - } - } - logger.Debug("starting streaming", "step", step.String(), "interval", interval.String(), "path", req.Path) - - r := dds.NewRequest(res, from, from, step) - seriesFields := frame.SeriesFields{} + logger.Debug("starting streaming", "step", step.String(), "path", req.Path) + r := dds.NewRequest(c.Resource, from, from, step) // Stream historical part of time series + stopTime := to for { - if err := ctx.Err(); err != nil { - logger.Info("streaming stopped", "reason", err, "path", req.Path) - return nil + if !absolute { + stopTime = time.Now().Add(-SdsDelay) } - if !absolute && r.TimeRange.To.After(time.Now().Add(-SdsDelay)) || absolute && r.TimeRange.To.After(to) { + if r.TimeRange.To.After(stopTime) { logger.Debug("finished with historical data", "request", r.String(), "path", req.Path) break } - logger.Debug("executing query", "request", r.String()) - f, err := ds.getFrameCached(ctx, r, true) - if err != nil { - logger.Error("failed to get data", "request", r.String(), "reason", err, "path", req.Path) - f = frame.NoDataFrame(r.TimeRange.To) - } - // No data was returned by DDS yet by this and any previous request - if len(f.Fields) < 2 && len(seriesFields) == 0 { - r.Add(step) - continue - } - frame.SyncFieldNames(seriesFields, f, r.TimeRange.To) - if err := sender.SendFrame(f, data.IncludeAll); err != nil { + if err := ds.serveNextTSFrame(ctx, sender, fields, r, true); err != nil { logger.Info("streaming stopped", "reason", err, "path", req.Path) return nil } @@ -342,40 +315,13 @@ func (ds *RMFDatasource) RunStream(ctx context.Context, req *backend.RunStreamRe if !absolute { // Stream live data as it's being collected for { - if err := ctx.Err(); err != nil { - logger.Info("streaming stopped", "reason", err, "path", req.Path) - return nil - } - d := time.Until(r.TimeRange.To.Add(SdsDelay)) - logger.Debug("waiting for the next mintime", "duration", d.String(), "path", req.Path) - time.Sleep(d) - - f, err := ds.getFrameCached(ctx, r, true) - if err != nil { - logger.Error("failed to get data", "request", r.String(), "reason", err, "path", req.Path) - f = frame.NoDataFrame(r.TimeRange.To) - } - - t, ok := f.Fields[0].At(0).(time.Time) - if !ok || t.Before(r.TimeRange.To) { - logger.Debug("mintime is not ready yet", "path", req.Path) - time.Sleep(SdsDelay) - continue - } - // No data was returned by DDS yet by any previous request - if len(f.Fields) < 2 && len(seriesFields) == 0 { - r.Add(step) - continue - } - frame.SyncFieldNames(seriesFields, f, r.TimeRange.To) - if err := sender.SendFrame(f, data.IncludeAll); err != nil { + if err := ds.serveNextTSFrame(ctx, sender, fields, r, false); err != nil { logger.Info("streaming stopped", "reason", err, "path", req.Path) return nil } r.Add(step) } - } - if len(seriesFields) == 0 { + } else if len(fields) == 0 { // There is no data at all, send a dummy frame without fields to reflect it in UI f := data.NewFrame("") if err := sender.SendFrame(f, data.IncludeAll); err != nil { @@ -387,54 +333,6 @@ func (ds *RMFDatasource) RunStream(ctx context.Context, req *backend.RunStreamRe return nil } -func (ds *RMFDatasource) getFrame(ctx context.Context, r *dds.Request, wide bool) (*data.Frame, error) { - ddsResponse, err := ds.ddsClient.GetByRequest(ctx, r) - if err != nil { - return nil, err - } - headers := ds.ddsClient.GetCachedHeaders() - f, err := frame.Build(ddsResponse, headers, wide) - if err != nil { - return nil, err - } - return f, nil -} - -func (ds *RMFDatasource) getFrameCached(ctx context.Context, r *dds.Request, wide bool) (*data.Frame, error) { - logger := log.Logger.With("func", "getFrameCached") - key := cache.Key(r, wide) - - result, err, _ := ds.single.Do(string(key), func() (interface{}, error) { - f := ds.cache.GetFrame(r, wide) - // Fetch from the DDS Server and then save to cache if required. - if f == nil { - f, err := ds.getFrame(ctx, r, wide) - if err != nil { - return nil, err - } else { - // Probably the requested mintime is not ready yet, don't cache it - // We still can use it in non-timeseries views - t, ok := f.Fields[0].At(0).(time.Time) - if !ok || t.Before(r.TimeRange.To) { - return f, nil - } - if err = ds.cache.SaveFrame(f, r, wide); err != nil { - return nil, err - } - } - return f, nil - } else { - logger.Debug("cached value exists", "key", key) - } - return f, nil - }) - if result != nil { - return result.(*data.Frame), err - } else { - return nil, err - } -} - // SubscribeStream is called when a client wants to connect to a stream. This callback // allows sending the first message. func (ds *RMFDatasource) SubscribeStream(_ context.Context, req *backend.SubscribeStreamRequest) (*backend.SubscribeStreamResponse, error) { diff --git a/grafana/rmf-app/pkg/plugin/dds/client.go b/grafana/rmf-app/pkg/plugin/dds/client.go index f2c7833c..62a66d79 100644 --- a/grafana/rmf-app/pkg/plugin/dds/client.go +++ b/grafana/rmf-app/pkg/plugin/dds/client.go @@ -36,6 +36,7 @@ import ( const UpdateInterval = 15 * time.Minute const DefaultTimeOffset = 0 +const DefaultMinTime = 100 const IndexPath = "/gpm/index.xml" const RootPath = "/gpm/root.xml" @@ -119,7 +120,7 @@ func (c *Client) Close() { }) } -func (c *Client) GetByRequest(ctx context.Context, r *Request) (*Response, error) { +func (c *Client) GetByRequest(r *Request) (*Response, error) { path, params, err := r.pathWithParams(c.GetCachedTimeOffset()) if err != nil { return nil, err @@ -211,10 +212,12 @@ func (c *Client) updateTimeData() *TimeData { response, err := c.Get(PerformPath, "resource", ",,SYSPLEX", "id", "8D0D50") if err != nil { logger.Error("unable to fetch DDS time data", "error", err) + return nil, err } timeData := response.Reports[0].TimeData if timeData == nil { logger.Error("unable to fetch DDS time data", "error", "no time data in DDS response") + return nil, err } c.rwMutex.Lock() c.timeData = timeData @@ -230,8 +233,9 @@ func (c *Client) updateTimeData() *TimeData { func (c *Client) GetCachedMintime() time.Duration { timeData := c.ensureTimeData() - if timeData != nil { - return time.Duration(c.timeData.MinTime.Value) * time.Second + minTime := DefaultMinTime + if timeData != nil && timeData.MinTime.Value != 0 { + minTime = timeData.MinTime.Value } - return 0 + return time.Duration(minTime) * time.Second } diff --git a/grafana/rmf-app/pkg/plugin/dds/request.go b/grafana/rmf-app/pkg/plugin/dds/request.go index 19288613..c5106831 100644 --- a/grafana/rmf-app/pkg/plugin/dds/request.go +++ b/grafana/rmf-app/pkg/plugin/dds/request.go @@ -39,7 +39,10 @@ func NewRequest(res string, from time.Time, to time.Time, step time.Duration) *R func (r *Request) Align(d time.Duration) { r.TimeRange.From = r.TimeRange.From.Truncate(d) - r.TimeRange.To = r.TimeRange.To.Truncate(d).Add(d) + t := r.TimeRange.To.Truncate(d) + if t.Equal(r.TimeRange.From) || t.Before(r.TimeRange.To) { + r.TimeRange.To = t.Add(d) + } } func (r *Request) Add(d time.Duration) { diff --git a/grafana/rmf-app/pkg/plugin/frame/utils.go b/grafana/rmf-app/pkg/plugin/frame/utils.go index fd764904..c4a71d89 100644 --- a/grafana/rmf-app/pkg/plugin/frame/utils.go +++ b/grafana/rmf-app/pkg/plugin/frame/utils.go @@ -18,6 +18,7 @@ package frame import ( + "errors" "strings" "time" @@ -74,3 +75,45 @@ func RemoveOldFieldNames(fieldMap SeriesFields, cutoffTime time.Time) { } } } + +func MergeInto(dst *data.Frame, src *data.Frame) (*data.Frame, error) { + if dst == nil { + dst = data.NewFrame(src.Name) + } + if src == nil { + return dst, nil + } + n, err := dst.RowLen() + if err != nil { + return nil, err + } + m, err := src.RowLen() + if err != nil { + return nil, err + } + for _, field2 := range src.Fields { + field1, _ := dst.FieldByName(field2.Name) + if field1 == nil { + switch field2.Type() { + case data.FieldTypeTime: + field1 = data.NewField(field2.Name, field2.Labels, make([]time.Time, n)) + case data.FieldTypeNullableFloat64: + field1 = data.NewField(field2.Name, field2.Labels, make([]*float64, n)) + default: + return nil, errors.New("unsupported field type") + } + dst.Fields = append(dst.Fields, field1) + } + for i := range field2.Len() { + field1.Append(field2.At(i)) + } + } + for _, field1 := range dst.Fields { + if field2, _ := dst.FieldByName(field1.Name); field2 == nil { + for range m { + field1.Append(nil) + } + } + } + return dst, nil +} diff --git a/grafana/rmf-app/pkg/plugin/query.go b/grafana/rmf-app/pkg/plugin/query.go new file mode 100644 index 00000000..b264f3e6 --- /dev/null +++ b/grafana/rmf-app/pkg/plugin/query.go @@ -0,0 +1,188 @@ +/** +* (C) Copyright IBM Corp. 2023, 2025. +* (C) Copyright Rocket Software, Inc. 2023-2025. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + */ + +package plugin + +import ( + "context" + "time" + + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/cache" + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/dds" + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/frame" + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/log" + "github.com/google/uuid" + "github.com/grafana/grafana-plugin-sdk-go/backend" + "github.com/grafana/grafana-plugin-sdk-go/data" + "github.com/grafana/grafana-plugin-sdk-go/live" +) + +func (ds *RMFDatasource) getFrame(r *dds.Request, wide bool) (*data.Frame, error) { + ddsResponse, err := ds.ddsClient.GetByRequest(r) + if err != nil { + return nil, err + } + headers := ds.ddsClient.GetCachedHeaders() + f, err := frame.Build(ddsResponse, headers, wide) + if err != nil { + return nil, err + } + return f, nil +} + +func (ds *RMFDatasource) getFrameCached(r *dds.Request, wide bool) (*data.Frame, error) { + logger := log.Logger.With("func", "getFrameCached") + key := cache.FrameKey(r, wide) + + result, err, _ := ds.single.Do(string(key), func() (interface{}, error) { + f := ds.frameCache.Get(r, wide) + // Fetch from the DDS Server and then save to cache if required. + if f == nil { + f, err := ds.getFrame(r, wide) + if err != nil { + return nil, err + } else { + // Probably the requested mintime is not ready yet, don't cache it + // We still can use it in non-timeseries views + t, ok := f.Fields[0].At(0).(time.Time) + if !ok || t.Before(r.TimeRange.To) { + return f, nil + } + if err = ds.frameCache.Set(f, r, wide); err != nil { + return nil, err + } + } + return f, nil + } else { + logger.Debug("cached value exists", "key", key) + logger.Warn("cached value exists", "key", r.String()) + } + return f, nil + }) + if result != nil { + return result.(*data.Frame), err + } else { + return nil, err + } +} + +// getStep calculates the most appropriate time series step. +// There's no ideal solution. We assume that it aligns with one hour. +// If it doesn't, streaming will still work, but some queries will miss cache. +func getStep(mintime time.Duration, limit time.Duration) time.Duration { + n := 3600 / int(mintime.Seconds()) + step := time.Hour // The maximum possible + for i := 1; i <= n; i++ { + if n%i == 0 && time.Duration(i)*mintime >= limit { + step = time.Duration(i) * mintime + break + } + } + return step +} + +type RequestParams struct { + Resource struct { + Value string `json:"value"` + } `json:"selectedResource"` + AbsoluteTime bool `json:"absoluteTimeSelected"` + VisType string `json:"selectedVisualisationType"` +} + +func (ds *RMFDatasource) getFirstTSFrame(params *RequestParams, tr backend.TimeRange, step time.Duration) (*data.Frame, error) { + var ( + f *data.Frame + err error + ) + res := params.Resource.Value + absolute := params.AbsoluteTime + + r := dds.NewRequest(res, tr.From, tr.From, step) + fields := frame.SeriesFields{} + for !absolute && r.TimeRange.To.Before(time.Now().Add(-SdsDelay)) || absolute && r.TimeRange.To.Before(tr.To) { + next := ds.frameCache.Get(r, true) + if next == nil { + break + } + frame.SyncFieldNames(fields, next, r.TimeRange.To) + f, err = frame.MergeInto(f, next) + if err != nil { + return nil, err + } + r.Add(step) + } + if f == nil { + f = frame.TaggedFrame(tr.From, "No data yet...") + } + channel := live.Channel{ + Scope: live.ScopeDatasource, + Namespace: ds.uid, + Path: uuid.NewString(), + } + cachedChannel := cache.Channel{ + Resource: res, + TimeRange: backend.TimeRange{From: r.TimeRange.From, To: tr.To}, + Absolute: absolute, + Step: step, + Fields: fields, + } + if err = ds.channelCache.Set(channel.Path, &cachedChannel); err != nil { + return nil, err + } + f.SetMeta(&data.FrameMeta{Channel: channel.String()}) + return f, nil +} + +func (ds *RMFDatasource) serveNextTSFrame(ctx context.Context, sender *backend.StreamSender, fields frame.SeriesFields, r *dds.Request, hist bool) error { + logger := log.Logger.With("func", "queryNextTSFrame") + var f *data.Frame + var err error + + for { + if err = ctx.Err(); err != nil { + return err + } + if !hist { + d := time.Until(r.TimeRange.To.Add(SdsDelay)) + time.Sleep(d) + } + logger.Debug("executing query", "request", r.String()) + f, err = ds.getFrameCached(r, true) + if err != nil { + logger.Error("failed to get data", "request", r.String(), "reason", err) + f = frame.NoDataFrame(r.TimeRange.To) + } + if !hist { + t, ok := f.Fields[0].At(0).(time.Time) + if !ok || t.Before(r.TimeRange.To) { + logger.Debug("mintime is not ready yet") + time.Sleep(SdsDelay) + continue + } + } + break + } + // No data was returned by DDS yet by any previous request + if len(f.Fields) < 2 && len(fields) == 0 { + return nil + } + frame.SyncFieldNames(fields, f, r.TimeRange.To) + if err := sender.SendFrame(f, data.IncludeAll); err != nil { + return err + } + return nil +} From 9b14c5f1d7eb53d3ed96a3b4b803364d60a1e4aa Mon Sep 17 00:00:00 2001 From: Dmitry Nikolaev Date: Mon, 19 May 2025 14:12:36 +0200 Subject: [PATCH 06/10] Fix bug with duplicated rows in DDS response Signed-off-by: Dmitry Nikolaev --- grafana/rmf-app/pkg/plugin/frame/frame.go | 8 +++++++- grafana/rmf-app/pkg/plugin/frame/utils.go | 14 +++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/grafana/rmf-app/pkg/plugin/frame/frame.go b/grafana/rmf-app/pkg/plugin/frame/frame.go index 7dbbe1b7..f85268d7 100644 --- a/grafana/rmf-app/pkg/plugin/frame/frame.go +++ b/grafana/rmf-app/pkg/plugin/frame/frame.go @@ -150,6 +150,7 @@ func buildLongForMetric(report *dds.Report, frameName string) *data.Frame { // iterateMetricRows parses metric key-value pairs and passes them to `process` while iterating over rows. func iterateMetricRows(report *dds.Report, defaultName string, process func(name string, value *float64)) { + colMap := map[string]bool{} var sb strings.Builder for _, jsonRow := range report.Rows { cols := jsonRow.Cols @@ -171,7 +172,12 @@ func iterateMetricRows(report *dds.Report, defaultName string, process func(name if sb.Len() == 0 { sb.WriteString(defaultName) } - process(sb.String(), parseFloat(rawValue)) + colName := sb.String() + if _, ok := colMap[colName]; ok { + continue + } + colMap[colName] = true + process(colName, parseFloat(rawValue)) } } diff --git a/grafana/rmf-app/pkg/plugin/frame/utils.go b/grafana/rmf-app/pkg/plugin/frame/utils.go index c4a71d89..1e0a14fd 100644 --- a/grafana/rmf-app/pkg/plugin/frame/utils.go +++ b/grafana/rmf-app/pkg/plugin/frame/utils.go @@ -83,11 +83,11 @@ func MergeInto(dst *data.Frame, src *data.Frame) (*data.Frame, error) { if src == nil { return dst, nil } - n, err := dst.RowLen() + dstLen, err := dst.RowLen() if err != nil { return nil, err } - m, err := src.RowLen() + srcLen, err := src.RowLen() if err != nil { return nil, err } @@ -96,21 +96,21 @@ func MergeInto(dst *data.Frame, src *data.Frame) (*data.Frame, error) { if field1 == nil { switch field2.Type() { case data.FieldTypeTime: - field1 = data.NewField(field2.Name, field2.Labels, make([]time.Time, n)) + field1 = data.NewField(field2.Name, field2.Labels, make([]time.Time, dstLen)) case data.FieldTypeNullableFloat64: - field1 = data.NewField(field2.Name, field2.Labels, make([]*float64, n)) + field1 = data.NewField(field2.Name, field2.Labels, make([]*float64, dstLen)) default: return nil, errors.New("unsupported field type") } dst.Fields = append(dst.Fields, field1) } - for i := range field2.Len() { + for i := range srcLen { field1.Append(field2.At(i)) } } for _, field1 := range dst.Fields { - if field2, _ := dst.FieldByName(field1.Name); field2 == nil { - for range m { + if field2, _ := src.FieldByName(field1.Name); field2 == nil { + for range srcLen { field1.Append(nil) } } From 01b5c567d9c837c2f32a88e105a748c910242d42 Mon Sep 17 00:00:00 2001 From: Dmitry Nikolaev Date: Tue, 20 May 2025 14:28:39 +0200 Subject: [PATCH 07/10] Serve cached TS frames merged Signed-off-by: Dmitry Nikolaev --- grafana/rmf-app/pkg/plugin/datasource.go | 59 +++++++++-- grafana/rmf-app/pkg/plugin/query.go | 125 +++++++---------------- 2 files changed, 89 insertions(+), 95 deletions(-) diff --git a/grafana/rmf-app/pkg/plugin/datasource.go b/grafana/rmf-app/pkg/plugin/datasource.go index 790ed575..b6f1beef 100644 --- a/grafana/rmf-app/pkg/plugin/datasource.go +++ b/grafana/rmf-app/pkg/plugin/datasource.go @@ -27,13 +27,16 @@ import ( "sync" "time" + "github.com/google/uuid" "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt" "github.com/grafana/grafana-plugin-sdk-go/data" + "github.com/grafana/grafana-plugin-sdk-go/live" "golang.org/x/sync/singleflight" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/cache" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/dds" + "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/frame" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/log" ) @@ -181,6 +184,14 @@ func (ds *RMFDatasource) CallResource(ctx context.Context, req *backend.CallReso } } +type RequestParams struct { + Resource struct { + Value string `json:"value"` + } `json:"selectedResource"` + AbsoluteTime bool `json:"absoluteTimeSelected"` + VisType string `json:"selectedVisualisationType"` +} + // QueryData handles multiple queries and returns multiple responses. // req contains the queries []DataQuery (where each query contains RefID as a unique identifier). // The QueryDataResponse contains a map of RefID to the response for each query, and each response @@ -234,10 +245,30 @@ func (ds *RMFDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe if params.VisType == TimeSeriesType { // Initialize time series stream step := getStep(mintime, q.Interval) - f, err := ds.getFirstTSFrame(¶ms, q.TimeRange, step) + fields := frame.SeriesFields{} + start := q.TimeRange.From.Add(-step) + r := dds.NewRequest(params.Resource.Value, start, start, step) + f, jump, err := ds.getCachedTSFrames(r, q.TimeRange.To, step, fields) + if f == nil || err != nil { + f = frame.TaggedFrame(q.TimeRange.From, "No data yet...") + } + channel := live.Channel{ + Scope: live.ScopeDatasource, + Namespace: ds.uid, + Path: uuid.NewString(), + } + cachedChannel := cache.Channel{ + Resource: params.Resource.Value, + TimeRange: backend.TimeRange{From: start.Add(jump), To: q.TimeRange.To}, + Absolute: params.AbsoluteTime, + Step: step, + Fields: fields, + } + err = ds.channelCache.Set(channel.Path, &cachedChannel) if err != nil { response = &backend.DataResponse{Status: backend.StatusInternal, Error: err} } else { + f.SetMeta(&data.FrameMeta{Channel: channel.String()}) response = &backend.DataResponse{Frames: data.Frames{f}} } } else { @@ -287,6 +318,7 @@ func (ds *RMFDatasource) RunStream(ctx context.Context, req *backend.RunStreamRe logger.Error("unable to find channel", "err", err) return nil } + res := c.Resource step := c.Step absolute := c.Absolute from := c.TimeRange.From @@ -294,19 +326,32 @@ func (ds *RMFDatasource) RunStream(ctx context.Context, req *backend.RunStreamRe fields := c.Fields logger.Debug("starting streaming", "step", step.String(), "path", req.Path) - r := dds.NewRequest(c.Resource, from, from, step) + r := dds.NewRequest(res, from, from, step) // Stream historical part of time series - stopTime := to + stop := to for { if !absolute { - stopTime = time.Now().Add(-SdsDelay) + stop = time.Now().Add(-SdsDelay) } - if r.TimeRange.To.After(stopTime) { + if r.TimeRange.To.After(stop) { logger.Debug("finished with historical data", "request", r.String(), "path", req.Path) break } - if err := ds.serveNextTSFrame(ctx, sender, fields, r, true); err != nil { + f, jump, err := ds.getCachedTSFrames(r, stop, step, fields) + if err != nil { + logger.Info("streaming stopped", "reason", err, "path", req.Path) + return nil + } + if f != nil { + if err := sender.SendFrame(f, data.IncludeAll); err != nil { + logger.Info("streaming stopped", "reason", err, "path", req.Path) + return nil + } + r.Add(jump) + continue + } + if err := ds.serveTSFrame(ctx, sender, fields, r, true); err != nil { logger.Info("streaming stopped", "reason", err, "path", req.Path) return nil } @@ -315,7 +360,7 @@ func (ds *RMFDatasource) RunStream(ctx context.Context, req *backend.RunStreamRe if !absolute { // Stream live data as it's being collected for { - if err := ds.serveNextTSFrame(ctx, sender, fields, r, false); err != nil { + if err := ds.serveTSFrame(ctx, sender, fields, r, false); err != nil { logger.Info("streaming stopped", "reason", err, "path", req.Path) return nil } diff --git a/grafana/rmf-app/pkg/plugin/query.go b/grafana/rmf-app/pkg/plugin/query.go index b264f3e6..49e79f21 100644 --- a/grafana/rmf-app/pkg/plugin/query.go +++ b/grafana/rmf-app/pkg/plugin/query.go @@ -25,51 +25,21 @@ import ( "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/dds" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/frame" "github.com/IBM/RMF/grafana/rmf-app/pkg/plugin/log" - "github.com/google/uuid" "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/data" - "github.com/grafana/grafana-plugin-sdk-go/live" ) func (ds *RMFDatasource) getFrame(r *dds.Request, wide bool) (*data.Frame, error) { - ddsResponse, err := ds.ddsClient.GetByRequest(r) - if err != nil { - return nil, err - } - headers := ds.ddsClient.GetCachedHeaders() - f, err := frame.Build(ddsResponse, headers, wide) - if err != nil { - return nil, err - } - return f, nil -} - -func (ds *RMFDatasource) getFrameCached(r *dds.Request, wide bool) (*data.Frame, error) { - logger := log.Logger.With("func", "getFrameCached") key := cache.FrameKey(r, wide) - result, err, _ := ds.single.Do(string(key), func() (interface{}, error) { - f := ds.frameCache.Get(r, wide) - // Fetch from the DDS Server and then save to cache if required. - if f == nil { - f, err := ds.getFrame(r, wide) - if err != nil { - return nil, err - } else { - // Probably the requested mintime is not ready yet, don't cache it - // We still can use it in non-timeseries views - t, ok := f.Fields[0].At(0).(time.Time) - if !ok || t.Before(r.TimeRange.To) { - return f, nil - } - if err = ds.frameCache.Set(f, r, wide); err != nil { - return nil, err - } - } - return f, nil - } else { - logger.Debug("cached value exists", "key", key) - logger.Warn("cached value exists", "key", r.String()) + ddsResponse, err := ds.ddsClient.GetByRequest(r) + if err != nil { + return nil, err + } + headers := ds.ddsClient.GetCachedHeaders() + f, err := frame.Build(ddsResponse, headers, wide) + if err != nil { + return nil, err } return f, nil }) @@ -95,60 +65,34 @@ func getStep(mintime time.Duration, limit time.Duration) time.Duration { return step } -type RequestParams struct { - Resource struct { - Value string `json:"value"` - } `json:"selectedResource"` - AbsoluteTime bool `json:"absoluteTimeSelected"` - VisType string `json:"selectedVisualisationType"` -} - -func (ds *RMFDatasource) getFirstTSFrame(params *RequestParams, tr backend.TimeRange, step time.Duration) (*data.Frame, error) { +// getCachedTSFrames fetches all sequentional time series frames from cache and merges it into one frame. +// It has to syncronize time series field set passed in `fields`. +func (ds *RMFDatasource) getCachedTSFrames(r *dds.Request, stop time.Time, step time.Duration, fields frame.SeriesFields) (*data.Frame, time.Duration, error) { var ( - f *data.Frame - err error + f *data.Frame + jump time.Duration + err error ) - res := params.Resource.Value - absolute := params.AbsoluteTime - - r := dds.NewRequest(res, tr.From, tr.From, step) - fields := frame.SeriesFields{} - for !absolute && r.TimeRange.To.Before(time.Now().Add(-SdsDelay)) || absolute && r.TimeRange.To.Before(tr.To) { - next := ds.frameCache.Get(r, true) + // Create a copy of the original request - don't alter it + cr := dds.NewRequest(r.Resource, r.TimeRange.From, r.TimeRange.To, step) + for r.TimeRange.To.Before(stop) { + next := ds.frameCache.Get(cr, true) if next == nil { break } frame.SyncFieldNames(fields, next, r.TimeRange.To) f, err = frame.MergeInto(f, next) if err != nil { - return nil, err + return nil, jump, err } - r.Add(step) + cr.Add(step) + jump += step } - if f == nil { - f = frame.TaggedFrame(tr.From, "No data yet...") - } - channel := live.Channel{ - Scope: live.ScopeDatasource, - Namespace: ds.uid, - Path: uuid.NewString(), - } - cachedChannel := cache.Channel{ - Resource: res, - TimeRange: backend.TimeRange{From: r.TimeRange.From, To: tr.To}, - Absolute: absolute, - Step: step, - Fields: fields, - } - if err = ds.channelCache.Set(channel.Path, &cachedChannel); err != nil { - return nil, err - } - f.SetMeta(&data.FrameMeta{Channel: channel.String()}) - return f, nil + return f, jump, err } -func (ds *RMFDatasource) serveNextTSFrame(ctx context.Context, sender *backend.StreamSender, fields frame.SeriesFields, r *dds.Request, hist bool) error { - logger := log.Logger.With("func", "queryNextTSFrame") +func (ds *RMFDatasource) serveTSFrame(ctx context.Context, sender *backend.StreamSender, fields frame.SeriesFields, r *dds.Request, hist bool) error { + logger := log.Logger.With("func", "serveTSFrame") var f *data.Frame var err error @@ -158,20 +102,25 @@ func (ds *RMFDatasource) serveNextTSFrame(ctx context.Context, sender *backend.S } if !hist { d := time.Until(r.TimeRange.To.Add(SdsDelay)) + logger.Debug("sleeping", "request", r.String(), "duration", d.String()) time.Sleep(d) } logger.Debug("executing query", "request", r.String()) - f, err = ds.getFrameCached(r, true) + f, err = ds.getFrame(r, true) if err != nil { logger.Error("failed to get data", "request", r.String(), "reason", err) f = frame.NoDataFrame(r.TimeRange.To) - } - if !hist { - t, ok := f.Fields[0].At(0).(time.Time) - if !ok || t.Before(r.TimeRange.To) { - logger.Debug("mintime is not ready yet") - time.Sleep(SdsDelay) - continue + } else { + if !hist { + t, ok := f.Fields[0].At(0).(time.Time) + if !ok || t.Before(r.TimeRange.To) { + logger.Debug("mintime is not ready yet") + time.Sleep(SdsDelay) + continue + } + } + if err := ds.frameCache.Set(f, r, true); err != nil { + logger.Error("failed to save data in cache", "request", r.String(), "reason", err) } } break From 42351d2f740d30535f81007a8915e43577bd5ce8 Mon Sep 17 00:00:00 2001 From: Dmitry Nikolaev Date: Wed, 21 May 2025 11:30:16 +0200 Subject: [PATCH 08/10] Adjust time to start time series Signed-off-by: Dmitry Nikolaev --- grafana/rmf-app/pkg/plugin/datasource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grafana/rmf-app/pkg/plugin/datasource.go b/grafana/rmf-app/pkg/plugin/datasource.go index b6f1beef..3cb980dc 100644 --- a/grafana/rmf-app/pkg/plugin/datasource.go +++ b/grafana/rmf-app/pkg/plugin/datasource.go @@ -246,7 +246,7 @@ func (ds *RMFDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe // Initialize time series stream step := getStep(mintime, q.Interval) fields := frame.SeriesFields{} - start := q.TimeRange.From.Add(-step) + start := q.TimeRange.From r := dds.NewRequest(params.Resource.Value, start, start, step) f, jump, err := ds.getCachedTSFrames(r, q.TimeRange.To, step, fields) if f == nil || err != nil { From 1af36af6ca5e84ec954fd43dd3d236a81ade0e8d Mon Sep 17 00:00:00 2001 From: Dmitry Nikolaev Date: Wed, 21 May 2025 12:25:24 +0200 Subject: [PATCH 09/10] Recover from panic caused by the Grafana SDK bug Signed-off-by: Dmitry Nikolaev --- grafana/rmf-app/pkg/plugin/cache/frame.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/grafana/rmf-app/pkg/plugin/cache/frame.go b/grafana/rmf-app/pkg/plugin/cache/frame.go index ea903afa..2d25af8b 100644 --- a/grafana/rmf-app/pkg/plugin/cache/frame.go +++ b/grafana/rmf-app/pkg/plugin/cache/frame.go @@ -49,11 +49,16 @@ func FrameKey(r *dds.Request, wide bool) []byte { } func (fc *FrameCache) Get(r *dds.Request, wide bool) *data.Frame { - logger := log.Logger.With("func", "GetFrame") + logger := log.Logger.With("func", "FrameCache.Get") + defer log.LogAndRecover(logger) + var frame data.Frame key := FrameKey(r, wide) buf := fc.cache.GetBig(nil, key) if buf != nil { + // FIXME + // Sometimes it causes panic: "runtime error: index out of range [21] with length 21" and similar + // It's a Grafana SDK bug. err := json.Unmarshal(buf, &frame) if err != nil { logger.Error("Unmarshal error", "err", err, "key", key) From 76d3ed25cee35f0f3e6b1311e1c7aa26747e9e7b Mon Sep 17 00:00:00 2001 From: Dmitry Nikolaev Date: Thu, 22 May 2025 13:36:01 +0200 Subject: [PATCH 10/10] Update release date Signed-off-by: Dmitry Nikolaev --- grafana/rmf-app/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grafana/rmf-app/CHANGELOG.md b/grafana/rmf-app/CHANGELOG.md index 98f4ff07..44a4f5de 100644 --- a/grafana/rmf-app/CHANGELOG.md +++ b/grafana/rmf-app/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log -## 1.0.9 (2025-05-xx) +## 1.0.9 (2025-05-22) - IBM RMF for z/OS Grafana plugin has been enhanced to optimize the step size when querying and displaying time series data, based on the selected time range and panel size. This enhancement ensures that panels display the required number of data points. - A bug has been fixed that was causing specific data points to be dropped from time series views, resulting in a flat line in the graphs.